make testcase more robust

This commit is contained in:
Adrian Prantl 2021-11-18 14:00:43 -08:00
parent f27ff7ff0e
commit 721bb73676
2 changed files with 13 additions and 40 deletions

View File

@ -8,7 +8,8 @@
if (self) {
_bar = [[Bar alloc] init];
}
return self; // Set breakpoint where Bar is an interface
NSLog(@"waiting");; // Set breakpoint where Bar is an interface
return self;
}
- (void)dealloc

View File

@ -17,23 +17,14 @@ class TestRealDefinition(TestBase):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
self.build()
self.common_setup()
line = line_number(
'Foo.m', '// Set breakpoint where Bar is an interface')
lldbutil.run_break_set_by_file_and_line(
self, 'Foo.m', line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
substrs=['stopped',
'stop reason = breakpoint'])
# Run and stop at Foo
lldbutil.check_breakpoint(self, bpno = 1, expected_hit_count = 1)
lldbutil.run_to_source_breakpoint(
self,
'// Set breakpoint where Bar is an interface',
lldb.SBFileSpec("Foo.m", False))
# Break inside the foo function which takes a bar_ptr argument.
self.expect('breakpoint set -p "// Set breakpoint in main"')
self.runCmd("continue", RUN_SUCCEEDED)
# Run at stop at main
@ -52,23 +43,13 @@ class TestRealDefinition(TestBase):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
self.build()
self.common_setup()
line = line_number(
'Bar.m', '// Set breakpoint where Bar is an implementation')
lldbutil.run_break_set_by_file_and_line(
self, 'Bar.m', line, num_expected_locations=1, loc_exact=True)
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
substrs=['stopped',
'stop reason = breakpoint'])
# Run and stop at Foo
lldbutil.check_breakpoint(self, bpno = 1, expected_hit_count = 1)
lldbutil.run_to_source_breakpoint(
self,
'// Set breakpoint where Bar is an implementation',
lldb.SBFileSpec("Bar.m", False))
self.expect('breakpoint set -p "// Set breakpoint in main"')
self.runCmd("continue", RUN_SUCCEEDED)
# Run at stop at main
@ -81,12 +62,3 @@ class TestRealDefinition(TestBase):
substrs=[
"(NSString *)",
"foo->_bar->_hidden_ivar = 0x"])
def common_setup(self):
exe = self.getBuildArtifact("a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
# Break inside the foo function which takes a bar_ptr argument.
line = line_number('main.m', '// Set breakpoint in main')
lldbutil.run_break_set_by_file_and_line(
self, "main.m", line, num_expected_locations=1, loc_exact=True)