From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32040 invoked by alias); 13 Jun 2005 02:55:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 32008 invoked by uid 22791); 13 Jun 2005 02:55:53 -0000 Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 13 Jun 2005 02:55:53 +0000 Received: from drow by nevyn.them.org with local (Exim 4.50) id 1Dhf79-0006LU-7J; Sun, 12 Jun 2005 22:55:51 -0400 Date: Mon, 13 Jun 2005 02:55:00 -0000 From: Daniel Jacobowitz To: Wu Zhou Cc: gdb-patches@sources.redhat.com Subject: Re: [RFC]: Add test for verifying the fix to the SEGV error when printing F77 array element Message-ID: <20050613025551.GC9288@nevyn.them.org> Mail-Followup-To: Wu Zhou , gdb-patches@sources.redhat.com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i X-SW-Source: 2005-06/txt/msg00138.txt.bz2 On Fri, Jun 10, 2005 at 04:41:02PM +0800, Wu Zhou wrote: > Daniel and all, > > This is the testcase associated with the following patch: > > http://sources.redhat.com/ml/gdb-patches/2005-06/msg00090.html > > Without the patch above, the last three tests fail. With the patch, all > tests pass. It is tested on ppc64 with g77-3.3.3 and g77-3.4.3. > > It is my first attempt to add a new testcase into GDB testsuite. So if > there is any errors or missings, please feel free to tell me. Thanks a > lot! Thanks. It does need some changes, but not big ones. I'd appreciated it if you could provide new files as diffs. The normal way to do this is by diffing them against /dev/null, with the appropriate relative path to the new file. That way, I can save your message and apply it as a patch. Let's use hyphens instead of underscores in file names; there's already a lot of hyphenated test cases. So array-element.exp. > array_element.f > ====================================== We're trying to add copyright notices to all new tests; please add one here. > dimension a(10) > write(*,*)'This is a test.' > call sub(a,10) > write(*,*) a > stop > end > > subroutine sub(a,n) > dimension a(n) > do 100 i=1, n > a(i)=i > 100 continue > return > end > > array_element.exp > ===================================== > if $tracelevel then { > strace $tracelevel > } > > # > # test running programs > # > set prms_id 0 > set bug_id 0 This bit is not necessary. > set testfile "array_element" > set srcfile ${testfile}.f > set binfile ${objdir}/${subdir}/${testfile} > > if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77}] != "" } { > gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." > } Please don't use gdb_suppress_entire_file; use "untested" and then "return". See the Java tests for an example. You can see what will happen when no Fortran compiler is installed by running "runtest array-element.exp F77_FOR_TARGET=false"; compare with "runtest jprint.exp GCJ_UNDER_TEST=false". You can get the right result by also adding "quiet" to the last argument of gdb_compile, and using untested/return. > if [get_compiler_info ${binfile} "f77"] { > return -1 > } What's this needed for? Also, get_compiler_info does not take a second argument. > gdb_exit > gdb_start > gdb_reinitialize_dir $srcdir/$subdir > gdb_load ${binfile} > > if ![runto sub_] then { > perror "couldn't run to breakpoint" > continue > } > > set bp_location [gdb_get_line_number "continue"] > gdb_test "break $bp_location" \ > "Breakpoint.*at.* file .*$srcfile, line $bp_location\\." \ > "brealpoint at continue" Typo there. > gdb_test "continue" \ > "Continuing\\..*Breakpoint.*" \ > "continue to breakpoint" > gdb_test "print a(1)" "= 1.*" "print the first element of array a" > > gdb_test "continue" \ > "Continuing\\..*Breakpoint.*" \ > "continue to breakpoint once again" > gdb_test "print a(2)" "= 2.*" "print the first element of array a" > gdb_exit > return 0 This bit isn't actually necessary. -- Daniel Jacobowitz CodeSourcery, LLC