diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 8dabbeb83a3..5b1edccbbe8 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2004-05-10 Andreas Tobler + + * testsuite/lib/libjava.exp (libjava_invoke): Add new argument + ld_library_additions. Adjust all calls to libjava_invoke to match + the new argument. + + * testsuite/libjava.jni/jni.exp (gcj_jni_test_one): Pass stdc++ + path to cxxflagslist. + Pass path of libstdc++ to libjava_invoke. + + * testsuite/libjava.jar/jar.exp (gcj_jar_inerpret): Adjust + libjava_invoke arguments. + 2004-05-10 Ranjit Mathew * testsuite/libjava.jacks/jacks.xfail: Update to reflect the current diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp index 31937c3a1e0..ad76f8b0412 100644 --- a/libjava/testsuite/lib/libjava.exp +++ b/libjava/testsuite/lib/libjava.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation +# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation load_lib "libgloss.exp" @@ -495,7 +495,21 @@ proc gcj_invoke {program expectFile ld_library_additions} { # Invoke a program and check its output. EXECUTABLE is the program; # ARGS are the arguments to the program. Returns 1 if tests passed # (or things were left untested), 0 otherwise. -proc libjava_invoke {errname testName optName executable inpfile resultfile args} { +proc libjava_invoke {errname testName optName executable inpfile resultfile + ld_library_additions args} { + global env + set lib_path $env(LD_LIBRARY_PATH) + + set newval . + if {[llength $ld_library_additions] > 0} { + append newval :[join $ld_library_additions :] + } + + append newval :$lib_path + + setenv LD_LIBRARY_PATH $newval + + verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)" upvar $optName opts if {[info exists opts(no-exec)]} { @@ -512,6 +526,10 @@ proc libjava_invoke {errname testName optName executable inpfile resultfile args set result [libjava_load $executable $args "$inpfile"] set status [lindex $result 0] set output [lindex $result 1] + + # Restore LD_LIBRARY_PATH setting. + setenv LD_LIBRARY_PATH $lib_path + if {[info exists opts(xfail-exec)]} then { setup_xfail *-*-* } @@ -658,7 +676,7 @@ proc test_libjava_from_source { options srcfile compile_args inpfile resultfile set opts(xfail-output) x } if {[libjava_invoke $errname "source compiled test" opts $executable \ - $inpfile $resultfile]} { + $inpfile $resultfile ""]} { # Everything ok, so clean up. eval gcj_cleanup $removeList } @@ -796,7 +814,7 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e # program; in this case we want to skip the test. if {$INTERPRETER == "yes" && $gij != "gij"} { libjava_invoke $errname "gij test" opts $gij \ - $inpfile $resultfile $main_name + $inpfile $resultfile "" $main_name } # Initial arguments. @@ -859,7 +877,7 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e set opts(xfail-output) x } if {[libjava_invoke $errname "bytecode->native test" opts $executable \ - $inpfile $resultfile]} { + $inpfile $resultfile ""]} { # Everything ok, so clean up. eval gcj_cleanup $removeList } diff --git a/libjava/testsuite/libjava.jar/jar.exp b/libjava/testsuite/libjava.jar/jar.exp index bff1fea2c8c..7f4c792c25d 100644 --- a/libjava/testsuite/libjava.jar/jar.exp +++ b/libjava/testsuite/libjava.jar/jar.exp @@ -31,7 +31,7 @@ proc gcj_jar_interpret {jarfile} { set opts(_) {} set out [file rootname $jarfile].out libjava_invoke $jarfile "gij test" opts $gij {} $out \ - -jar $jarfile + "" -jar $jarfile } proc gcj_jar_run {} { diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp index 5ca07abb07d..b1f6d4e34f4 100644 --- a/libjava/testsuite/libjava.jni/jni.exp +++ b/libjava/testsuite/libjava.jni/jni.exp @@ -126,6 +126,9 @@ proc gcj_jni_test_one {file} { } } lappend cxxflaglist $arg + # In case the libstdc++ is not installed yet, we pass the build + # directory of it to the cxxflaglist. + lappend cxxflaglist "-L$cxxldlibflags" } lappend cxxflaglist "-lstdc++" @@ -149,17 +152,19 @@ proc gcj_jni_test_one {file} { # FIXME return 0 } - + # We purposely ignore errors here; we still want to run the other # appropriate tests. set errname [file rootname [file tail $file]] set gij [libjava_find_gij] # libjava_find_gij will return `gij' if it couldn't find the # program; in this case we want to skip the test. - if {$INTERPRETER == "yes" && $gij != "gij"} { - libjava_invoke $errname "gij test" opts $gij \ - "" $resultfile $main - } + # If the libraries are not installed yet, we have to pass them via + # cxxldlibflags to libjava_invoke. + if {$INTERPRETER == "yes" && $gij != "gij"} { + libjava_invoke $errname "gij test" opts $gij \ + "" $resultfile $cxxldlibflags $main + } # When we succeed we remove all our clutter. eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main lib${main}.${so_extension}]