binutils/testsuite/

2005-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/1487
	* binutils-all/objcopy.exp (objcopy_test): New procedure.
	Use it to test simple copy, ia64 link order and ELF unknown
	section type.

	* binutils-all/unknown.s: New file.

ld/testsuite/

2005-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/1487
	* ld-elf/unknown.d: New file.
This commit is contained in:
H.J. Lu 2005-10-19 20:49:03 +00:00
parent 290248614c
commit 64bb95af3d
4 changed files with 86 additions and 84 deletions

View file

@ -1,3 +1,12 @@
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1487
* binutils-all/objcopy.exp (objcopy_test): New procedure.
Use it to test simple copy, ia64 link order and ELF unknown
section type.
* binutils-all/unknown.s: New file.
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1321

View file

@ -30,12 +30,6 @@ if ![is_remote host] {
send_user "Version [binutil_version $OBJCOPY]"
if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
perror "unresolved 1"
unresolved "objcopy (simple copy)"
return
}
if ![is_remote host] {
set tempfile tmpdir/bintest.o
set copyfile tmpdir/copy
@ -46,10 +40,24 @@ if ![is_remote host] {
# Test that objcopy does not modify a file when copying it.
proc objcopy_test {testname srcfile} {
global OBJCOPY
global OBJCOPYFLAGS
global srcdir
global subdir
global tempfile
global copyfile
if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then {
perror "unresolved $testname"
unresolved "objcopy ($testname)"
return
}
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
if ![string match "" $got] then {
fail "objcopy (simple copy)"
fail "objcopy ($testname)"
} else {
send_log "cmp $tempfile ${copyfile}.o\n"
verbose "cmp $tempfile ${copyfile}.o"
@ -67,9 +75,9 @@ if ![string match "" $got] then {
set exec_output [prune_warnings $exec_output]
# On some systems the result of objcopy will not be identical.
# Usually this is just because gas isn't using bfd to write the files
# in the first place, and may order things a little differently.
# Those systems should use setup_xfail here.
# Usually this is just because gas isn't using bfd to write the
# files in the first place, and may order things a little
# differently. Those systems should use setup_xfail here.
setup_xfail "h8300-*-rtems*" "h8300-*-coff"
setup_xfail "h8500-*-rtems*" "h8500-*-coff"
@ -83,10 +91,11 @@ if ![string match "" $got] then {
setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*"
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" "m68*-*-sysv4*"
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
clear_xfail "m68*-*-sysv4*"
if [string match "" $exec_output] then {
pass "objcopy (simple copy)"
pass "objcopy ($testname)"
} else {
send_log "$exec_output\n"
verbose "$exec_output" 1
@ -97,9 +106,12 @@ if ![string match "" $got] then {
# This fails for COFF i960-vxworks targets.
setup_xfail "i960-*-vxworks*"
fail "objcopy (simple copy)"
fail "objcopy ($testname)"
}
}
}
objcopy_test "simple copy" bintest.s
# Test generating S records.
@ -652,38 +664,10 @@ switch [copy_setup] {
# ia64 specific tests
if { ([istarget "ia64-*-elf*"]
|| [istarget "ia64-*-linux*"]) } {
if {![binutils_assemble $srcdir/$subdir/link-order.s tmpdir/bintest.o]} then {
perror "unresolved ia64 link order."
unresolved "objcopy (ia64 link order)"
} else {
# Test that objcopy does not modify a file with link order bit
# when copying it.
objcopy_test "ia64 link order" link-order.s
}
set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
if ![string match "" $got] then {
fail "objcopy (ia64 link order)"
} else {
send_log "cmp $tempfile ${copyfile}.o\n"
verbose "cmp $tempfile ${copyfile}.o"
if [is_remote host] {
set src1 tmpdir/bintest.o
set src2 tmpdir/copy.o
remote_upload host $tempfile $src1
remote_upload host ${copyfile}.o $src2
} else {
set src1 ${tempfile}
set src2 ${copyfile}.o
}
set status [remote_exec build cmp "${src1} ${src2}"]
set exec_output [lindex $status 1]
set exec_output [prune_warnings $exec_output]
if [string match "" $exec_output] then {
pass "objcopy (ia64 link order)"
} else {
fail "objcopy (ia64 link order)"
}
}
}
# ELF specific tests
if [is_elf_format] {
objcopy_test "ELF unknown section type" unknown.s
}

View file

@ -0,0 +1,4 @@
.section .foo,"a","note"
.global _start
_start:
.long 0

View file

@ -1,3 +1,8 @@
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1487
* ld-elf/unknown.d: New file.
2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
* ld-ia64/ia64.exp: Check link order for ld -r.