From 721bb736764787bd03727196b734f74a6c8745e0 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Thu, 18 Nov 2021 14:00:43 -0800 Subject: [PATCH] make testcase more robust --- lldb/test/API/lang/objc/real-definition/Foo.m | 3 +- .../objc/real-definition/TestRealDefinition.py | 50 +++++----------------- 2 files changed, 13 insertions(+), 40 deletions(-) diff --git a/lldb/test/API/lang/objc/real-definition/Foo.m b/lldb/test/API/lang/objc/real-definition/Foo.m index bcdeaef..4d84d43 100644 --- a/lldb/test/API/lang/objc/real-definition/Foo.m +++ b/lldb/test/API/lang/objc/real-definition/Foo.m @@ -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 diff --git a/lldb/test/API/lang/objc/real-definition/TestRealDefinition.py b/lldb/test/API/lang/objc/real-definition/TestRealDefinition.py index 31480d1..ff3e46f 100644 --- a/lldb/test/API/lang/objc/real-definition/TestRealDefinition.py +++ b/lldb/test/API/lang/objc/real-definition/TestRealDefinition.py @@ -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) -- 2.7.4