From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12375 invoked by alias); 28 Jan 2010 21:53:21 -0000 Received: (qmail 12366 invoked by uid 22791); 28 Jan 2010 21:53:19 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 28 Jan 2010 21:53:13 +0000 Received: (qmail 21786 invoked from network); 28 Jan 2010 21:53:11 -0000 Received: from unknown (HELO caradoc.them.org) (dan@127.0.0.2) by mail.codesourcery.com with ESMTPA; 28 Jan 2010 21:53:11 -0000 Date: Thu, 28 Jan 2010 21:53:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sourceware.org Subject: RFC: Fix testsuite timeout clobbers Message-ID: <20100128215305.GA2813@caradoc.them.org> Mail-Followup-To: gdb-patches@sourceware.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-01/txt/msg00616.txt.bz2 There are many GDB tests that have a "set timeout" in them. Unfortunately, because we have a single global variable for the timeout, this means that tests have different timeouts if they are run independently or in order. This patch cleans out many (probably not all, but all I could find) cases of tests which modify the timeout and fail to reset it. The timeouts are old and somewhat made up. Still, I'm sure that this will cause something to time out; if it does, we'll add timeouts on a case-by-case basis. Any comments on this? Otherwise, I'll check it in next week. -- Daniel Jacobowitz CodeSourcery 2010-01-28 Daniel Jacobowitz gdb/testsuite/ * gdb.base/call-strs.exp, gdb.base/default.exp, gdb.base/ending-run.exp, gdb.base/finish.exp, gdb.base/funcargs.exp, gdb.base/huge.exp, gdb.base/nodebug.exp, gdb.base/ptype.exp, gdb.base/restore.exp, gdb.base/return.exp, gdb.base/setvar.exp, gdb.base/watchpoints.exp, gdb.threads/gcore-thread.exp, gdb.base/watchpoint-solib.exp: Save and restore timeout. * gdb.base/ending-run.exp: Correct restore of timeout. * gdb.base/page.exp: Remove unnecessary timeout setting. --- gdb/testsuite/gdb.base/call-strs.exp | 9 ++++++--- gdb/testsuite/gdb.base/default.exp | 3 +++ gdb/testsuite/gdb.base/ending-run.exp | 4 ++-- gdb/testsuite/gdb.base/finish.exp | 2 ++ gdb/testsuite/gdb.base/freebpcmd.exp | 3 +++ gdb/testsuite/gdb.base/funcargs.exp | 3 +++ gdb/testsuite/gdb.base/huge.exp | 2 ++ gdb/testsuite/gdb.base/nodebug.exp | 4 +++- gdb/testsuite/gdb.base/page.exp | 5 ----- gdb/testsuite/gdb.base/ptype.exp | 5 ++++- gdb/testsuite/gdb.base/restore.exp | 2 ++ gdb/testsuite/gdb.base/return.exp | 2 ++ gdb/testsuite/gdb.base/setvar.exp | 5 ++++- gdb/testsuite/gdb.base/watchpoint-solib.exp | 8 ++++---- gdb/testsuite/gdb.base/watchpoints.exp | 3 ++- gdb/testsuite/gdb.threads/gcore-thread.exp | 2 ++ 16 files changed, 44 insertions(+), 18 deletions(-) Index: gdb-mainline/gdb/testsuite/gdb.base/call-strs.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/call-strs.exp 2010-01-01 00:27:53.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/call-strs.exp 2010-01-12 14:30:07.000000000 -0800 @@ -95,13 +95,14 @@ send_gdb "set print sevenbit-strings\n" send_gdb "set print address off\n" ; gdb_expect -re "$gdb_prompt $" send_gdb "set width 0\n" ; gdb_expect -re "$gdb_prompt $" -set timeout 120 - if ![runto_main] then { perror "couldn't run to breakpoint" continue } +set prev_timeout $timeout +set timeout 120 + #step send_gdb "step\n" gdb_expect { @@ -263,4 +264,6 @@ if ![gdb_skip_stdio_test "call str_func( } gdb_exit -return 0 + +set timeout $prev_timeout + Index: gdb-mainline/gdb/testsuite/gdb.base/default.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/default.exp 2010-01-01 00:27:53.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/default.exp 2010-01-12 14:32:03.000000000 -0800 @@ -20,6 +20,7 @@ gdb_exit gdb_start +set prev_timeout $timeout set timeout 60 # @@ -801,3 +802,5 @@ gdb_test "where" "No stack." "where" gdb_test "x" "Argument required .starting display address.*" "x" gdb_exit + +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/ending-run.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/ending-run.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/ending-run.exp 2010-01-12 14:33:19.000000000 -0800 @@ -261,8 +261,6 @@ if {! [target_info exists use_gdb_stub] unsupported "continue after exit" } - set timeout $old_timeout - if {$program_exited_normally} { gdb_test "n" ".*The program is not being run.*" "don't step after run" } elseif {$program_not_exited} { @@ -285,6 +283,8 @@ if {! [target_info exists use_gdb_stub] } } +set timeout $old_timeout + #remote_exec build "rm -f ${binfile}" return 0 Index: gdb-mainline/gdb/testsuite/gdb.base/finish.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/finish.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/finish.exp 2010-01-12 14:33:44.000000000 -0800 @@ -124,5 +124,7 @@ proc finish_tests { } { finish_abbreviation "fin" } +set prev_timeout $timeout set timeout 30 finish_tests +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/freebpcmd.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/freebpcmd.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/freebpcmd.exp 2010-01-12 14:36:05.000000000 -0800 @@ -108,6 +108,7 @@ if {$i >= [llength $lines]} { gdb_run_cmd +set prev_timeout $timeout set timeout 120 gdb_test_multiple "" "run program with breakpoint commands" { @@ -121,3 +122,5 @@ gdb_test_multiple "" "run program with b kfail "gdb/1489" "run program with breakpoint commands (GDB died)" } } + +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/funcargs.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/funcargs.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/funcargs.exp 2010-01-12 15:02:00.000000000 -0800 @@ -1149,6 +1149,7 @@ gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} +set prev_timeout $timeout if [istarget "mips*tx39-*"] { set timeout 300 } else { @@ -1223,3 +1224,5 @@ funcargs_reload localvars_in_indirect_call funcargs_reload test_stepping_over_trampolines + +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/huge.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/huge.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/huge.exp 2010-01-12 14:36:47.000000000 -0800 @@ -50,6 +50,7 @@ gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} +set prev_timeout $timeout set timeout 30 if { ! [ runto_main ] } then { @@ -59,3 +60,4 @@ if { ! [ runto_main ] } then { gdb_test "print a" ".1 = .0 .repeats \[0123456789\]+ times.." "print a very large data object" +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/nodebug.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/nodebug.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/nodebug.exp 2010-01-12 14:46:22.000000000 -0800 @@ -202,8 +202,10 @@ if [runto inner] then { } else { # We need to up this because this can be really slow on some boards. # (malloc() is called as part of the test). - set timeout 60; + set prev_timeout $timeout + set timeout 60 gdb_test {p/c array_index("abcdef",2)} " = 99 'c'" + set timeout $prev_timeout } } Index: gdb-mainline/gdb/testsuite/gdb.base/page.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/page.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/page.exp 2010-01-12 14:47:22.000000000 -0800 @@ -20,11 +20,6 @@ if $tracelevel { strace $tracelevel } -global message -global timeout - -set timeout 200 - gdb_exit gdb_start Index: gdb-mainline/gdb/testsuite/gdb.base/ptype.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/ptype.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/ptype.exp 2010-01-12 14:49:06.000000000 -0800 @@ -626,7 +626,8 @@ if [runto_main] then { # We need to up this because this can be really slow on some boards. # (malloc() is called as part of the test). - set timeout 60; + set prev_timeout $timeout + set timeout 60 gdb_test "ptype \"abc\"" "type = char \\\[4\\\]" gdb_test "ptype {'a','b','c'}" "type = char \\\[3\\\]" @@ -637,6 +638,8 @@ if [runto_main] then { gdb_test "ptype {4,5,6}\[2\]" "type = int" gdb_test "ptype *&{4,5,6}\[1\]" "Attempt to take address of value not located in memory." + set timeout $prev_timeout + # Test ptype of user register gdb_test "ptype \$pc" "void \\(\\*\\)\\(\\)" "ptype \$pc" } Index: gdb-mainline/gdb/testsuite/gdb.base/restore.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/restore.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/restore.exp 2010-01-12 14:50:00.000000000 -0800 @@ -116,5 +116,7 @@ gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} +set prev_timeout $timeout set timeout 30 restore_tests +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/return.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/return.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/return.exp 2010-01-12 15:02:13.000000000 -0800 @@ -91,5 +91,7 @@ proc return_tests { } { gdb_test "p tmp3" ".* = 5.*" "correct value returned double test (known problem with sparc solaris)" } +set prev_timeout $timeout set timeout 30 return_tests +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/setvar.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/setvar.exp 2010-01-01 00:27:54.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/setvar.exp 2010-01-12 14:51:30.000000000 -0800 @@ -374,7 +374,8 @@ v_long_member = 3,.*v_float_member = 4,. # We need to up this because this can be really slow on some boards. # (malloc() is called as part of the test). -set timeout 60; +set prev_timeout $timeout +set timeout 60 # Change the values test_set "set variable v_struct1 = {32, 33, 34, 35, 36, 37}" \ @@ -392,6 +393,8 @@ test_set "set variable v_struct1 = {'h', v_long_member = 3,.*v_float_member = 4,.*v_double_member = 5.*\\}" \ "set print structure #3" +set timeout $prev_timeout + # Test printing of enumeration bitfields. # GNU C supports them, some other compilers don't. Index: gdb-mainline/gdb/testsuite/gdb.base/watchpoints.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/watchpoints.exp 2010-01-01 00:27:55.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/watchpoints.exp 2010-01-12 14:52:52.000000000 -0800 @@ -53,6 +53,7 @@ gdb_load $binfile gdb_test "watch ival1" "" "" gdb_test "watch ival3" "" "" + set prev_timeout $timeout set timeout 600 gdb_test "cont" "Continuing.*\[Ww\]atchpoint.*ival1.*Old value = -1.*New value = 0.*ival1 = count; ival2 = count;.*" "watchpoint hit, first time" @@ -102,4 +103,4 @@ gdb_load $binfile # Check that the hit count is reported correctly gdb_test "info break" ".*watchpoint\[ \t\]+keep\[ \t\]+y\[ \t\]+ival3\r\n\[ \t]+breakpoint already hit 5 times.*" "Watchpoint hit count is 5" - +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.threads/gcore-thread.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.threads/gcore-thread.exp 2010-01-01 00:27:57.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.threads/gcore-thread.exp 2010-01-12 14:53:36.000000000 -0800 @@ -55,6 +55,7 @@ set horiz "\[^\n\r\]*" # regexp for newline set nl "\[\r\n\]+" +set prev_timeout $timeout set timeout 30 send_gdb "help gcore\n" @@ -174,3 +175,4 @@ gdb_test "info threads" ".* thread2 .*" gdb_test "info threads" ".*${nl}\\* ${horiz} thread2 .*" \ "thread2 is current thread in corefile" +set timeout $prev_timeout Index: gdb-mainline/gdb/testsuite/gdb.base/watchpoint-solib.exp =================================================================== --- gdb-mainline.orig/gdb/testsuite/gdb.base/watchpoint-solib.exp 2010-01-13 06:25:37.000000000 -0800 +++ gdb-mainline/gdb/testsuite/gdb.base/watchpoint-solib.exp 2010-01-13 06:25:50.000000000 -0800 @@ -83,6 +83,9 @@ gdb_test_multiple "break foo" "set pendi } } +set prev_timeout $timeout +set timeout 120 + gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo" gdb_test "watch g" "atchpoint 3: g" "set watchpoint on g" gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit" @@ -90,7 +93,4 @@ rerun_to_main gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo again" gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit again" - - - - +set timeout $prev_timeout