From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30445 invoked by alias); 5 Apr 2002 01:03:49 -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 30434 invoked from network); 5 Apr 2002 01:03:47 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 5 Apr 2002 01:03:47 -0000 Received: from redhat.com (rtl.cygnus.com [205.180.230.21]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id RAA18224; Thu, 4 Apr 2002 17:03:45 -0800 (PST) Message-ID: <3CACF75A.D673AF66@redhat.com> Date: Thu, 04 Apr 2002 17:03:00 -0000 From: Fernando Nasser Organization: Red Hat Canada X-Accept-Language: en MIME-Version: 1.0 To: Daniel Jacobowitz CC: gdb-patches@sources.redhat.com Subject: Re: [RFA/testsuite] Add a test for add-symbol-file References: <20020404163818.A1712@nevyn.them.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-04/txt/msg00145.txt.bz2 Daniel Jacobowitz wrote: > > add-symbol-file isn't covered anywhere in the testsuite, except for usage > messages (default.exp, help.exp) and in gdb.hp. This adds some new tests > for it - one of which actually fails on PowerPC right now. Patch coming in > a second. > > Does this look OK? > OK with me. And new tests are always welcome. Thanks. Fernando > -- > Daniel Jacobowitz Carnegie Mellon University > MontaVista Software Debian GNU/Linux Developer > > 2002-04-04 Daniel Jacobowitz > > * gdb.base/relocate.exp: New file. > * gdb.base/relocate.c: New file. > > --- /dev/null Wed Dec 31 19:00:00 1969 > +++ relocate.c Thu Apr 4 16:27:13 2002 > @@ -0,0 +1,17 @@ > +static int static_foo = 1; > +static int static_bar = 2; > + > +int global_foo = 3; > +int global_bar = 4; > + > +int > +function_foo () > +{ > + return 5; > +} > + > +int > +function_bar () > +{ > + return 6; > +} > --- /dev/null Wed Dec 31 19:00:00 1969 > +++ relocate.exp Thu Apr 4 16:32:06 2002 > @@ -0,0 +1,108 @@ > +# Copyright 2002 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write to the Free Software > +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ > + > +# Please email any bugs, comments, and/or additions to this file to: > +# bug-gdb@prep.ai.mit.edu > + > +# relocate.exp -- Expect script to test loading symbols from unrelocated > +# object files. > + > +if $tracelevel then { > + strace $tracelevel > +} > + > +set testfile relocate > +set srcfile ${srcdir}/${subdir}/${testfile}.c > +set binfile ${objdir}/${subdir}/${testfile}.o > + > +remote_exec build "rm -f ${binfile}" > +if { [gdb_compile "${srcfile}" "${binfile}" object {debug}] != "" } { > + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." > +} > + > +proc get_var_address { var } { > + global gdb_prompt hex > + > + send_gdb "print &${var}\n" > + # Match output like: > + # $1 = (int *) 0x0 > + # $5 = (int (*)()) 0 > + # $6 = (int (*)()) 0x24 > + gdb_expect { > + -re "\\\$\[0-9\]+ = \\(.*\\) (0|$hex)( <${var}>)?\[\r\n\]+${gdb_prompt} $" > + { > + pass "get address of ${var}" > + if { $expect_out(1,string) == "0" } { > + return "0x0" > + } else { > + return $expect_out(1,string) > + } > + } > + -re "${gdb_prompt} $" > + { fail "get address of ${var} (unknown output)" } > + timeout > + { fail "get address of ${var} (timeout)" } > + } > + return "" > +} > + > + > + > +gdb_exit > +gdb_start > +gdb_reinitialize_dir $srcdir/$subdir > + > +# Load the object file. > +gdb_test "add-symbol-file ${binfile} 0" \ > + "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\." \ > + "add-symbol-file ${testfile}.o 0" \ > + "add symbol table from file \".*${testfile}\\.o\" at\[ \t\r\n\]+\.text_addr = 0x0\[\r\n\]+\\(y or n\\) " \ > + "y" > + > +# Print the addresses of static variables. > +set static_foo_addr [get_var_address static_foo] > +set static_bar_addr [get_var_address static_bar] > + > +# Make sure they have different addresses. > +if { "${static_foo_addr}" == "${static_bar_addr}" } { > + fail "static variables have different addresses" > +} else { > + pass "static variables have different addresses" > +} > + > +# Print the addresses of global variables. > +set global_foo_addr [get_var_address global_foo] > +set global_bar_addr [get_var_address global_bar] > + > +# Make sure they have different addresses. > +if { "${global_foo_addr}" == "${global_bar_addr}" } { > + fail "global variables have different addresses" > +} else { > + pass "global variables have different addresses" > +} > + > +# Print the addresses of functions. > +set function_foo_addr [get_var_address function_foo] > +set function_bar_addr [get_var_address function_bar] > + > +# Make sure they have different addresses. > +if { "${function_foo_addr}" == "${function_bar_addr}" } { > + fail "functions have different addresses" > +} else { > + pass "functions have different addresses" > +} > + > +return 0 -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9