<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57439>57439</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AST] [Test] Add unit tests for serializing/deserializing each ASTNodes 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            clang:modules
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ChuanqiXu9
      </td>
    </tr>
</table>

<pre>
    Currently, when we add any field to ASTNode, we need to change the serializer/deserializer too. However, the developers usually forgets this. The process may like: changing AST Nodes -> test, review and land the patch -> met segmentation fault -> revert, debugging and locate the problem -> test, review and land it again. Although we can' teach serializer/deserializer the change automatically. We could add unit tests for serializing/deserializing each ASTNodes. So that the developer can find their problems in the early day. It should save a lot of time.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylkz2P2zAMhn-NvRBnOFbsOIOHNO2hXbpcgHalLdpWK1upPhKkv76Uch-45ZYCQSyGDPm8L-XeyFt3DNbS6vUtq45wnWmFKwFKCbjeYFSkJXgDh6fTdyMp1RCsROnXYcZ1IvAzgSOrUKu_ZLPqUdJbyHWmgK_mSpeYO6ZqyYE2Z7IOgguoNY8ydiLvOK1cAScuOlszkHOw4A20-k2ZONwnqnWKQBCJHDxk4gt4cj42t3RRdGV2CTp-xWFn9MN8L1vIM-m0sGD0yqwwYtD-nrMRMDWR1IcpTUl9zID-LpKJek3LxyOVB5xQrQUctJ9NmOZo2YBrVu34T8gsH5jFU55dxeDNwpRDtKeAH5wwgbcRdxNWnhIBXPTttR8jv2sYJaSBz-tjY58Mz0D_fguRjnd990vZF50O1JoKCS1vSCJjfGMD58Th8MKQbI8HM4JXCxU5dZum2bRitxf7XHZC8hNzr7ymLqs_MUZWfwY-naJ5fDz8hxjIg9Xd7P3Z8dXgWv5Mys-hLwazcKD15eXxwJJ-0cALe1TOBXJ8qHdbppy7Zr_r-2YUtRSi3W6GRuzLsdxzvKUWZZVr7Em7KCCrqoGXzGBVXP1rKA6LkUHHthXLylVXlVVVtqIsa9HWbTE2vdxg37ZIQootZtuSFlS6iHAFX_3cdomTb57jpFZsx1sSnVMTv3WJgfvz3ZiN7Y5zwPWP-hn2eVLVJUn_APSyTdI">