diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2005-10-20 17:06:41 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2005-10-20 17:06:41 +0000 |
commit | 6a0d0afdc7ca5c7e0605ede799e994c98d596644 (patch) | |
tree | 37c5fb6482ec96854eb1cbdfb238065bfd34bb58 | |
parent | 45d5eb0a1b62989c8a01e80883d4c800897d4472 (diff) | |
download | gdb-6a0d0afdc7ca5c7e0605ede799e994c98d596644.zip gdb-6a0d0afdc7ca5c7e0605ede799e994c98d596644.tar.gz gdb-6a0d0afdc7ca5c7e0605ede799e994c98d596644.tar.bz2 |
binutils/testsuite/
2005-10-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/251
* binutils-all/group.s: New file.
* binutils-all/objcopy.exp (objcopy_test_readelf): New
procedure.
Use it to test ELF group.
ld/testsuite/
2005-10-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/251
* ld-elf/group.2d: New file.
-rw-r--r-- | binutils/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/group.s | 8 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/objcopy.exp | 47 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/group2.d | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/unknown.d | 7 |
6 files changed, 94 insertions, 2 deletions
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 5cf8bfa..648080c 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,6 +1,15 @@ +2005-10-20 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/251 + * binutils-all/group.s: New file. + + * binutils-all/objcopy.exp (objcopy_test_readelf): New + procedure. + Use it to test ELF group. + 2005-10-19 H.J. Lu <hongjiu.lu@intel.com> - PR binutils/1487 + PR ld/1487 * binutils-all/objcopy.exp (objcopy_test): New procedure. Use it to test simple copy, ia64 link order and ELF unknown section type. diff --git a/binutils/testsuite/binutils-all/group.s b/binutils/testsuite/binutils-all/group.s new file mode 100644 index 0000000..21aa4be --- /dev/null +++ b/binutils/testsuite/binutils-all/group.s @@ -0,0 +1,8 @@ + .section .text,"axG",%progbits,foo_group,comdat + .global foo +foo: + .word 0 + .section .data,"awG",%progbits,foo_group,comdat + .global bar +bar: + .word 0 diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index 87be689..23e537e 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -661,6 +661,52 @@ switch [copy_setup] { } } +proc objcopy_test_readelf {testname srcfile} { + global OBJCOPY + global OBJCOPYFLAGS + global READELF + global srcdir + global subdir + + if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o" + catch "exec $OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o" exec_output + if ![string match "" $exec_output] then { + fail "objcopy ($testname)" + return; + } + + verbose -log "$READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out" + catch "exec $READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out" exec_output + set exec_output [prune_warnings $exec_output] + if ![string match "" $exec_output] then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "$READELF -a tmpdir/copy.o > tmpdir/copy.o.out" + catch "exec $READELF -a tmpdir/copy.o > tmpdir/copy.o.out" exec_output + set exec_output [prune_warnings $exec_output] + if ![string match "" $exec_output] then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "diff tmpdir/bintest.o.out tmpdir/copy.o.out" + catch "exec diff tmpdir/bintest.o.out tmpdir/copy.o.out" exec_output + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + fail "objcopy ($testname)" + } +} + # ia64 specific tests if { ([istarget "ia64-*-elf*"] || [istarget "ia64-*-linux*"]) } { @@ -670,4 +716,5 @@ if { ([istarget "ia64-*-elf*"] # ELF specific tests if [is_elf_format] { objcopy_test "ELF unknown section type" unknown.s + objcopy_test_readelf "ELF group" group.s } diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5ba4799..33831ce 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,6 +1,11 @@ +2005-10-20 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/251 + * ld-elf/group.2d: New file. + 2005-10-19 H.J. Lu <hongjiu.lu@intel.com> - PR binutils/1487 + PR ld/1487 * ld-elf/unknown.d: New file. 2005-10-19 H.J. Lu <hongjiu.lu@intel.com> diff --git a/ld/testsuite/ld-elf/group2.d b/ld/testsuite/ld-elf/group2.d new file mode 100644 index 0000000..b4d0b81 --- /dev/null +++ b/ld/testsuite/ld-elf/group2.d @@ -0,0 +1,16 @@ +#source: ../../../binutils/testsuite/binutils-all/group.s +#ld: -r +#readelf: -Sg --wide + +#... + \[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.* +#... +COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/ld/testsuite/ld-elf/unknown.d b/ld/testsuite/ld-elf/unknown.d new file mode 100644 index 0000000..636e6c7 --- /dev/null +++ b/ld/testsuite/ld-elf/unknown.d @@ -0,0 +1,7 @@ +#source: ../../../binutils/testsuite/binutils-all/unknown.s +#ld: -r +#readelf: -S + +#... + \[[ 0-9]+\] \.foo[ \t]+NOTE[ \t]+.* +#pass |