c518bf0559fa894217a4eba202f5552f496c5f8c
[openbsd] /
1 """
2 Regression test for <rdar://problem/8981098>:
3
4 The expression parser's type search only looks in the current compilation unit for types.
5 """
6
7
8
9 import lldb
10 from lldbsuite.test.decorators import *
11 from lldbsuite.test.lldbtest import *
12 from lldbsuite.test import lldbutil
13
14
15 class ObjCTypeQueryTestCase(TestBase):
16
17     mydir = TestBase.compute_mydir(__file__)
18
19     def setUp(self):
20         # Call super's setUp().
21         TestBase.setUp(self)
22         # Find the line number to break for main.m.
23         self.line = line_number(
24             'main.m', "// Set breakpoint here, then do 'expr (NSArray*)array_token'.")
25
26     @skipUnlessDarwin
27     def test(self):
28         """The expression parser's type search should be wider than the current compilation unit."""
29         self.build()
30         self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
31
32         lldbutil.run_break_set_by_file_and_line(
33             self, "main.m", self.line, num_expected_locations=1, loc_exact=True)
34
35         self.runCmd("run", RUN_SUCCEEDED)
36
37         # Now do a NSArry type query from the 'main.m' compile uint.
38         self.expect("expression (NSArray*)array_token",
39                     substrs=['(NSArray *) $0 = 0x'])
40         # (NSArray *) $0 = 0x00007fff70118398