X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Felf%2Felf.exp;h=0d51aa01d5fa231bbcd57ee6103161b638cbd56c;hb=e821645dee843d03841ed5bcf046ffae265b535e;hp=a25a396eb16fb4cf9cd8f3cb482e776eeefa611c;hpb=1ff55c930c9b2ba3b955b684228a7b2dc05445cb;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index a25a396eb1..0d51aa01d5 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -2,16 +2,90 @@ # elf tests # +proc run_list_test { name suffix opts readelf_opts readelf_pipe } { + global READELF + global srcdir subdir + set testname "elf $name list" + set file $srcdir/$subdir/$name + gas_run ${name}.s "$opts -o dump.o" ">&dump.out" + if { ![string match "" $opts] + && [regexp_diff "dump.out" "${file}.l"] } then { + fail $testname + verbose "output is [file_contents "dump.out"]" 2 + return + } + send_log "$READELF $readelf_opts dump.o $readelf_pipe > dump.out\n" + catch "exec $READELF $readelf_opts dump.o $readelf_pipe > dump.out\n" comp_output + if ![string match "" $comp_output] then { + send_log "$comp_output\n" + fail $testname + return + } + verbose_eval {[file_contents "dump.out"]} 3 + if { [regexp_diff "dump.out" "${file}.e${suffix}"] } then { + fail $testname + verbose "output is [file_contents "dump.out"]" 2 + return + } + pass $testname +} + # We're testing bits in obj-elf -- don't run on anything else. -if { ([istarget "*-*-elf*"] +if { ([istarget "*-*-*elf*"] || [istarget "*-*-linux*"] + || [istarget "m6811-*"] + || [istarget "m6812-*"] || [istarget "sparc*-*-solaris*"] - || [istarget "mips*-*-irix6*"]) + || [istarget "mips*-*-irix6*"] + || [istarget "arm*-*-eabi"]) && ![istarget *-*-linux*aout*] && ![istarget *-*-linux*coff*] && ![istarget *-*-linux*oldld*] + && ![istarget sh64*-*-linux*] } then { + set target_machine "" + if {[istarget "mips*-*-*"]} then { + set target_machine -mips + } + if {[istarget m32r*-*-*]} then { + set target_machine -m32r + } + if {[istarget "score-*-*"]} then { + set target_machine -score + } + if { ([istarget "*arm*-*-*"] + || [istarget "xscale*-*-*"]) } { + + if { ([istarget "*-*-*eabi"] + || [istarget "*-*-symbianelf"])} then { + set target_machine -armeabi + } else { + set target_machine -armelf + } + } run_dump_test "ehopt0" + run_dump_test "group0a" + run_dump_test "group0b" + run_dump_test "group1a" + run_dump_test "group1b" + case $target_triplet in { + { alpha*-*-* } { } + { hppa*-*-* } { } + { iq2000*-*-* } { } + { mips*-*-* } { } + { *c54x*-*-* } { } + default { + run_dump_test redef + run_dump_test equ-reloc + } + } run_dump_test "section0" run_dump_test "section1" + run_list_test "section2" "$target_machine" "-al" "-s" "" + run_dump_test "section3" + run_dump_test "section4" + run_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\"" + run_dump_test "struct" + run_dump_test "symver" + run_list_test "type" "" "" "-s" "| grep \"1 \\\[FONT\\\]\"" }