• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 """
2 Test that variables of integer basic types are displayed correctly.
3 """
4 
5 import AbstractBase
6 import unittest2
7 import lldb
8 import sys
9 from lldbtest import dsym_test, dwarf_test
10 
11 class IntegerTypesTestCase(AbstractBase.GenericTester):
12 
13     mydir = "types"
14 
15     def setUp(self):
16         # Call super's setUp().
17         AbstractBase.GenericTester.setUp(self)
18         # disable "There is a running process, kill it and restart?" prompt
19         self.runCmd("settings set auto-confirm true")
20         self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm"))
21 
22     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
23     @dsym_test
24     def test_char_type_with_dsym(self):
25         """Test that char-type variables are displayed correctly."""
26         self.build_and_run('char.cpp', set(['char']), qd=True)
27 
28     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
29     @dsym_test
30     def test_char_type_from_block_with_dsym(self):
31         """Test that char-type variables are displayed correctly from a block."""
32         self.build_and_run('char.cpp', set(['char']), bc=True, qd=True)
33 
34     @dwarf_test
35     def test_char_type_with_dwarf(self):
36         """Test that char-type variables are displayed correctly."""
37         self.build_and_run('char.cpp', set(['char']), dsym=False, qd=True)
38 
39     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
40     @dsym_test
41     def test_unsigned_char_type_with_dsym(self):
42         """Test that 'unsigned_char'-type variables are displayed correctly."""
43         self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), qd=True)
44 
45     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
46     @dsym_test
47     def test_unsigned_char_type_from_block_with_dsym(self):
48         """Test that 'unsigned char'-type variables are displayed correctly from a block."""
49         self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), bc=True, qd=True)
50 
51     @dwarf_test
52     def test_unsigned_char_type_with_dwarf(self):
53         """Test that 'unsigned char'-type variables are displayed correctly."""
54         self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), dsym=False, qd=True)
55 
56     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
57     @dsym_test
58     def test_short_type_with_dsym(self):
59         """Test that short-type variables are displayed correctly."""
60         self.build_and_run('short.cpp', set(['short']))
61 
62     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
63     @dsym_test
64     def test_short_type_from_block_with_dsym(self):
65         """Test that short-type variables are displayed correctly from a block."""
66         self.build_and_run('short.cpp', set(['short']), bc=True)
67 
68     @dwarf_test
69     def test_short_type_with_dwarf(self):
70         """Test that short-type variables are displayed correctly."""
71         self.build_and_run('short.cpp', set(['short']), dsym=False)
72 
73     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
74     @dsym_test
75     def test_unsigned_short_type_with_dsym(self):
76         """Test that 'unsigned_short'-type variables are displayed correctly."""
77         self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']))
78 
79     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
80     @dsym_test
81     def test_unsigned_short_type_from_block_with_dsym(self):
82         """Test that 'unsigned short'-type variables are displayed correctly from a block."""
83         self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), bc=True)
84 
85     @dwarf_test
86     def test_unsigned_short_type_with_dwarf(self):
87         """Test that 'unsigned short'-type variables are displayed correctly."""
88         self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), dsym=False)
89 
90     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
91     @dsym_test
92     def test_int_type_with_dsym(self):
93         """Test that int-type variables are displayed correctly."""
94         self.build_and_run('int.cpp', set(['int']))
95 
96     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
97     @dsym_test
98     def test_int_type_from_block_with_dsym(self):
99         """Test that int-type variables are displayed correctly from a block."""
100         self.build_and_run('int.cpp', set(['int']), dsym=False)
101 
102     @dwarf_test
103     def test_int_type_with_dwarf(self):
104         """Test that int-type variables are displayed correctly."""
105         self.build_and_run('int.cpp', set(['int']), dsym=False)
106 
107     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
108     @dsym_test
109     def test_unsigned_int_type_with_dsym(self):
110         """Test that 'unsigned_int'-type variables are displayed correctly."""
111         self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']))
112 
113     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
114     @dsym_test
115     def test_unsigned_int_type_from_block_with_dsym(self):
116         """Test that 'unsigned int'-type variables are displayed correctly from a block."""
117         self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), bc=True)
118 
119     @dwarf_test
120     def test_unsigned_int_type_with_dwarf(self):
121         """Test that 'unsigned int'-type variables are displayed correctly."""
122         self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), dsym=False)
123 
124     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
125     @dsym_test
126     def test_long_type_with_dsym(self):
127         """Test that long-type variables are displayed correctly."""
128         self.build_and_run('long.cpp', set(['long']))
129 
130     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
131     @dsym_test
132     def test_long_type_from_block_with_dsym(self):
133         """Test that long-type variables are displayed correctly from a block."""
134         self.build_and_run('long.cpp', set(['long']), bc=True)
135 
136     @dwarf_test
137     def test_long_type_with_dwarf(self):
138         """Test that long-type variables are displayed correctly."""
139         self.build_and_run('long.cpp', set(['long']), dsym=False)
140 
141     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
142     @dsym_test
143     def test_unsigned_long_type_with_dsym(self):
144         """Test that 'unsigned long'-type variables are displayed correctly."""
145         self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']))
146 
147     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
148     @dsym_test
149     def test_unsigned_long_type_from_block_with_dsym(self):
150         """Test that 'unsigned_long'-type variables are displayed correctly from a block."""
151         self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), bc=True)
152 
153     @dwarf_test
154     def test_unsigned_long_type_with_dwarf(self):
155         """Test that 'unsigned long'-type variables are displayed correctly."""
156         self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), dsym=False)
157 
158     # rdar://problem/8482903
159     # test suite failure for types dir -- "long long" and "unsigned long long"
160 
161     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
162     @dsym_test
163     def test_long_long_type_with_dsym(self):
164         """Test that 'long long'-type variables are displayed correctly."""
165         self.build_and_run('long_long.cpp', set(['long long']))
166 
167     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
168     @dsym_test
169     def test_long_long_type_from_block_with_dsym(self):
170         """Test that 'long_long'-type variables are displayed correctly from a block."""
171         self.build_and_run('long_long.cpp', set(['long long']), bc=True)
172 
173     @dwarf_test
174     def test_long_long_type_with_dwarf(self):
175         """Test that 'long long'-type variables are displayed correctly."""
176         self.build_and_run('long_long.cpp', set(['long long']), dsym=False)
177 
178     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
179     @dsym_test
180     def test_unsigned_long_long_type_with_dsym(self):
181         """Test that 'unsigned long long'-type variables are displayed correctly."""
182         self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']))
183 
184     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
185     @dsym_test
186     def test_unsigned_long_long_type_from_block_with_dsym(self):
187         """Test that 'unsigned_long_long'-type variables are displayed correctly from a block."""
188         self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True)
189 
190     @dwarf_test
191     def test_unsigned_long_long_type_with_dwarf(self):
192         """Test that 'unsigned long long'-type variables are displayed correctly."""
193         self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), dsym=False)
194 
195 
196 if __name__ == '__main__':
197     import atexit
198     lldb.SBDebugger.Initialize()
199     atexit.register(lambda: lldb.SBDebugger.Terminate())
200     unittest2.main()
201