Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA] (long) sepdebug.exp replace send_gdb with gdb_test
@ 2010-05-20  0:59 Michael Snyder
  2010-05-20 16:47 ` Pedro Alves
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Snyder @ 2010-05-20  0:59 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 35 bytes --]

Well mostly.  Still a few left...


[-- Attachment #2: sepdebug.txt --]
[-- Type: text/plain, Size: 25119 bytes --]

2010-05-19  Michael Snyder  <msnyder@vmware.com>

	* gdb.base/sepdebug.exp: Replace send_gdb with gdb_test.

Index: sepdebug.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/sepdebug.exp,v
retrieving revision 1.25
diff -u -p -r1.25 sepdebug.exp
--- sepdebug.exp	5 May 2010 18:06:58 -0000	1.25
+++ sepdebug.exp	20 May 2010 00:04:16 -0000
@@ -71,25 +71,7 @@ if [target_info exists gdb_stub] {
 # test simple breakpoint setting commands
 #
 
-# Test deleting all breakpoints when there are none installed,
-# GDB should not prompt for confirmation.
-# Note that gdb-init.exp provides a "delete_breakpoints" proc
-# for general use elsewhere.
-
-send_gdb "delete breakpoints\n"
-gdb_expect {
-     -re "Delete all breakpoints.*$" {
-	    send_gdb "y\n"
-	    gdb_expect {
-		-re "$gdb_prompt $" {
-		    fail "Delete all breakpoints when none (unexpected prompt)"
-		}
-		timeout	{ fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
-	    }
-	}
-     -re ".*$gdb_prompt $"       { pass "Delete all breakpoints when none" }
-    timeout	            { fail "Delete all breakpoints when none (timeout)" }
-}
+delete_breakpoints
 
 #
 # test break at function
@@ -272,24 +254,22 @@ gdb_test "tbreak $srcfile:factorial" "Te
 #
 # test break at line number
 #
-send_gdb "tbreak $bp_location1\n"
-gdb_expect {
-    -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
-	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number #1" }
-	timeout	    { fail "breakpoint line number #1 (timeout)" }
-}
 
-gdb_test "tbreak $bp_location6" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"
+gdb_test "tbreak $bp_location1" \
+    "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location1.*" \
+    "Temporary breakpoint line number #1"
+
+gdb_test "tbreak $bp_location6" \
+    "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location6.*" \
+    "Temporary breakpoint line number #2"
 
 #
 # test break at line number in file
 #
-send_gdb "tbreak $srcfile:$bp_location2\n"
-gdb_expect {
-    -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
-	-re ".*$gdb_prompt $"   { pass "Temporary breakpoint line number in file #1" }
-	timeout	    { fail "Temporary breakpoint line number in file #1 (timeout)" }
-}
+
+gdb_test "tbreak $srcfile:$bp_location2" \
+    "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location2.*" \
+    "Temporary breakpoint line number in file #1"
 
 set bp_location11 [gdb_get_line_number "set breakpoint 11 here"]
 gdb_test  "tbreak $srcfile:$bp_location11" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"
@@ -313,80 +293,54 @@ gdb_test "info break" "Num     Type.*Dis
 # inappropriately.  (There are no calls to those system functions
 # in this test program.)
 #
-if ![runto_main] then { fail "break tests suppressed" }
-
-send_gdb "catch\n"
-gdb_expect {
-  -re "Catch requires an event name.*$gdb_prompt $"\
-          {pass "catch requires an event name"}
-  -re "$gdb_prompt $"\
-          {fail "catch requires an event name"}
-  timeout {fail "(timeout) catch requires an event name"}
-}
+if ![runto_main] then { fail "sepdebug tests suppressed" }
 
+gdb_test "catch" "Catch requires an event name.*" \
+    "catch requires an event name"
 
 set name "set catch fork, never expected to trigger"
-send_gdb "catch fork\n"
-gdb_expect {
-  -re "Catchpoint \[0-9\]* .fork..*$gdb_prompt $"
-          {pass $name}
-  -re "Catch of fork not yet implemented.*$gdb_prompt $"
-	  {pass $name}
-  -re "$gdb_prompt $"
-          {fail $name}
-  timeout {fail "(timeout) $name"}
+gdb_test_multiple "catch fork" $name {
+    -re "Catchpoint \[0-9\]* .fork.*" {
+	pass $name
+    }
+    -re "Catch of fork not yet implemented.*" {
+	pass $name
+    }
 }
 
-
-set name "set catch vfork, never expected to trigger"
-send_gdb "catch vfork\n"
-
 # If we are on HP-UX 10.20, we expect an error message to be
 # printed if we type "catch vfork" at the gdb gdb_prompt.  This is
 # because on HP-UX 10.20, we cannot catch vfork events.
 
-if [istarget "hppa*-hp-hpux10.20"] then {
-    gdb_expect {
-	-re "Catch of vfork events not supported on HP-UX 10.20..*$gdb_prompt $"
-		{pass $name}
-	-re "$gdb_prompt $"
-		{fail $name}
-	timeout {fail "(timeout) $name"}
+set name "set catch vfork, never expected to trigger"
+gdb_test_multiple "catch vfork" $name {
+    -re "Catch of vfork events not supported on HP-UX 10.20.*" {
+	pass $name
     }
-} else {
-    gdb_expect {
-	-re "Catchpoint \[0-9\]* .vfork..*$gdb_prompt $"
-		{pass $name}
-	-re "Catch of vfork not yet implemented.*$gdb_prompt $"
-		{pass $name}
-	-re "$gdb_prompt $"
-		{fail $name}
-	timeout {fail "(timeout) $name"}
+    -re "Catchpoint \[0-9\]* .vfork.*" {
+	pass $name
+    }
+    -re "Catch of vfork not yet implemented.*" {
+	pass $name
     }
 }
 
 set name "set catch exec, never expected to trigger"
-send_gdb "catch exec\n"
-gdb_expect {
-  -re "Catchpoint \[0-9\]* .exec..*$gdb_prompt $"
-          {pass $name}
-  -re "Catch of exec not yet implemented.*$gdb_prompt $"
-	  {pass $name}
-  -re "$gdb_prompt $" {fail $name}
-  timeout {fail "(timeout) $name"}
+gdb_test_multiple "catch exec" $name {
+    -re "Catchpoint \[0-9\]* .exec.*" {
+	pass $name
+    }
+    -re "Catch of exec not yet implemented.*" {
+	pass $name
+    }
 }
 
 # Verify that GDB responds gracefully when asked to set a breakpoint
 # on a nonexistent source line.
 #
-send_gdb "break 999\n"
-gdb_expect {
-  -re "No line 999 in file .*$gdb_prompt $"\
-          {pass "break on non-existent source line"}
-  -re "$gdb_prompt $"\
-          {fail "break on non-existent source line"}
-  timeout {fail "(timeout) break on non-existent source line"}
-}
+
+gdb_test "break 999" "No line 999 in file .*" \
+    pass "break on non-existent source line"
 
 # Run to the desired default location. If not positioned here, the
 # tests below don't work.
@@ -399,54 +353,32 @@ gdb_test "until $bp_location1" "main .* 
 # the informational message about other breakpoints at the same
 # location.  We'll hit that bird with this stone too.
 #
-send_gdb "break\n"
-gdb_expect {
-  -re "Breakpoint \[0-9\]*.*$gdb_prompt $"\
-          {pass "break on default location, 1st time"}
-  -re "$gdb_prompt $"\
-          {fail "break on default location, 1st time"}
-  timeout {fail "(timeout) break on default location, 1st time"}
-}
-
-send_gdb "break\n"
-gdb_expect {
-  -re "Note: breakpoint \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
-          {pass "break on default location, 2nd time"}
-  -re "$gdb_prompt $"\
-          {fail "break on default location, 2nd time"}
-  timeout {fail "(timeout) break on default location, 2nd time"}
-}
 
-send_gdb "break\n"
-gdb_expect {
-  -re "Note: breakpoints \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
-          {pass "break on default location, 3rd time"}
-  -re "$gdb_prompt $"\
-          {fail "break on default location, 3rd time"}
-  timeout {fail "(timeout) break on default location, 3rd time"}
-}
+gdb_test "break" "Breakpoint \[0-9\]*.*" \
+    "break on default location, 1st time"
 
-send_gdb "break\n"
-gdb_expect {
-  -re "Note: breakpoints \[0-9\]*, \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*$gdb_prompt $"\
-          {pass "break on default location, 4th time"}
-  -re "$gdb_prompt $"\
-          {fail "break on default location, 4th time"}
-  timeout {fail "(timeout) break on default location, 4th time"}
-}
+gdb_test "break" \
+    "Note: breakpoint \[0-9\]* also set at .*Breakpoint \[0-9\]*.*" \
+    "break on default location, 2nd time"
+
+gdb_test "break" \
+    "Note: breakpoints \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*" \
+    "break on default location, 3rd time"
+
+gdb_test "break" \
+    "Note: breakpoints \[0-9\]*, \[0-9\]* and \[0-9\]* also set at .*Breakpoint \[0-9\]*.*" \
+    "break on default location, 4th time"
 
 # Verify that a "silent" breakpoint can be set, and that GDB is indeed
 # "silent" about its triggering.
 #
-if ![runto_main] then { fail "break tests suppressed" }
+if ![runto_main] then { fail "sepdebug tests suppressed" }
 
-send_gdb "break $bp_location1\n"
-gdb_expect {
-  -re "Breakpoint (\[0-9\]*) at .*, line $bp_location1.*$gdb_prompt $"\
-          {pass "set to-be-silent break bp_location1"}
-  -re "$gdb_prompt $"\
-          {fail "set to-be-silent break bp_location1"}
-  timeout {fail "(timeout) set to-be-silent break bp_location1"}
+gdb_test_multiple "break $bp_location1" \
+    "set to-be-silent break bp_location1" {
+	-re "Breakpoint (\[0-9\]*) at .*, line $bp_location1.*" {
+	    pass "set to-be-silent break bp_location1"
+	}
 }
 
 send_gdb "commands $expect_out(1,string)\n"
@@ -458,30 +390,14 @@ gdb_expect {
   timeout {fail "(timeout) set silent break bp_location1"}
 }
 
-send_gdb "info break $expect_out(1,string)\n"
-gdb_expect {
-  -re "\[0-9\]*\[ \t\]*breakpoint.*:$bp_location1\r\n\[ \t\]*silent.*$gdb_prompt $"\
-          {pass "info silent break bp_location1"}
-  -re "$gdb_prompt $"\
-          {fail "info silent break bp_location1"}
-  timeout {fail "(timeout) info silent break bp_location1"}
-}
-send_gdb "continue\n"
-gdb_expect {
-  -re "Continuing.\r\n$gdb_prompt $"\
-          {pass "hit silent break bp_location1"}
-  -re "$gdb_prompt $"\
-          {fail "hit silent break bp_location1"}
-  timeout {fail "(timeout) hit silent break bp_location1"}
-}
-send_gdb "bt\n"
-gdb_expect {
-  -re "#0  main .* at .*:$bp_location1.*$gdb_prompt $"\
-          {pass "stopped for silent break bp_location1"}
-  -re "$gdb_prompt $"\
-          {fail "stopped for silent break bp_location1"}
-  timeout {fail "(timeout) stopped for silent break bp_location1"}
-}
+gdb_test "info break $expect_out(1,string)\n" \
+    "\[0-9\]*\[ \t\]*breakpoint.*:$bp_location1\r\n\[ \t\]*silent.*" \
+    "info silent break bp_location1"
+
+gdb_test "continue" "Continuing.*" "hit silent break bp_location1"
+
+gdb_test "bt" "#0  main .* at .*:$bp_location1.*" \
+    "stopped for silent break bp_location1"
 
 # Verify that GDB can at least parse a breakpoint with the
 # "thread" keyword.  (We won't attempt to test here that a
@@ -489,61 +405,34 @@ gdb_expect {
 # The gdb.threads subdirectory contains tests for that.)
 #
 set bp_location12 [gdb_get_line_number "set breakpoint 12 here"]
-send_gdb "break $bp_location12 thread 999\n"
-gdb_expect {
-  -re "Unknown thread 999.*$gdb_prompt $"\
-          {pass "thread-specific breakpoint on non-existent thread disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "thread-specific breakpoint on non-existent thread disallowed"}
-  timeout {fail "(timeout) thread-specific breakpoint on non-existent thread disallowed"}
-}
-send_gdb "break $bp_location12 thread foo\n"
-gdb_expect {
-  -re "Junk after thread keyword..*$gdb_prompt $"\
-          {pass "thread-specific breakpoint on bogus thread ID disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "thread-specific breakpoint on bogus thread ID disallowed"}
-  timeout {fail "(timeout) thread-specific breakpoint on bogus thread ID disallowed"}
-}
+
+gdb_test "break $bp_location12 thread 999" "Unknown thread 999.*" \
+    "thread-specific breakpoint on non-existent thread disallowed"
+
+gdb_test "break $bp_location12 thread foo" \
+    "Junk after thread keyword.*" \
+    "thread-specific breakpoint on bogus thread ID disallowed"
 
 # Verify that GDB responds gracefully to a breakpoint command with
 # trailing garbage.
 #
-send_gdb "break $bp_location12 foo\n"
-gdb_expect {
-  -re "Junk at end of arguments..*$gdb_prompt $"\
-          {pass "breakpoint with trailing garbage disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "breakpoint with trailing garbage disallowed"}
-  timeout {fail "(timeout) breakpoint with trailing garbage disallowed"}
-}
+
+gdb_test "break $bp_location12 foo" \
+    "Junk at end of arguments.*" \
+    "breakpoint with trailing garbage disallowed"
 
 # Verify that GDB responds gracefully to a "clear" command that has
 # no matching breakpoint.  (First, get us off the current source line,
 # which we know has a breakpoint.)
 #
-send_gdb "next\n"
-gdb_expect {
-  -re ".*$gdb_prompt $"\
-          {pass "step over breakpoint"}
-  timeout {fail "(timeout) step over breakpoint"}
-}
-send_gdb "clear 81\n"
-gdb_expect {
-  -re "No breakpoint at 81..*$gdb_prompt $"\
-          {pass "clear line has no breakpoint disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "clear line has no breakpoint disallowed"}
-  timeout {fail "(timeout) clear line has no breakpoint disallowed"}
-}
-send_gdb "clear\n"
-gdb_expect {
-  -re "No breakpoint at this line..*$gdb_prompt $"\
-          {pass "clear current line has no breakpoint disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "clear current line has no breakpoint disallowed"}
-  timeout {fail "(timeout) clear current line has no breakpoint disallowed"}
-}
+
+gdb_test "next" "marker1.*" "step over breakpoint"
+
+gdb_test "clear 81" "No breakpoint at 81.*" \
+    "clear line has no breakpoint disallowed"
+
+gdb_test "clear" "No breakpoint at this line.*" \
+    "clear current line has no breakpoint disallowed"
 
 # Verify that we can set and clear multiple breakpoints.
 #
@@ -556,57 +445,35 @@ gdb_test "clear marker3" {Deleted breakp
 
 # Verify that a breakpoint can be set via a convenience variable.
 #
-send_gdb "set \$foo=$bp_location11\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "set convenience variable \$foo to bp_location11"}
-  timeout {fail "(timeout) set convenience variable \$foo to bp_location11"}
-}
-send_gdb "break \$foo\n"
-gdb_expect {
-  -re "Breakpoint (\[0-9\]*) at .*, line $bp_location11.*$gdb_prompt $"\
-          {pass "set breakpoint via convenience variable"}
-  -re "$gdb_prompt $"\
-          {fail "set breakpoint via convenience variable"}
-  timeout {fail "(timeout) set breakpoint via convenience variable"}
-}
+
+gdb_test "set \$foo=$bp_location11" "" \
+    "set convenience variable \$foo to bp_location11"
+
+gdb_test "break \$foo" \
+    "Breakpoint (\[0-9\]*) at .*, line $bp_location11.*" \
+    "set breakpoint via convenience variable"
 
 # Verify that GDB responds gracefully to an attempt to set a
 # breakpoint via a convenience variable whose type is not integer.
 #
-send_gdb "set \$foo=81.5\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "set convenience variable \$foo to 81.5"}
-  timeout {fail "(timeout) set convenience variable \$foo to 81.5"}
-}
-send_gdb "break \$foo\n"
-gdb_expect {
-  -re "Convenience variables used in line specs must have integer values..*$gdb_prompt $"\
-          {pass "set breakpoint via non-integer convenience variable disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "set breakpoint via non-integer convenience variable disallowed"}
-  timeout {fail "(timeout) set breakpoint via non-integer convenience variable disallowed"}
-}
+
+gdb_test "set \$foo=81.5" "" \
+    "set convenience variable \$foo to 81.5"
+
+gdb_test "break \$foo" \
+    "Convenience variables used in line specs must have integer values.*" \
+    "set breakpoint via non-integer convenience variable disallowed"
 
 # Verify that we can set and trigger a breakpoint in a user-called function.
 #
-send_gdb "break marker2\n"
-gdb_expect {
-    -re "Breakpoint (\[0-9\]*) at .*, line ($bp_location8|$bp_location9).*$gdb_prompt $"\
-          {pass "set breakpoint on to-be-called function"}
-  -re "$gdb_prompt $"\
-          {fail "set breakpoint on to-be-called function"}
-  timeout {fail "(timeout) set breakpoint on to-be-called function"}
-}
-send_gdb "print marker2(99)\n"
-gdb_expect {
-  -re "The program being debugged stopped while in a function called from GDB.\r\nEvaluation of the expression containing the function\r\n.marker2. will be abandoned.\r\nWhen the function is done executing, GDB will silently stop..*$gdb_prompt $"\
-          {pass "hit breakpoint on called function"}
-  -re "$gdb_prompt $"\
-          {fail "hit breakpoint on called function"}
-  timeout {fail "(timeout) hit breakpoint on called function"}
-}
+
+gdb_test "break marker2" \
+    "Breakpoint (\[0-9\]*) at .*, line ($bp_location8|$bp_location9).*" \
+    "set breakpoint on to-be-called function"
+
+gdb_test "print marker2(99)" \
+    "The program being debugged stopped while in a function called from GDB.\r\nEvaluation of the expression containing the function\r\n.marker2. will be abandoned.\r\nWhen the function is done executing, GDB will silently stop.*" \
+    "hit breakpoint on called function"
 
 # As long as we're stopped (breakpointed) in a called function,
 # verify that we can successfully backtrace & such from here.
@@ -614,47 +481,41 @@ gdb_expect {
 # In this and the following test, the _sr4export check apparently is needed
 # for hppa*-*-hpux.
 #
-send_gdb "bt\n"
-gdb_expect {
-    -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*_sr4export.*$gdb_prompt $"\
-            {pass "backtrace while in called function"}
-    -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*function called from gdb.*$gdb_prompt $"\
-	    {pass "backtrace while in called function"}
-    -re "$gdb_prompt $"\
-            {fail "backtrace while in called function"}
-    timeout {fail "(timeout) backtrace while in called function"}
+
+gdb_test_multiple "bt" "backtrace while in called function" {
+    -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*_sr4export.*" {
+	pass "backtrace while in called function"
+    }
+    -re "#0\[ \t\]*($hex in )?marker2.*:($bp_location8|$bp_location9)\r\n#1.*function called from gdb.*" {
+	pass "backtrace while in called function"
+    }
 }
 
 # Return from the called function.  For remote targets, it's important to do
 # this before runto_main, which otherwise may silently stop on the dummy
 # breakpoint inserted by GDB at the program's entry point.
 #
-send_gdb "finish\n"
-gdb_expect {
-    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.* in _sr4export.*$gdb_prompt $"\
-            {pass "finish from called function"}
-    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*function called from gdb.*$gdb_prompt $"\
-            {pass "finish from called function"}
-    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*Value returned.*$gdb_prompt $"\
-            {pass "finish from called function"}
-    -re "$gdb_prompt $"\
-            {fail "finish from called function"}
-    timeout {fail "(timeout) finish from called function"}
+
+gdb_test_multiple "finish" "finish from called function" {
+    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.* in _sr4export.*" {
+	pass "finish from called function"
+    }
+    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*function called from gdb.*" {
+	pass "finish from called function"
+    }
+    -re "Run till exit from .*marker2.* at .*($bp_location8|$bp_location9)\r\n.*Value returned.*" {
+	pass "finish from called function"
+    }
 }
 
 # Verify that GDB responds gracefully to a "finish" command with
 # arguments.
 #
-if ![runto_main] then { fail "break tests suppressed" }
+if ![runto_main] then { fail "sepdebug tests suppressed" }
 
-send_gdb "finish 123\n"
-gdb_expect {
-  -re "The \"finish\" command does not take any arguments.\r\n$gdb_prompt $"\
-          {pass "finish with arguments disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "finish with arguments disallowed"}
-  timeout {fail "(timeout) finish with arguments disallowed"}
-}
+gdb_test "finish 123" \
+    "The \"finish\" command does not take any arguments.*" \
+    "finish with arguments disallowed"
 
 # Verify that GDB responds gracefully to a request to "finish" from
 # the outermost frame.  On a stub that never exits, this will just
@@ -662,79 +523,49 @@ gdb_expect {
 # second condition.
 #
 
-send_gdb "finish\n"
-gdb_expect {
-  -re "\"finish\" not meaningful in the outermost frame.\r\n$gdb_prompt $"\
-          {pass "finish from outermost frame disallowed"}
-  -re "Run till exit from.*\r\n$gdb_prompt $" {
-     pass "finish from outermost frame disallowed"
-  }
-  -re "$gdb_prompt $"\
-          {fail "finish from outermost frame disallowed"}
-  timeout {fail "(timeout) finish from outermost frame disallowed"}
+gdb_test_multiple "finish" "finish from outermost frame disallowed" {
+    -re "\"finish\" not meaningful in the outermost frame.*" {
+	pass "finish from outermost frame disallowed"
+    }
+    -re "Run till exit from.*" {
+	pass "finish from outermost frame disallowed"
+    }
 }
 
 # Verify that we can explicitly ask GDB to stop on all shared library
 # events, and that it does so.
 #
 if [istarget "hppa*-*-hpux*"] then {
-  if ![runto_main] then { fail "break tests suppressed" }
+    if ![runto_main] then { fail "sepdebug tests suppressed" }
 
-  send_gdb "set stop-on-solib-events 1\n"
-  gdb_expect {
-    -re "$gdb_prompt $"\
-            {pass "set stop-on-solib-events"}
-    timeout {fail "(timeout) set stop-on-solib-events"}
-  }
-
-  send_gdb "run\n"
-  gdb_expect {
-    -re ".*Start it from the beginning.*y or n. $"\
-            {send_gdb "y\n"
-             gdb_expect {
-               -re ".*Stopped due to shared library event.*$gdb_prompt $"\
-                       {pass "triggered stop-on-solib-events"}
-               -re "$gdb_prompt $"\
-                       {fail "triggered stop-on-solib-events"}
-               timeout {fail "(timeout) triggered stop-on-solib-events"}
-             }
-            }
-    -re "$gdb_prompt $"\
-            {fail "rerun for stop-on-solib-events"}
-    timeout {fail "(timeout) rerun for stop-on-solib-events"}
-  }
-
-  send_gdb "set stop-on-solib-events 0\n"
-  gdb_expect {
-    -re "$gdb_prompt $"\
-            {pass "reset stop-on-solib-events"}
-    timeout {fail "(timeout) reset stop-on-solib-events"}
-  }
+    gdb_test "set stop-on-solib-events 1" "" \
+	"set stop-on-solib-events"
+
+    gdb_test_multiple "run" "triggered stop-on-solib-events" {
+	-re "Start it from the beginning.*y or n. $" {
+	    gdb_test "y" \
+		"Stopped due to shared library event.*" \
+		"triggered stop-on-solib-events"
+	}
+    }
+
+    gdb_test "set stop-on-solib-events 0" "" \
+      "reset stop-on-solib-events"
 }
 
 # Hardware breakpoints are unsupported on HP-UX.  Verify that GDB
 # gracefully responds to requests to create them.
 #
 if [istarget "hppa*-*-hpux*"] then {
-  if ![runto_main] then { fail "break tests suppressed" }
+    if ![runto_main] then { fail "sepdebug tests suppressed" }
 
-  send_gdb "hbreak\n"
-  gdb_expect {
-    -re "No hardware breakpoint support in the target.*$gdb_prompt $"\
-            {pass "hw breaks disallowed"}
-    -re "$gdb_prompt $"\
-            {fail "hw breaks disallowed"}
-    timeout {fail "(timeout) hw breaks disallowed"}
-  }
-
-  send_gdb "thbreak\n"
-  gdb_expect {
-    -re "No hardware breakpoint support in the target.*$gdb_prompt $"\
-            {pass "temporary hw breaks disallowed"}
-    -re "$gdb_prompt $"\
-            {fail "temporary hw breaks disallowed"}
-    timeout {fail "(timeout) temporary hw breaks disallowed"}
-  }
+    gdb_test "hbreak" \
+	"No hardware breakpoint support in the target.*" \
+	"hw breaks disallowed"
+
+    gdb_test "thbreak" \
+      "No hardware breakpoint support in the target.*" \
+      "temporary hw breaks disallowed"
 }
 
 #********
@@ -905,11 +736,11 @@ proc test_different_dir {type test_diffe
 
     set bp_location13 [gdb_get_line_number "set breakpoint 13 here"]
     set bp_location14 [gdb_get_line_number "set breakpoint 14 here"]
-    send_gdb "continue\n"
     if {$xfail} {
 	setup_xfail "*-*-*"
     }
-    gdb_expect {
+
+    gdb_test_multiple "continue" "run until breakpoint set at small function, optimized file" {
 	-re "Breakpoint $decimal, marker4 \\(d=177601976\\) at .*$srcfile:$bp_location13\[\r\n\]+$bp_location13\[\t \]+void marker4.*" {
 	    pass "run until breakpoint set at small function, optimized file"
 	}
@@ -920,12 +751,6 @@ proc test_different_dir {type test_diffe
 	    # marker4() is defined at line 46 when compiled with -DPROTOTYPES
 	    pass "run until breakpoint set at small function, optimized file (line bp_location14)"
 	}
-	-re ".*$gdb_prompt " {
-	    fail "run until breakpoint set at small function, optimized file"
-	}
-	timeout {
-	    fail "run until breakpoint set at small function, optimized file (timeout)"
-	}
     }
 
 
@@ -933,8 +758,7 @@ proc test_different_dir {type test_diffe
     if [istarget "*-*-vxworks*"] {
 	set timeout 10
 	verbose "Timeout is now $timeout seconds" 2
-	send_gdb "set args main\n"
-	gdb_expect -re ".*$gdb_prompt $" {}
+	gdb_test "set args main" "" ""
     }
 
     set pf_prefix $old_pf_prefix

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFA] (long) sepdebug.exp replace send_gdb with gdb_test
  2010-05-20  0:59 [RFA] (long) sepdebug.exp replace send_gdb with gdb_test Michael Snyder
@ 2010-05-20 16:47 ` Pedro Alves
  2010-05-20 18:02   ` Michael Snyder
  0 siblings, 1 reply; 5+ messages in thread
From: Pedro Alves @ 2010-05-20 16:47 UTC (permalink / raw)
  To: gdb-patches; +Cc: Michael Snyder

I didn't to a thorough review, but I noticed a couple of
issues.

On Thursday 20 May 2010 01:06:53, Michael Snyder wrote:
> 
> -# Test deleting all breakpoints when there are none installed,
> -# GDB should not prompt for confirmation.
> -# Note that gdb-init.exp provides a "delete_breakpoints" proc
> -# for general use elsewhere.
> -
> -send_gdb "delete breakpoints\n"
> -gdb_expect {
> -     -re "Delete all breakpoints.*$" {
> -           send_gdb "y\n"
> -           gdb_expect {
> -               -re "$gdb_prompt $" {
> -                   fail "Delete all breakpoints when none (unexpected prompt)"
> -               }
> -               timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
> -           }
> -       }
> -     -re ".*$gdb_prompt $"       { pass "Delete all breakpoints when none" }
> -    timeout                { fail "Delete all breakpoints when none (timeout)" }
> -}
> +delete_breakpoints

delete_breakpoints doesn't do what the test was doing before.
Notice the comment..  Whether what is being tested or not has any
value in this case, is another question, but it seems
to have been just blindly copied from break.exp.  You could
just delete it it seems.

> -  -re "Catchpoint \[0-9\]* .fork..*$gdb_prompt $"
> -          {pass $name}
> -  -re "Catch of fork not yet implemented.*$gdb_prompt $"
> -         {pass $name}
> -  -re "$gdb_prompt $"
> -          {fail $name}
> -  timeout {fail "(timeout) $name"}
> +gdb_test_multiple "catch fork" $name {
> +    -re "Catchpoint \[0-9\]* .fork.*" {
> +       pass $name

You should make sure to always consume the prompt with gdb_test_multiple,
otherwise, it may be left in the input stream and confuse follow up tests.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFA] (long) sepdebug.exp replace send_gdb with gdb_test
  2010-05-20 16:47 ` Pedro Alves
