make testcase more robust
authorAdrian Prantl <aprantl@apple.com>
Thu, 18 Nov 2021 22:00:43 +0000 (14:00 -0800)
committerAdrian Prantl <aprantl@apple.com>
Thu, 18 Nov 2021 22:00:53 +0000 (14:00 -0800)
lldb/test/API/lang/objc/real-definition/Foo.m
lldb/test/API/lang/objc/real-definition/TestRealDefinition.py

index bcdeaef..4d84d43 100644 (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
index 31480d1..ff3e46f 100644 (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)