From cb5ab6c82c2bd6e565e2dae74a77ae0c59834e14 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 17 Sep 2012 19:51:25 +0000 Subject: [PATCH] Assemble all sources files in each test * ld-elf/shared.exp (build_cxx_tests): Move out the commented out test. * lib/ld-lib.exp (run_ld_link_exec_tests): Assemble all sources files in each test. --- ld/testsuite/ChangeLog | 8 +++ ld/testsuite/ld-elf/shared.exp | 8 +-- ld/testsuite/lib/ld-lib.exp | 97 +++++++++++++++++----------------- 3 files changed, 60 insertions(+), 53 deletions(-) diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 839da5b34c6..c969379bdbd 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2012-09-17 H.J. Lu + + * ld-elf/shared.exp (build_cxx_tests): Move out the commented out + test. + + * lib/ld-lib.exp (run_ld_link_exec_tests): Assemble all sources + files in each test. + 2012-09-12 Chris Schlumberger-Socha * ld-aarch64/aarch64-elf.exp: New reloc tests. diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index c00f3e588a1..c9f20560e8f 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -336,14 +336,14 @@ set build_cxx_tests { {del.cc new.cc} {} "libnew1b.so" "c++"} } -set run_cxx_tests { - {"Run with libdl3a.so" - "-Wl,--no-as-needed tmpdir/libdl3a.so" "" - {dl3main.cc} "dl3a" "dl3a.out" "" "c++"} # "-shared -Bsymbolic" only works with gcc 4.5.0 and newer. # {"Run with libdl3b.so" # "tmpdir/libdl3b.so" "" # {dl3main.cc} "dl3b" "dl3b.out" "" "c++"} +set run_cxx_tests { + {"Run with libdl3a.so" + "-Wl,--no-as-needed tmpdir/libdl3a.so" "" + {dl3main.cc} "dl3a" "dl3a.out" "" "c++"} {"Run with libdl3c.so" "-Wl,--no-as-needed tmpdir/libdl3c.so" "" {dl3main.cc} "dl3c" "dl3a.out" "" "c++"} diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index bb4cb0da500..49837dd4b17 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1244,7 +1244,6 @@ proc run_ld_link_exec_tests { targets_to_xfail ldtests } { # verbose -log "ld_options is $ld_options" # verbose -log "as_options is $as_options" # verbose -log "src_files is $src_files" -# verbose -log "actions is $actions" # verbose -log "binfile is $binfile" # Assemble each file in the test. @@ -1261,68 +1260,68 @@ proc run_ld_link_exec_tests { targets_to_xfail ldtests } { } else { ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/$src_file $objfile } + } - # We have to use $CC to build PIE and shared library. - if { [ string match "c" $lang ] } { - set link_proc ld_simple_link - set link_cmd $CC - } elseif { [ string match "c++" $lang ] } { - set link_proc ld_simple_link - set link_cmd $CXX - } elseif { [ string match "-shared" $ld_options ] \ - || [ string match "-pie" $ld_options ] } { - set link_proc ld_simple_link - set link_cmd $CC + # We have to use $CC to build PIE and shared library. + if { [ string match "c" $lang ] } { + set link_proc ld_simple_link + set link_cmd $CC + } elseif { [ string match "c++" $lang ] } { + set link_proc ld_simple_link + set link_cmd $CXX + } elseif { [ string match "-shared" $ld_options ] \ + || [ string match "-pie" $ld_options ] } { + set link_proc ld_simple_link + set link_cmd $CC + } else { + set link_proc ld_link + set link_cmd $ld + } + + if ![$link_proc $link_cmd $binfile "-L$srcdir/$subdir $ld_options $objfiles"] { + set failed 1 + } else { + set failed 0 + } + + # Check if exec_output is expected. + if { $warning != "" } then { + verbose -log "returned with: <$exec_output>, expected: <$warning>" + if { [regexp $warning $exec_output] } then { + set failed 0 } else { - set link_proc ld_link - set link_cmd $ld + set failed 1 } + } - if ![$link_proc $link_cmd $binfile "-L$srcdir/$subdir $ld_options $objfiles"] { + if { $failed == 0 } { + send_log "Running: $binfile > $binfile.out\n" + verbose "Running: $binfile > $binfile.out" + catch "exec $binfile > $binfile.out" exec_output + + if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 set failed 1 } else { - set failed 0 - } - - # Check if exec_output is expected. - if { $warning != "" } then { - verbose -log "returned with: <$exec_output>, expected: <$warning>" - if { [regexp $warning $exec_output] } then { - set failed 0 - } else { - set failed 1 - } - } - - if { $failed == 0 } { - send_log "Running: $binfile > $binfile.out\n" - verbose "Running: $binfile > $binfile.out" - catch "exec $binfile > $binfile.out" exec_output + send_log "diff $binfile.out $srcdir/$subdir/$expfile\n" + verbose "diff $binfile.out $srcdir/$subdir/$expfile" + catch "exec diff $binfile.out $srcdir/$subdir/$expfile" exec_output + set exec_output [prune_warnings $exec_output] if ![string match "" $exec_output] then { send_log "$exec_output\n" verbose "$exec_output" 1 set failed 1 - } else { - send_log "diff $binfile.out $srcdir/$subdir/$expfile\n" - verbose "diff $binfile.out $srcdir/$subdir/$expfile" - catch "exec diff $binfile.out $srcdir/$subdir/$expfile" exec_output - set exec_output [prune_warnings $exec_output] - - if ![string match "" $exec_output] then { - send_log "$exec_output\n" - verbose "$exec_output" 1 - set failed 1 - } } } + } - if { $failed != 0 } { - fail $testname - } else { - set errcnt 0 - pass $testname - } + if { $failed != 0 } { + fail $testname + } else { + set errcnt 0 + pass $testname } } }