@ 2010-05-20 18:02   ` Michael Snyder
  2010-05-20 18:15     ` Pedro Alves
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Snyder @ 2010-05-20 18:02 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

Pedro Alves wrote:
> I didn't to a thorough review, but I noticed a couple of
> issues.
> 
> On Thursday 20 May 2010 01:06:53, Michael Snyder wrote:
>> -# Test deleting all breakpoints when there are none installed,
>> -# GDB should not prompt for confirmation.
>> -# Note that gdb-init.exp provides a "delete_breakpoints" proc
>> -# for general use elsewhere.
>> -
>> -send_gdb "delete breakpoints\n"
>> -gdb_expect {
>> -     -re "Delete all breakpoints.*$" {
>> -           send_gdb "y\n"
>> -           gdb_expect {
>> -               -re "$gdb_prompt $" {
>> -                   fail "Delete all breakpoints when none (unexpected prompt)"
>> -               }
>> -               timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
>> -           }
>> -       }
>> -     -re ".*$gdb_prompt $"       { pass "Delete all breakpoints when none" }
>> -    timeout                { fail "Delete all breakpoints when none (timeout)" }
>> -}
>> +delete_breakpoints
> 
> delete_breakpoints doesn't do what the test was doing before.
> Notice the comment..  Whether what is being tested or not has any
> value in this case, is another question, but it seems
> to have been just blindly copied from break.exp.  You could
> just delete it it seems.

