9 changed files with 587 additions and 0 deletions
@ -0,0 +1,10 @@ |
|||
Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com) |
|||
|
|||
* binutils/testsuite: Initial creation of binutils/testsuite. |
|||
Migrated dejagnu testcases and support files for testing nm to |
|||
binutils/testsuite from deja-gnu. These files were moved "as is" |
|||
with no modifications. This migration is part of a major overhaul |
|||
of dejagnu. The modifications to these testcases, etc., which |
|||
will allow them to work with the new version of dejagnu will be |
|||
made in a future update. |
|||
|
|||
@ -0,0 +1,61 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
|
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "Internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "Internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { clone_output "ERROR: internal buffer is full" } |
|||
"can't open 'nmtest'" { clone_output "ERROR: Can't open test file" } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,60 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
load_lib nm-defs.exp |
|||
# |
|||
# nm_version -- extract and print the version number of nm |
|||
# |
|||
proc nm_version {} { |
|||
default_nm_version |
|||
} |
|||
|
|||
# |
|||
# nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc nm_load { arg } { |
|||
default_nm_load $arg |
|||
} |
|||
|
|||
# |
|||
# nm_exit -- just a stub for nm |
|||
# |
|||
proc nm_exit {} { |
|||
default_nm_exit |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start NM running |
|||
# |
|||
proc nm_start { arg } { |
|||
default_nm_start $arg |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "internal buffer is full." } |
|||
"can't open 'nmtest'" { error "Can't open test file." } |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,156 @@ |
|||
# Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
# Please email any bugs, comments, and/or additions to this file to: |
|||
# DejaGnu@cygnus.com |
|||
|
|||
# This file was written by Rob Savoye. (rob@cygnus.com) |
|||
|
|||
# |
|||
# nm_test -- run nm and test the result. |
|||
# Takes four parameters. |
|||
# Parameters: |
|||
# First one is the command line arguments |
|||
# Second one is the file name |
|||
# Third one is the regexp style pattern to match for a PASS, |
|||
# Fourth one is an optional message to be printed. If this |
|||
# a null string "", then the pass/fail messages are not printed. |
|||
# Returns: |
|||
# 1 if the test failed, |
|||
# 0 if the test passes, |
|||
# -1 if there was an internal error. |
|||
# |
|||
proc nm_test { args } { |
|||
global verbose |
|||
global comp_output |
|||
global NM |
|||
global NMFLAGS |
|||
|
|||
# get the parameters |
|||
set cmd_arg [lindex $args 0] |
|||
set file [lindex $args 1] |
|||
set pattern [lindex $args 2] |
|||
|
|||
if [llength $args]==4 then { |
|||
set message [lindex $args 3] |
|||
} else { |
|||
set message "$arg option" |
|||
} |
|||
|
|||
if $verbose>2 then { |
|||
send_user "Looking to match \"$pattern\"\n" |
|||
send_user "Message is \"$message\"\n" |
|||
} |
|||
|
|||
if ![file exists $file] then { |
|||
error "$file doesn't exist" |
|||
return -1 |
|||
} |
|||
|
|||
# |
|||
# run nm and analyze the results |
|||
# |
|||
set nm_flags_orig $NMFLAGS |
|||
append NMFLAGS " $cmd_arg" |
|||
nm_start $file |
|||
|
|||
if [string match "" $comp_output] then { |
|||
fail "$message" |
|||
warning "Got no output." |
|||
set NMFLAGS $nm_flags_orig |
|||
return 1 |
|||
} |
|||
|
|||
if [regexp "$pattern" $comp_output] then { |
|||
pass "$message" |
|||
set NMFLAGS $nm_flags_orig |
|||
return 0 |
|||
} |
|||
|
|||
fail "$message" |
|||
set NMFLAGS $nm_flags_orig |
|||
return 1 |
|||
} |
|||
|
|||
# since nm is purely host based, all the init module use these |
|||
# same procedures |
|||
|
|||
# |
|||
# default_nm_version -- extract and print the version number of nm |
|||
# |
|||
proc default_nm_version {} { |
|||
global NM |
|||
set tmp [exec $NM +version] |
|||
regexp " \[0-9\.\]+" $tmp version |
|||
clone_output "[which $NM] version $version\n" |
|||
unset tmp |
|||
unset version |
|||
} |
|||
|
|||
# |
|||
# default_nm_load -- loads the program. For nm, we just execute it |
|||
# |
|||
proc default_nm_load { arg } { |
|||
global verbose |
|||
global exec_output |
|||
if ![file exists $args] then { |
|||
error $args does not exist" |
|||
return -1 |
|||
} |
|||
set status [catch "exec $arg" exec_output] |
|||
if $verbose>1 then { |
|||
send_user "Executed $arg\n" |
|||
} |
|||
return $status |
|||
} |
|||
|
|||
# |
|||
# default_nm_exit -- just a stub for nm |
|||
# |
|||
proc default_nm_exit {} { |
|||
} |
|||
|
|||
# |
|||
# nm_start -- start GDB running |
|||
# |
|||
proc default_nm_start { arg } { |
|||
global verbose |
|||
global NM |
|||
global NMFLAGS |
|||
global comp_output |
|||
|
|||
if $verbose>1 then { |
|||
send_user "Spawning \"$NM $NMFLAGS $arg\"\n" |
|||
} |
|||
catch "exec $NM $NMFLAGS $arg" comp_output |
|||
if ![string match "" $comp_output] then { |
|||
send_log "$comp_output\n" |
|||
if $verbose>3 then { |
|||
send_user "$comp_output\n" |
|||
} |
|||
} |
|||
} |
|||
|
|||
# |
|||
# add some basic error trapping. These mostly catch programming error's |
|||
# within the tests themselves |
|||
# |
|||
expect_before { |
|||
buffer_full { error "Internal buffer is full" } |
|||
"can't open 'nmtest'" { error "Can't open test file" } |
|||
} |
|||
|
|||
|
|||
Loading…
Reference in new issue