Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [rfa/testsuite] Make pthreads test more robust
@ 2001-09-28  8:46 Daniel Jacobowitz
  2001-09-28 11:29 ` Michael Snyder
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Jacobowitz @ 2001-09-28  8:46 UTC (permalink / raw)
  To: gdb-patches

I've been seeing about 90% failure rate for gdb.threads/pthreads.exp lately. 
The test which fails is always stopping threads with a control-c.
I spent some time debugging this today; it seems that the course of events
looks something like this:
	- send "continue\n"
	- wait
	- send "\003"
	- read back "Continuing."
	- timeout

Note that, among other things, we never see "continue\n" echoed back to us,
and yet gdb continues anyway.  Obviously something is fishy in timing.  We
also do no reads between the continue and the \003.  My best guess is that
gdb does not get scheduled between the two sends; so waiting for the output
of continue seems like a good idea.

Also, I'm not entirely sure what 'after 1000 [ ... ]' is supposed to do, but
it doesn't seem to delay by any measurable amount of time.  Adding an
additional sleep, so that the process has actually continued before we send
the ^C, lets the test pass.

Is this OK to commit?  With it, the rest of pthreads.exp passes (except for
the last test:
      break common_routine thread 4
Breakpoint 6 at 0x8048666: file ../../../../src-hashtest/gdb/testsuite/gdb.threads/pthreads.c, line 50.
(gdb) PASS: gdb.threads/pthreads.exp: set break at common_routine in thread 2
      continue
Continuing.
Cannot find thread 1024: generic error
(gdb) FAIL: gdb.threads/pthreads.exp: continue to bkpt at common_routine in thread 2
)


-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer

2001-09-28  Daniel Jacobowitz  <drow@mvista.com>

	* gdb.threads/pthreads.exp: Wait for output and delay
	before sending ^C.

Index: pthreads.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/pthreads.exp,v
retrieving revision 1.6
diff -u -r1.6 pthreads.exp
--- pthreads.exp	2001/06/06 18:34:53	1.6
+++ pthreads.exp	2001/09/28 15:30:28
@@ -248,6 +248,15 @@
 
     # Send a continue followed by ^C to the process to stop it.
     send_gdb "continue\n"
+    gdb_expect {
+	-re "Continuing." {
+	    pass "Continue with all threads running"
+	}
+	timeout {
+	    fail "Continue with all threads running (timeout)"
+	}
+    }
+    sleep 1
     set description "Stopped with a ^C"
     after 1000 [send_gdb "\003"]
     gdb_expect {


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

end of thread, other threads:[~2001-10-01 13:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-28  8:46 [rfa/testsuite] Make pthreads test more robust Daniel Jacobowitz
2001-09-28 11:29 ` Michael Snyder
2001-10-01  8:17   ` Fernando Nasser
2001-10-01 13:37     ` Daniel Jacobowitz

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