This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: consolidate checks for _Unwind_DebugHook in test suite


On 08/15/2012 12:20 AM, Tom Tromey wrote:
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 17e2117..daa50f5 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -2093,6 +2093,43 @@ proc skip_hw_watchpoint_access_tests {} {
      return 0
  }

+# Return 1 if we should skip tests that require the runtime unwinder
+# hook.  This must be invoked while gdb is running, after shared
+# libraries have been loaded.  This is needed because otherwise a
+# shared libgcc won't be visible.
+
+proc skip_unwinder_tests {} {
+    global gdb_prompt
+
+    set ok 1
+    gdb_test_multiple "print _Unwind_DebugHook" "check for unwinder hook" {
+	-re "= .*no debug info.*_Unwind_DebugHook.*\r\n$gdb_prompt $" {
+	    # Pass the test so we don't get bogus fails in the results.
+	    pass "check for unwinder hook"

Do we really need to put "pass" here? skip_* proc in lib/gdb.exp is to do some check and return a boolean value. We don't have to generate any PASS or FAIL during checking. I'd like to remove them.


+	    set ok 0
+	}
+	-re "= .*_Unwind_DebugHook.*\r\n$gdb_prompt $" {
+	    pass "check for unwinder hook"
+	}
+	-re "No symbol .* in current context.\r\n$gdb_prompt $" {
+	    # Pass the test so we don't get bogus fails in the results.
+	    pass "check for unwinder hook"
+	    set ok 0
+	}
+    }
+    if {!$ok} {
+	gdb_test_multiple "info probe" "check for stap probe in unwinder" {
+	    -re ".*libgcc.*unwind.*\r\n$gdb_prompt $" {
+		pass "check for stap probe in unwinder"
+		set ok 1
+	    }
+	    -re "\r\n$gdb_prompt $" {
+	    }
+	}
+    }
+    return $ok
+}
+


--
Yao


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]