public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Fix 'gdb.base/quit.exp hangs forever' if the test fails
@ 2017-10-17 17:26 Pedro Alves
  2017-10-20 14:38 ` Pedro Alves
  0 siblings, 1 reply; 2+ messages in thread
From: Pedro Alves @ 2017-10-17 17:26 UTC (permalink / raw)
  To: gdb-patches

The [wait -i $gdb_spawn_id] in the test is dangerous in the sense that
it won't be subject to timeout logic.  So if GDB fails quiting, this
testcase hangs forever, hanging the test run with it.  See:
  https://sourceware.org/ml/gdb-patches/2016-10/msg00728.html

Instead of 'wait'ing directly, use gdb_test_multiple and expect 'eof'.

Tested that the testcase no longer hangs by hacking the test to send
"info threads" instead of "quit".

Tested with
  --target_board={unix, native-gdbserver,native-extended-gdbserver}
and tested with
  --host_board=local-remote-host
as well.

gdb/testsuite/ChangeLog:
yyyy-mm-dd  Pedro Alves  <palves@redhat.com>

	* gdb.base/quit.exp: Use gdb_test_multiple and expect 'eof' before
	'wait -i'.  Use gdb_assert and remote_close.
---
 gdb/testsuite/gdb.base/quit.exp | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/gdb/testsuite/gdb.base/quit.exp b/gdb/testsuite/gdb.base/quit.exp
index c81040e..b2ecc22 100644
--- a/gdb/testsuite/gdb.base/quit.exp
+++ b/gdb/testsuite/gdb.base/quit.exp
@@ -23,13 +23,15 @@ gdb_test "quit()" "A syntax error in expression, near .*" \
     "quit with syntax error"
 
 # Test that an expression can be used to set the error code.
-send_gdb "quit 22+1\n"
-set result [wait -i $gdb_spawn_id]
-verbose $result
-if {[lindex $result 2] == 0 && [lindex $result 3] == 23} {
-    pass "quit with expression"
-} else {
-    fail "quit with expression"
+
+set test "quit with expression"
+gdb_test_multiple "quit 22+1" $test {
+    eof {
+	set result [wait -i $gdb_spawn_id]
+	verbose $result
+	gdb_assert {[lindex $result 2] == 0 && [lindex $result 3] == 23} $test
+
+	remote_close host
+	clear_gdb_spawn_id
+    }
 }
-close $gdb_spawn_id
-clear_gdb_spawn_id
-- 
2.5.5

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

* Re: [PATCH] Fix 'gdb.base/quit.exp hangs forever' if the test fails
  2017-10-17 17:26 [PATCH] Fix 'gdb.base/quit.exp hangs forever' if the test fails Pedro Alves
@ 2017-10-20 14:38 ` Pedro Alves
  0 siblings, 0 replies; 2+ messages in thread
From: Pedro Alves @ 2017-10-20 14:38 UTC (permalink / raw)
  To: gdb-patches

On 10/17/2017 06:26 PM, Pedro Alves wrote:

> gdb/testsuite/ChangeLog:
> yyyy-mm-dd  Pedro Alves  <palves@redhat.com>
> 
> 	* gdb.base/quit.exp: Use gdb_test_multiple and expect 'eof' before
> 	'wait -i'.  Use gdb_assert and remote_close.

Now pushed, given:
 https://sourceware.org/ml/gdb-patches/2017-10/msg00661.html

Thanks,
Pedro Alves

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

end of thread, other threads:[~2017-10-20 14:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-17 17:26 [PATCH] Fix 'gdb.base/quit.exp hangs forever' if the test fails Pedro Alves
2017-10-20 14:38 ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).