It was copied from break.exp, and I figured as long as it was
tested there, it didn't need to be tested again here.



> 
>> -  -re "Catchpoint \[0-9\]* .fork..*$gdb_prompt $"
>> -          {pass $name}
>> -  -re "Catch of fork not yet implemented.*$gdb_prompt $"
>> -         {pass $name}
>> -  -re "$gdb_prompt $"
>> -          {fail $name}
>> -  timeout {fail "(timeout) $name"}
>> +gdb_test_multiple "catch fork" $name {
>> +    -re "Catchpoint \[0-9\]* .fork.*" {
>> +       pass $name
> 
> You should make sure to always consume the prompt with gdb_test_multiple,
> otherwise, it may be left in the input stream and confuse follow up tests.

Uh-oh, I didn't know that.  Thanks, I'll have to redo several of these.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFA] (long) sepdebug.exp replace send_gdb with gdb_test
  2010-05-20 18:02   ` Michael Snyder
@ 2010-05-20 18:15     ` Pedro Alves
  2010-05-20 18:24       ` Michael Snyder
  0 siblings, 1 reply; 5+ messages in thread
From: Pedro Alves @ 2010-05-20 18:15 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches

On Thursday 20 May 2010 18:57:30, Michael Snyder wrote:
> Pedro Alves wrote:
> > I didn't to a thorough review, but I noticed a couple of
> > issues.
> > 
> > On Thursday 20 May 2010 01:06:53, Michael Snyder wrote:
> >> -# Test deleting all breakpoints when there are none installed,
> >> -# GDB should not prompt for confirmation.
> >> -# Note that gdb-init.exp provides a "delete_breakpoints" proc
> >> -# for general use elsewhere.
> >> -
> >> -send_gdb "delete breakpoints\n"
> >> -gdb_expect {
> >> -     -re "Delete all breakpoints.*$" {
> >> -           send_gdb "y\n"
> >> -           gdb_expect {
> >> -               -re "$gdb_prompt $" {
> >> -                   fail "Delete all breakpoints when none (unexpected prompt)"
> >> -               }
> >> -               timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
> >> -           }
> >> -       }
> >> -     -re ".*$gdb_prompt $"       { pass "Delete all breakpoints when none" }
> >> -    timeout                { fail "Delete all breakpoints when none (timeout)" }
> >> -}
> >> +delete_breakpoints
> > 
> > delete_breakpoints doesn't do what the test was doing before.
> > Notice the comment..  Whether what is being tested or not has any
> > value in this case, is another question, but it seems
> > to have been just blindly copied from break.exp.  You could
> > just delete it it seems.
> 
> It was copied from break.exp, and I figured as long as it was
> tested there, it didn't need to be tested again here.

Right, then as I said, you could just delete it instead of
replacing with something that behaves differently?

I actually don't care that much.  I was just pointing out that
this hunk wasn't strictly doing a 1-for-1 replacement as the
patch intends to (before the patch, this code issue a fail
if there was any breakpoint in the list, after the patch,
it deletes any breakpoint in the list silently).

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFA] (long) sepdebug.exp replace send_gdb with gdb_test
  2010-05-20 18:15     ` Pedro Alves
@ 2010-05-20 18:24       ` Michael Snyder
  0 siblings, 0 replies; 5+ messages in thread
From: Michael Snyder @ 2010-05-20 18:24 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

Pedro Alves wrote:
> On Thursday 20 May 2010 18:57:30, Michael Snyder wrote:
>> Pedro Alves wrote:
>>> I didn't to a thorough review, but I noticed a couple of
>>> issues.
>>>
>>> On Thursday 20 May 2010 01:06:53, Michael Snyder wrote:
>>>> -# Test deleting all breakpoints when there are none installed,
>>>> -# GDB should not prompt for confirmation.
>>>> -# Note that gdb-init.exp provides a "delete_breakpoints" proc
>>>> -# for general use elsewhere.
>>>> -
>>>> -send_gdb "delete breakpoints\n"
>>>> -gdb_expect {
>>>> -     -re "Delete all breakpoints.*$" {
>>>> -           send_gdb "y\n"
>>>> -           gdb_expect {
>>>> -               -re "$gdb_prompt $" {
>>>> -                   fail "Delete all breakpoints when none (unexpected prompt)"
>>>> -               }
>>>> -               timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
>>>> -           }
>>>> -       }
>>>> -     -re ".*$gdb_prompt $"       { pass "Delete all breakpoints when none" }
>>>> -    timeout                { fail "Delete all breakpoints when none (timeout)" }
>>>> -}
>>>> +delete_breakpoints
>>> delete_breakpoints doesn't do what the test was doing before.
>>> Notice the comment..  Whether what is being tested or not has any
>>> value in this case, is another question, but it seems
>>> to have been just blindly copied from break.exp.  You could
>>> just delete it it seems.
>> It was copied from break.exp, and I figured as long as it was
>> tested there, it didn't need to be tested again here.
> 
> Right, then as I said, you could just delete it instead of
> replacing with something that behaves differently?
> 
> I actually don't care that much.  I was just pointing out that
> this hunk wasn't strictly doing a 1-for-1 replacement as the
> patch intends to (before the patch, this code issue a fail
> if there was any breakpoint in the list, after the patch,
> it deletes any breakpoint in the list silently).
> 

Well, I'm trying to make as mechanical a change as possible,
without either analyzing or changing any more than I can help.

But OK, I'll take it out.



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-05-20 18:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-20  0:59 [RFA] (long) sepdebug.exp replace send_gdb with gdb_test Michael Snyder
2010-05-20 16:47 ` Pedro Alves
2010-05-20 18:02   ` Michael Snyder
2010-05-20 18:15     ` Pedro Alves
2010-05-20 18:24       ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox