Re: RFC: Some expect cleanups for the threads tests

Elena Zannoni
2003-07-26T22:48:30Z

Daniel Jacobowitz writes:
> These patches fix some testsuite problems on my setup - compiler and
> assembler both support TLS, but the C library doesn't. I think you get a
> different error (earlier) if the kernel doesn't support TLS; I'll have to
> check at some point.
>
> Elena, how do the two TLS changes look? The print-threads.exp just handles
> the case where we weren't switching threads before reporting the SIGTRAP, so
> the zombie notice was never printed. If you say "info threads" at that
> point GDB crashes. I'll get that one later today.
>
> --
> Daniel Jacobowitz
> MontaVista Software Debian GNU/Linux Developer
>
> 2003-07-26 Daniel Jacobowitz <drow@mvista.com>
>
> * gdb.threads/print-threads.exp (test_all_threads): Loosen KFAIL
> pattern.
> * gdb.threads/tls-shared.exp: Don't use gdb_suppress_entire_file.
> * gdb.threads/tls.exp: Recognize one case of the host library not
> supporting TLS.
>
> Index: gdb/testsuite/gdb.threads/print-threads.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/print-threads.exp,v
> retrieving revision 1.4
> diff -u -p -r1.4 print-threads.exp
> --- gdb/testsuite/gdb.threads/print-threads.exp 29 Jun 2003 19:29:42 -0000 1.4
> +++ gdb/testsuite/gdb.threads/print-threads.exp 26 Jul 2003 16:00:40 -0000
> @@ -94,7 +94,7 @@ proc test_all_threads { name kill } {
> fail "all threads ran once ($name) (total $i threads ran)"
> }
> }
> - -re "Program received signal SIGTRAP.*Thread \[0-9\]* \\(zombie\\).*$gdb_prompt $" {
> + -re "Program received signal SIGTRAP.*(Thread \[0-9\]* \\(zombie\\)|0x00000000 in ).*$gdb_prompt $" {
> if { $kill == 1 } {
> kfail "gdb/1265" "Running threads ($name) (zombie thread)"
> } else {
> Index: gdb/testsuite/gdb.threads/tls-shared.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/tls-shared.exp,v
> retrieving revision 1.1
> diff -u -p -r1.1 tls-shared.exp
> --- gdb/testsuite/gdb.threads/tls-shared.exp 22 Jul 2003 15:49:45 -0000 1.1
> +++ gdb/testsuite/gdb.threads/tls-shared.exp 26 Jul 2003 16:00:40 -0000
> @@ -78,7 +78,7 @@ if { ($gcc_compiled
> }
>
> if {[gdb_compile_pthreads "${objdir}/${subdir}/${testfile}.o ${objdir}/${subdir}/${libfile}.so" "${binfile}" executable [list debug $additional_flags]] != ""} {
> - gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
> + return -1
> }
>
>

Doh, of course.

> Index: gdb/testsuite/gdb.threads/tls.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/tls.exp,v
> retrieving revision 1.2
> diff -u -p -r1.2 tls.exp
> --- gdb/testsuite/gdb.threads/tls.exp 23 Jul 2003 03:08:26 -0000 1.2
> +++ gdb/testsuite/gdb.threads/tls.exp 26 Jul 2003 16:00:40 -0000
> @@ -172,6 +172,10 @@ gdb_test "b [gdb_get_line_number "before
>
> send_gdb "continue\n"
> gdb_expect {
> + -re ".*Program received signal SIGSEGV.*a_thread_local = 0;.*$gdb_prompt $" {
> + unsupported "continue to first thread: system does not support TLS"
> + return -1
> + }
> -re ".*Program exited normally.*$gdb_prompt $" {
> fail "continue to first thread: program runaway"
> }

Yuck. Is this the failure mode? Nothing detects this earlier? Sigh.

elena