@@ -0,0 +1,996 @@
+import unittest%0Aimport ctypes%0A%0Afrom util import get_cursor%0Afrom util import get_tu%0Afrom util import ClangTest%0A    %0Aclass Types(ClangTest):%0A    %22%22%22Tests if the codegeneration return the proper types.%22%22%22%0A%0A    def test_doubel_underscore(self):%0A        flags = %5B'-target','i386-linux'%5D%0A        self.convert(%0A        '''%0Astruct __X %7B%0A    int a;%0A%7D;%0Atypedef struct __X __Y;%0A__Y v1;%0Astruct Z%7B%0A    __Y b;%0A    %7D;%0A        ''', flags)%0A        self.assertEqual(ctypes.sizeof(self.namespace.struct___X), 4)%0A        self.assertEqual(ctypes.sizeof(self.namespace.struct_Z), 4)%0A        self.assertEqual(ctypes.sizeof(self.namespace._P__Y), 4)%0A        self.assertEqual(self.namespace.v1, None)%0A%0A    def test_typedef(self):%0A        flags = %5B'-target','i386-linux'%5D%0A        self.convert(%0A        '''%0Atypedef int A;%0Atypedef A B;%0Atypedef B C;%0Atypedef int* PA;%0Atypedef PA PB;%0Atypedef PB* PC;%0Atypedef PC PD;%0A        ''', flags)%0A        #self.assertEquals('A','B')%0A        %0Aif __name__ == %22__main__%22:%0A    unittest.main()%0A

add UT