Re: [testsuite] Invoke gdb with -batch to avoid prompts

2016-03-03 Thread Rainer Orth
Mike Stump  writes:

> On Mar 1, 2016, at 6:20 AM, Rainer Orth  wrote:
>> When switching from gdb 7.10 to the newly released gdb 7.11 on Solaris,
>> all simulate-thread tests started to timeout
>
> Ok.  If a domain expert prefers a different strategy, I’m fine with
> anything better as well.

Given that there were neither objections nor better suggestions, I've
installed the patch everywhere.

Thanks.
Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: [testsuite] Invoke gdb with -batch to avoid prompts

2016-03-01 Thread Mike Stump
On Mar 1, 2016, at 6:20 AM, Rainer Orth  wrote:
> When switching from gdb 7.10 to the newly released gdb 7.11 on Solaris,
> all simulate-thread tests started to timeout

Ok.  If a domain expert prefers a different strategy, I’m fine with anything 
better as well.

[testsuite] Invoke gdb with -batch to avoid prompts

2016-03-01 Thread Rainer Orth
When switching from gdb 7.10 to the newly released gdb 7.11 on Solaris,
all simulate-thread tests started to timeout, adding about 2 1/2 hours
to bootstrap time.  It turned out that this happens as follows: with gdb
7.10, a test is run like this and runs to completion without interaction:

/vol/gcc/bin/amd64/gdb-7.10 -nx -nw -x 
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
 ./atomic-load-int.exe

With gdb 7.11, OTOH, I see

/vol/gcc/bin/amd64/gdb-7.11 -nx -nw -x 
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.gdb
 ./atomic-load-int.exe 

and the test goes interactive once per page

Thread 2 hit Breakpoint 1, simulate_thread_main ()
at 
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c:97
97for (table_cycle_size = 16; table_cycle_size > 4 ; table_cycle_size--)
---Type  to continue, or q  to quit---

when run interactively, and hangs the test inside the testsuite.

Strangely, this doesn't happen on x86_64-pc-linux-gnu, and I couldn't
find anything related mentioned in the gdb NEWS file.  I didn't dig too
deeply into gdb source code to investigate.

Fortunately, it turns out that the fix is simple: when gdb is invoked
with -batch, both versions behave the same and never go interactive in
this scenario.  The -batch option goes way back (at least to gdb 5.2
which I still had lying around), so this seems a safe change.

Tested with the appropriate runtest invocation on i386-pc-solaris2.12
and x86_64-pc-linux-gnu (with GDB_FOR_GCC_TESTING set to either gdb
version) for gcc.dg/simulate-thread on both and gcc.dg/guality on Linux
only.

Ok for mainline, gcc-5 and gcc-4.9 branches (given that it adds hours to
total bootstrap time)?

Rainer


2016-02-29  Rainer Orth  

* lib/gcc-gdb-test.exp (gdb-test): Make log message match command.
Invoke gdb with -batch.
* lib/gcc-simulate-thread.exp (simulate-thread): Likewise.

# HG changeset patch
# Parent  b8273f68b9015179dc5b11f384d55efd5b4130a8
Invoke gdb with -batch to avoid prompts

diff --git a/gcc/testsuite/lib/gcc-gdb-test.exp b/gcc/testsuite/lib/gcc-gdb-test.exp
--- a/gcc/testsuite/lib/gcc-gdb-test.exp
+++ b/gcc/testsuite/lib/gcc-gdb-test.exp
@@ -73,8 +73,8 @@ proc gdb-test { args } {
 puts $fd "quit"
 close $fd
 
-send_log "Spawning: $gdb_name -nx -nw -quiet -x $cmd_file ./$output_file\n"
-set res [remote_spawn target "$gdb_name -nx -nw -quiet -x $cmd_file ./$output_file"]
+send_log "Spawning: $gdb_name -nx -nw -quiet -batch -x $cmd_file ./$output_file\n"
+set res [remote_spawn target "$gdb_name -nx -nw -quiet -batch -x $cmd_file ./$output_file"]
 if { $res < 0 || $res == "" } {
 	unsupported "$testname"
 	file delete $cmd_file
diff --git a/gcc/testsuite/lib/gcc-simulate-thread.exp b/gcc/testsuite/lib/gcc-simulate-thread.exp
--- a/gcc/testsuite/lib/gcc-simulate-thread.exp
+++ b/gcc/testsuite/lib/gcc-simulate-thread.exp
@@ -49,8 +49,8 @@ proc simulate-thread { args } {
 
 set message "thread simulation test"
 
-send_log "Spawning: $gdb_name -nx -nw -quiet -x $cmd_file ./$exec_file\n"
-set res [remote_spawn target "$gdb_name -nx -nw  -x $cmd_file ./$exec_file"]
+send_log "Spawning: $gdb_name -nx -nw -batch -x $cmd_file ./$exec_file\n"
+set res [remote_spawn target "$gdb_name -nx -nw -batch -x $cmd_file ./$exec_file"]
 if { $res < 0 || $res == "" } {
 	unsupported "$testcase $message"
 	return

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University