libjava.exp (libjava_invoke): Add new argument ld_library_additions.
authorAndreas Tobler <a.tobler@schweiz.ch>
Mon, 10 May 2004 20:44:13 +0000 (22:44 +0200)
committerAndreas Tobler <andreast@gcc.gnu.org>
Mon, 10 May 2004 20:44:13 +0000 (22:44 +0200)
2004-05-10  Andreas Tobler  <a.tobler@schweiz.ch>

* 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.

From-SVN: r81679

libjava/ChangeLog
libjava/testsuite/lib/libjava.exp
libjava/testsuite/libjava.jar/jar.exp
libjava/testsuite/libjava.jni/jni.exp

index 8dabbeb83a3c9577b3f9430bec6f69ef48f48758..5b1edccbbe853f5f0f358e89537239a4dd302d11 100644 (file)
@@ -1,3 +1,16 @@
+2004-05-10  Andreas Tobler  <a.tobler@schweiz.ch>
+
+       * 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  <rmathew@hotmail.com>
 
        * testsuite/libjava.jacks/jacks.xfail: Update to reflect the current
index 31937c3a1e07ddf752a1b9c35bdb893506f3ced5..ad76f8b0412eadbbca5de853115e8dccfc795369 100644 (file)
@@ -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
     }
index bff1fea2c8c9613adddc622ddb9026c32d2e1433..7f4c792c25d1f06622bbd8bda766211442fda539 100644 (file)
@@ -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 {} {
index 5ca07abb07d38aae807fbcf3ac1fc7e0594e71b8..b1f6d4e34f46e8b01c32d9378f528dbb90e03149 100644 (file)
@@ -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}]