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.

From-SVN: r81574
This commit is contained in:
Bryce McKinlay 2004-05-06 17:54:30 +00:00 committed by Bryce McKinlay
parent 8ae6595c0b
commit 579f964023
2 changed files with 29 additions and 3 deletions

View 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

View 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}]