mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-29 04:53:56 +08:00
* lib/gas-defs.exp (run_dump_test): Run objdump/nm/objcopy/readelf
with LC_ALL=C to ensure consistent sorting.
This commit is contained in:
parent
97230b1503
commit
139e4a7044
@ -1,3 +1,8 @@
|
||||
2002-07-03 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* lib/gas-defs.exp (run_dump_test): Run objdump/nm/objcopy/readelf
|
||||
with LC_ALL=C to ensure consistent sorting.
|
||||
|
||||
2002-06-18 Dave Brolley <brolley@redhat.com>
|
||||
|
||||
* gas/frv: New testsuite.
|
||||
|
@ -1,19 +1,19 @@
|
||||
# Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001 Free Software
|
||||
# Foundation, Inc.
|
||||
# Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 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.
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
# Please email any bugs, comments, and/or additions to this file to:
|
||||
# DejaGnu@cygnus.com
|
||||
@ -183,10 +183,10 @@ proc gas_init { args } {
|
||||
}
|
||||
|
||||
|
||||
# run_dump_test FILE
|
||||
# run_dump_test FILE
|
||||
#
|
||||
# Assemble a .s file, then run some utility on it and check the output.
|
||||
#
|
||||
#
|
||||
# There should be an assembly language file named FILE.s in the test
|
||||
# suite directory, and a pattern file called FILE.d. `run_dump_test'
|
||||
# will assemble FILE.s, run some tool like `objdump', `objcopy', or
|
||||
@ -198,9 +198,9 @@ proc gas_init { args } {
|
||||
# flags to pass to the assembler, the program to run to dump the
|
||||
# assembler's output, and the options it wants. The option lines have
|
||||
# the syntax:
|
||||
#
|
||||
#
|
||||
# # OPTION: VALUE
|
||||
#
|
||||
#
|
||||
# OPTION is the name of some option, like "name" or "objdump", and
|
||||
# VALUE is OPTION's value. The valid options are described below.
|
||||
# Whitespace is ignored everywhere, except within VALUE. The option
|
||||
@ -208,26 +208,28 @@ proc gas_init { args } {
|
||||
# (hmm, not great for error detection).
|
||||
#
|
||||
# The interesting options are:
|
||||
#
|
||||
#
|
||||
# name: TEST-NAME
|
||||
# The name of this test, passed to DejaGNU's `pass' and `fail'
|
||||
# commands. If omitted, this defaults to FILE, the root of the
|
||||
# .s and .d files' names.
|
||||
#
|
||||
#
|
||||
# as: FLAGS
|
||||
# When assembling FILE.s, pass FLAGS to the assembler.
|
||||
#
|
||||
#
|
||||
# PROG: PROGRAM-NAME
|
||||
# The name of the program to run to analyze the .o file produced
|
||||
# by the assembler. This can be omitted; run_dump_test will guess
|
||||
# which program to run by seeing which of the flags options below
|
||||
# is present.
|
||||
#
|
||||
#
|
||||
# objdump: FLAGS
|
||||
# nm: FLAGS
|
||||
# objcopy: FLAGS
|
||||
# Use the specified program to analyze the .o file, and pass it
|
||||
# FLAGS, in addition to the .o file name.
|
||||
# FLAGS, in addition to the .o file name. Note that they are run
|
||||
# with LC_ALL=C in the environment to give consistent sorting
|
||||
# of symbols.
|
||||
#
|
||||
# source: SOURCE
|
||||
# Assemble the file SOURCE.s. If omitted, this defaults to FILE.s.
|
||||
@ -250,6 +252,7 @@ proc run_dump_test { name } {
|
||||
global OBJDUMP NM AS OBJCOPY READELF
|
||||
global OBJDUMPFLAGS NMFLAGS ASFLAGS OBJCOPYFLAGS READELFFLAGS
|
||||
global host_triplet
|
||||
global env
|
||||
|
||||
if [string match "*/*" $name] {
|
||||
set file $name
|
||||
@ -401,24 +404,28 @@ proc run_dump_test { name } {
|
||||
|
||||
# Objcopy, unlike the other two, won't send its output to stdout,
|
||||
# so we have to run it specially.
|
||||
set cmd "$binary $progopts $progopts1 dump.o > dump.out"
|
||||
if { $program == "objcopy" } {
|
||||
send_log "$binary $progopts $progopts1 dump.o dump.out\n"
|
||||
catch "exec $binary $progopts $progopts1 dump.o dump.out" comp_output
|
||||
set comp_output [prune_warnings $comp_output]
|
||||
if ![string match "" $comp_output] then {
|
||||
send_log "$comp_output\n"
|
||||
fail $testname
|
||||
return
|
||||
}
|
||||
set cmd "$binary $progopts $progopts1 dump.o dump.out"
|
||||
}
|
||||
|
||||
# Ensure consistent sorting of symbols
|
||||
if {[info exists env(LC_ALL)]} {
|
||||
set old_lc_all $env(LC_ALL)
|
||||
}
|
||||
set env(LC_ALL) "C"
|
||||
send_log "$cmd\n"
|
||||
catch "exec $cmd" comp_output
|
||||
if {[info exists old_lc_all]} {
|
||||
set env(LC_ALL) $old_lc_all
|
||||
} else {
|
||||
send_log "$binary $progopts $progopts1 dump.o > dump.out\n"
|
||||
catch "exec $binary $progopts $progopts1 dump.o > dump.out" comp_output
|
||||
set comp_output [prune_warnings $comp_output]
|
||||
if ![string match "" $comp_output] then {
|
||||
send_log "$comp_output\n"
|
||||
fail $testname
|
||||
return
|
||||
}
|
||||
unset env(LC_ALL)
|
||||
}
|
||||
set comp_output [prune_warnings $comp_output]
|
||||
if ![string match "" $comp_output] then {
|
||||
send_log "$comp_output\n"
|
||||
fail $testname
|
||||
return
|
||||
}
|
||||
|
||||
verbose_eval {[file_contents "dump.out"]} 3
|
||||
@ -566,9 +573,9 @@ proc regexp_diff { file_1 file_2 } {
|
||||
}
|
||||
}
|
||||
|
||||
if { $diff_pass } {
|
||||
break
|
||||
} elseif { $end_1 && $end_2 } {
|
||||
if { $diff_pass } {
|
||||
break
|
||||
} elseif { $end_1 && $end_2 } {
|
||||
break
|
||||
} elseif { $end_1 } {
|
||||
send_log "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1\n"
|
||||
|
Loading…
Reference in New Issue
Block a user