Run the jni tests using the interpreter.
authorBryce McKinlay <mckinlay@redhat.com>
Thu, 6 May 2004 17:54:30 +0000 (17:54 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Thu, 6 May 2004 17:54:30 +0000 (18:54 +0100)
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Append
options_cxx to shared lib compile command.
(gcj_jni_test_one): Pass cxxflags to gcj_jni_compile_c_to_so, so
they are used to link the shared lib, not the main binary.
Use libjava_invoke to run gij.

From-SVN: r81574

libjava/ChangeLog
libjava/testsuite/libjava.jni/jni.exp

index e6512ac92e6e10638ff4de2e61da0e4a2f8aeddb..e286911f3abc964b36355bb0908ea65d600eec3e 100644 (file)
@@ -1,3 +1,12 @@
+2004-05-06  Bryce McKinlay  <mckinlay@redhat.com>
+
+       Run the jni tests using the interpreter.
+       * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Append
+       options_cxx to shared lib compile command.
+       (gcj_jni_test_one): Pass cxxflags to gcj_jni_compile_c_to_so, so
+       they are used to link the shared lib, not the main binary.
+       Use libjava_invoke to run gij.
+
 2004-05-06  Michael Koch  <konqueror@gmx.de>
 
        * java/util/logging/Level.java
index a4bf4b80ee1abfbbed14f398724f8caffff5a2de..3c9f3e48a6add14f968b255695248ffac056d854 100644 (file)
@@ -39,6 +39,9 @@ proc gcj_jni_compile_c_to_so {file {options {}}} {
   # Find jni.h.
   lappend options "additional_flags=-I$srcdir/../include"
 
+  # Append C++ options
+  lappend options "additional_flags=$options_cxx"
+
   set x [libjava_prune_warnings \
           [target_compile $file $soname executable $options]]
   if {$x != ""} {
@@ -71,6 +74,7 @@ proc gcj_jni_build_header {file} {
 proc gcj_jni_test_one {file} {
   global runtests
   global host_triplet
+  global INTERPRETER
 
 # apple uses a different extension for shared/dynamic libraries
 # so we check against powerpc-apple-darwin and set them to 
@@ -128,23 +132,36 @@ proc gcj_jni_test_one {file} {
     set cxxflags [join $cxxflaglist]
   }
 
-  if {! [gcj_jni_compile_c_to_so $cfile]} {
+  if {! [gcj_jni_compile_c_to_so $cfile $cxxflags]} {
     # FIXME
     return 0
   }
 
   # We use -l$main because the .so is named the same as the main
   # program.
-  set args [list "additional_flags=-fjni -L. -l$main $cxxflags"]
+  set args [list "additional_flags=-fjni -L. -l$main"]
   if {! [gcj_link $main $main $file $args]} {
     # FIXME
     return 0
   }
 
-  if {! [gcj_invoke $main [file rootname $file].out $cxxldlibflags]} {
+  set resultfile [file rootname $file].out
+
+  if {! [gcj_invoke $main $resultfile $cxxldlibflags]} {
     # 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
+  }  
 
   # When we succeed we remove all our clutter.
   eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main lib${main}.${so_extension}]