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