TestIntegerTypes.py revision 5b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10a
17c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen"""
27c52ff1d83ec262f35c9a825af107735913e7225Johnny ChenTest that variables of integer basic types are displayed correctly.
37c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen"""
47c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
551a9e00e10d29ba01af7bc2d5efbcf31ec1f76a4Johnny Chenimport AbstractBase
67c52ff1d83ec262f35c9a825af107735913e7225Johnny Chenimport unittest2
77c52ff1d83ec262f35c9a825af107735913e7225Johnny Chenimport lldb
81aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chenimport sys
95b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chenfrom lldbtest import dsym_test, dwarf_test
107c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1151a9e00e10d29ba01af7bc2d5efbcf31ec1f76a4Johnny Chenclass IntegerTypesTestCase(AbstractBase.GenericTester):
127c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
137c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    mydir = "types"
147c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
151aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
165b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
177c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_char_type_with_dsym(self):
187c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that char-type variables are displayed correctly."""
198563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('char.cpp', set(['char']), qd=True)
208563081f48492def461f065b22d8fc502ea6807cJohnny Chen
218563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
225b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
238563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_char_type_from_block_with_dsym(self):
248563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that char-type variables are displayed correctly from a block."""
258563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('char.cpp', set(['char']), bc=True, qd=True)
267c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
275b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
287c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_char_type_with_dwarf(self):
297c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that char-type variables are displayed correctly."""
308563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('char.cpp', set(['char']), dsym=False, qd=True)
317c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
321aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
335b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
347c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_char_type_with_dsym(self):
357c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned_char'-type variables are displayed correctly."""
368563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), qd=True)
378563081f48492def461f065b22d8fc502ea6807cJohnny Chen
388563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
395b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
408563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_char_type_from_block_with_dsym(self):
418563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'unsigned char'-type variables are displayed correctly from a block."""
428563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), bc=True, qd=True)
437c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
445b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
457c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_char_type_with_dwarf(self):
467c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned char'-type variables are displayed correctly."""
478563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), dsym=False, qd=True)
487c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
491aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
505b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
517c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_short_type_with_dsym(self):
527c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that short-type variables are displayed correctly."""
538563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('short.cpp', set(['short']))
548563081f48492def461f065b22d8fc502ea6807cJohnny Chen
558563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
565b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
578563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_short_type_from_block_with_dsym(self):
588563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that short-type variables are displayed correctly from a block."""
598563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('short.cpp', set(['short']), bc=True)
607c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
615b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
627c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_short_type_with_dwarf(self):
637c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that short-type variables are displayed correctly."""
648563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('short.cpp', set(['short']), dsym=False)
657c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
661aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
675b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
687c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_short_type_with_dsym(self):
697c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned_short'-type variables are displayed correctly."""
708563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']))
718563081f48492def461f065b22d8fc502ea6807cJohnny Chen
728563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
735b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
748563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_short_type_from_block_with_dsym(self):
758563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'unsigned short'-type variables are displayed correctly from a block."""
768563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), bc=True)
777c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
785b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
797c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_short_type_with_dwarf(self):
807c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned short'-type variables are displayed correctly."""
818563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), dsym=False)
827c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
831aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
845b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
857c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_int_type_with_dsym(self):
867c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that int-type variables are displayed correctly."""
878563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('int.cpp', set(['int']))
888563081f48492def461f065b22d8fc502ea6807cJohnny Chen
898563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
905b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
918563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_int_type_from_block_with_dsym(self):
928563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that int-type variables are displayed correctly from a block."""
938563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('int.cpp', set(['int']), dsym=False)
947c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
955b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
967c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_int_type_with_dwarf(self):
977c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that int-type variables are displayed correctly."""
988563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('int.cpp', set(['int']), dsym=False)
997c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1001aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1015b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1027c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_int_type_with_dsym(self):
1037c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned_int'-type variables are displayed correctly."""
1048563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']))
1058563081f48492def461f065b22d8fc502ea6807cJohnny Chen
1068563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1075b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1088563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_int_type_from_block_with_dsym(self):
1098563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'unsigned int'-type variables are displayed correctly from a block."""
1108563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), bc=True)
1117c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1125b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
1137c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_int_type_with_dwarf(self):
1147c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned int'-type variables are displayed correctly."""
1158563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), dsym=False)
1167c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1171aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1185b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1197c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_long_type_with_dsym(self):
1207c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that long-type variables are displayed correctly."""
1218563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long.cpp', set(['long']))
1228563081f48492def461f065b22d8fc502ea6807cJohnny Chen
1238563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1245b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1258563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_long_type_from_block_with_dsym(self):
1268563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that long-type variables are displayed correctly from a block."""
1278563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long.cpp', set(['long']), bc=True)
1287c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1295b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
1307c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_long_type_with_dwarf(self):
1317c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that long-type variables are displayed correctly."""
1328563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long.cpp', set(['long']), dsym=False)
1337c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1341aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1355b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1367c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_long_type_with_dsym(self):
1377c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned long'-type variables are displayed correctly."""
1388563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']))
1398563081f48492def461f065b22d8fc502ea6807cJohnny Chen
1408563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1415b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1428563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_long_type_from_block_with_dsym(self):
1438563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'unsigned_long'-type variables are displayed correctly from a block."""
1448563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), bc=True)
1457c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1465b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
1477c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_long_type_with_dwarf(self):
1487c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned long'-type variables are displayed correctly."""
1498563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), dsym=False)
1507c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1517c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    # rdar://problem/8482903
1527c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    # test suite failure for types dir -- "long long" and "unsigned long long"
1537c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1541aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1555b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1567c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_long_long_type_with_dsym(self):
1577c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'long long'-type variables are displayed correctly."""
1588563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long_long.cpp', set(['long long']))
1598563081f48492def461f065b22d8fc502ea6807cJohnny Chen
1608563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1615b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1628563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_long_long_type_from_block_with_dsym(self):
1638563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'long_long'-type variables are displayed correctly from a block."""
1648563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long_long.cpp', set(['long long']), bc=True)
1657c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1665b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
1677c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_long_long_type_with_dwarf(self):
1687c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'long long'-type variables are displayed correctly."""
1698563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('long_long.cpp', set(['long long']), dsym=False)
1707c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1711aabaac9827104aecfad61e9b12412d8a89e66a0Johnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1725b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1737c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    def test_unsigned_long_long_type_with_dsym(self):
1747c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned long long'-type variables are displayed correctly."""
1758563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']))
1767c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1778563081f48492def461f065b22d8fc502ea6807cJohnny Chen    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
1785b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dsym_test
1798563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_long_long_type_from_block_with_dsym(self):
1808563081f48492def461f065b22d8fc502ea6807cJohnny Chen        """Test that 'unsigned_long_long'-type variables are displayed correctly from a block."""
1818563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True)
1827c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1835b616ecca2f2c4f66c3f467d4ba17b0b5cb7d10aJohnny Chen    @dwarf_test
1848563081f48492def461f065b22d8fc502ea6807cJohnny Chen    def test_unsigned_long_long_type_with_dwarf(self):
1857c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen        """Test that 'unsigned long long'-type variables are displayed correctly."""
1868563081f48492def461f065b22d8fc502ea6807cJohnny Chen        self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), dsym=False)
1877c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1887c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen
1897c52ff1d83ec262f35c9a825af107735913e7225Johnny Chenif __name__ == '__main__':
1907c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    import atexit
1917c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    lldb.SBDebugger.Initialize()
1927c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    atexit.register(lambda: lldb.SBDebugger.Terminate())
1937c52ff1d83ec262f35c9a825af107735913e7225Johnny Chen    unittest2.main()
194