Author: adrian
Date: Mon Feb 26 14:40:20 2018
New Revision: 326140

URL: http://llvm.org/viewvc/llvm-project?rev=326140&view=rev
Log:
Add a sanity check for inline testcases.

When writing an inline test, there is no way to make sure that any of
the inline commands are actually executed, so this patch adds a sanity
check that at least one breakpoint was hit. This avoids a test with no
breakpoints being hit passing.

Differential Revision: https://reviews.llvm.org/D43694

Modified:
    lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines/main.c
    lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines/main.c
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines/main.c?rev=326140&r1=326139&r2=326140&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines/main.c (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines/main.c Mon Feb 26 
14:40:20 2018
@@ -21,4 +21,5 @@ void test1(int a) {
 int main() {
     test2(42);
     test1(23);
+    return 0;
 }

Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py?rev=326140&r1=326139&r2=326140&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbinline.py Mon Feb 26 14:40:20 
2018
@@ -182,14 +182,23 @@ class InlineTest(TestBase):
         parser.set_breakpoints(target)
 
         process = target.LaunchSimple(None, None, self.getBuildDir())
+        hit_breakpoints = 0
 
         while lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint):
+            hit_breakpoints += 1
             thread = lldbutil.get_stopped_thread(
                 process, lldb.eStopReasonBreakpoint)
             breakpoint_id = thread.GetStopReasonDataAtIndex(0)
             parser.handle_breakpoint(self, breakpoint_id)
             process.Continue()
 
+        self.assertTrue(hit_breakpoints > 0,
+                        "inline test did not hit a single breakpoint")
+        # Either the process exited or the stepping plan is complete.
+        self.assertTrue(process.GetState() in [lldb.eStateStopped,
+                                               lldb.eStateExited],
+                        PROCESS_EXITED)
+
     # Utilities for testcases
 
     def check_expression(self, expression, expected_result, use_summary=True):


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to