Index: gdb/testsuite/gdb.base/valgrind-infcall.exp |
diff --git a/gdb/testsuite/gdb.base/valgrind-infcall.exp b/gdb/testsuite/gdb.base/valgrind-infcall.exp |
index 107fd3ce6285025ce6b212b5b64216caf8a29a3b..349b32d08fedf2a18e62ee13b8fcba17c1f08ebd 100644 |
--- a/gdb/testsuite/gdb.base/valgrind-infcall.exp |
+++ b/gdb/testsuite/gdb.base/valgrind-infcall.exp |
@@ -1,4 +1,4 @@ |
-# Copyright 2012 Free Software Foundation, Inc. |
+# Copyright 2012-2013 Free Software Foundation, Inc. |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
@@ -18,17 +18,14 @@ if [is_remote target] { |
return 0 |
} |
-set test valgrind-infcall |
-set srcfile $test.c |
-set executable $test |
-set binfile ${objdir}/${subdir}/${executable} |
-if {[build_executable $test.exp $executable $srcfile {debug}] == -1} { |
+standard_testfile .c |
+if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} { |
return -1 |
} |
set test "spawn valgrind" |
set cmd "valgrind --vgdb-error=0 $binfile" |
-set res [remote_spawn host $cmd]; |
+set res [remote_spawn host $cmd] |
if { $res < 0 || $res == "" } { |
verbose -log "Spawning $cmd failed." |
unsupported $test |
@@ -79,11 +76,12 @@ gdb_test_multiple "" $test { |
} |
# Do not kill valgrind. |
+set valgrind_pid [exp_pid -i [board_info host fileid]] |
unset gdb_spawn_id |
set board [host_info name] |
unset_board_info fileid |
-clean_restart $executable |
+clean_restart $testfile |
gdb_test "$vgdbcmd" " in \\.?_start .*" "target remote for vgdb" |
@@ -100,10 +98,14 @@ while {$loop && $continue_count < 100} { |
} |
-re "Remote connection closed.*\r\n$gdb_prompt $" { |
fail "$test (remote connection closed)" |
+ # Only if valgrind got stuck. |
+ remote_exec host "kill -9 ${valgrind_pid}" |
return -1 |
} |
-re "The program is not being run\\.\r\n$gdb_prompt $" { |
fail "$test (valgrind vgdb has terminated)" |
+ # Only if valgrind got stuck. |
+ remote_exec host "kill -9 ${valgrind_pid}" |
return -1 |
} |
-re "\r\n$gdb_prompt $" { |
@@ -122,3 +124,6 @@ gdb_test_multiple $test $test { |
pass $test |
} |
} |
+ |
+# Only if valgrind got stuck. |
+remote_exec host "kill -9 ${valgrind_pid}" |