From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5617 invoked by alias); 24 Feb 2011 07:34:46 -0000 Received: (qmail 5453 invoked by uid 22791); 24 Feb 2011 07:34:45 -0000 X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 24 Feb 2011 07:34:38 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p1O7YOMH023084 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 24 Feb 2011 02:34:24 -0500 Received: from host1.dyn.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p1O7YMGD018483 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 24 Feb 2011 02:34:24 -0500 Received: from host1.dyn.jankratochvil.net (localhost [127.0.0.1]) by host1.dyn.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p1O7YM40005835; Thu, 24 Feb 2011 08:34:22 +0100 Received: (from jkratoch@localhost) by host1.dyn.jankratochvil.net (8.14.4/8.14.4/Submit) id p1O7YLvn005833; Thu, 24 Feb 2011 08:34:21 +0100 Date: Thu, 24 Feb 2011 07:35:00 -0000 From: Jan Kratochvil To: Joel Brobecker Cc: gdb-patches@sourceware.org Subject: Re: [patch 1/3] Code cleanup: gdb.threads/gcore-thread.exp Message-ID: <20110224073421.GA4397@host1.dyn.jankratochvil.net> References: <20110224051054.GA17373@host1.dyn.jankratochvil.net> <20110224072009.GA2495@adacore.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110224072009.GA2495@adacore.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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: 2011-02/txt/msg00680.txt.bz2 On Thu, 24 Feb 2011 08:20:09 +0100, Joel Brobecker wrote: > Just a thought: Do we really need to worry about restoring > the timeout at the end of the testcase, given that this is > automatically done at the start of each testcase (see gdb.exp: > gdb_init)? I see now: Re: [RFA/testsuite] Reset the timeout duration at the start of each testcase. http://sourceware.org/ml/gdb-patches/2010-02/msg00202.html commit 501c57da40fd27c8036a5fc995f750b0559272ad Patch updated. Thanks, Jan gdb/testsuite/ 2011-02-24 Jan Kratochvil * gdb.threads/gcore-thread.exp ($testfile): Match it the .exp filename. ($srcfile): Preserve the original value. ($testfile): Match it the .exp filename. ($corefile): New variable. Substitute it around. Use clean_restart. ($prev_timeout): Remove. (load_core): Move core loading into this proc. Fix restore of $timeout if load_core fails. --- a/gdb/testsuite/gdb.threads/gcore-thread.exp +++ b/gdb/testsuite/gdb.threads/gcore-thread.exp @@ -21,11 +21,11 @@ if $tracelevel then { strace $tracelevel } - # Single-threaded test case -set testfile "pthreads" -set srcfile ${testfile}.c -set binfile ${objdir}/${subdir}/gcore-${testfile} +set testfile "gcore-thread" +set srcfile pthreads.c +set binfile ${objdir}/${subdir}/${testfile} +set corefile ${objdir}/${subdir}/${testfile}.test if [istarget "*-*-linux"] then { set target_cflags "-D_MIT_POSIX_THREADS" @@ -41,10 +41,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab # Start with a fresh gdb. -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} +clean_restart ${testfile} # regexp for "horizontal" text (i.e. doesn't include newline or # carriage return) @@ -53,7 +50,6 @@ set horiz "\[^\n\r\]*" # regexp for newline set nl "\[\r\n\]+" -set prev_timeout $timeout set timeout 30 gdb_test_multiple "help gcore" "help gcore" { @@ -92,10 +88,9 @@ delete_breakpoints gdb_breakpoint "thread2" gdb_test "continue" "Continuing.*Breakpoint.* thread2 .*" "thread 2 is running" -set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test] +set escapedfilename [string_to_regexp $corefile] # Drop corefile -gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \ - "save a corefile" \ +gdb_test_multiple "gcore $corefile" "save a corefile" \ { -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" { pass "save a corefile" @@ -114,31 +109,38 @@ if {!$core_supported} { return -1 } + # Now restart gdb and load the corefile. -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} - -gdb_test_multiple "core ${objdir}/${subdir}/gcore.test" \ - "re-load generated corefile" { - -re ".* is not a core dump:.*$gdb_prompt $" { - fail "re-load generated corefile (bad file format)" - # No use proceeding from here. - return; - } - -re ".*: No such file or directory.*$gdb_prompt $" { - fail "re-load generated corefile (file not found)" - # No use proceeding from here. - return; - } - -re ".*Couldn't find .* registers in core file.*$gdb_prompt $" { - fail "re-load generated corefile (incomplete note section)" - } - -re "Core was generated by .*$gdb_prompt $" { - pass "re-load generated corefile" +clean_restart ${testfile} + +proc load_core { corefile } { + global gdb_prompt + + gdb_test_multiple "core $corefile" \ + "re-load generated corefile" { + -re " is not a core dump:.*\r\n$gdb_prompt $" { + fail "re-load generated corefile (bad file format)" + # No use proceeding from here. + return 0; + } + -re ": No such file or directory.*\r\n$gdb_prompt $" { + fail "re-load generated corefile (file not found)" + # No use proceeding from here. + return 0; + } + -re "Couldn't find .* registers in core file.*\r\n$gdb_prompt $" { + fail "re-load generated corefile (incomplete note section)" + } + -re "Core was generated by .*\r\n$gdb_prompt $" { + pass "re-load generated corefile" + } } - } + return 1 +} + +if ![load_core $corefile] { + return +} # FIXME: now what can we test about the thread state? # We do not know for certain that there should be at least @@ -158,5 +160,3 @@ gdb_test "info threads" ".* thread2 .*" \ gdb_test "info threads" ".*${nl}\\* ${horiz} thread2 .*" \ "thread2 is current thread in corefile" - -set timeout $prev_timeout