For PR libgcj/5103:

* libjava.jni/cxxtest.out: New file.
	* libjava.jni/cxxtest.cc: New file.
	* libjava.jni/cxxtest.java: New file.
	* libjava.jni/jni.exp (gcj_jni_test_one): If there is no .c file,
	assume there is a .cc file.

From-SVN: r48012
This commit is contained in:
Tom Tromey 2001-12-14 21:56:29 +00:00 committed by Tom Tromey
parent 27b2c32e31
commit 1808372b58
5 changed files with 67 additions and 1 deletions

View file

@ -1,3 +1,12 @@
2001-12-13 Tom Tromey <tromey@redhat.com>
For PR libgcj/5103:
* libjava.jni/cxxtest.out: New file.
* libjava.jni/cxxtest.cc: New file.
* libjava.jni/cxxtest.java: New file.
* libjava.jni/jni.exp (gcj_jni_test_one): If there is no .c file,
assume there is a .cc file.
2001-12-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* libjava.lang/PR3731.out: Adjust output to reflect that "instanceof"

View file

@ -0,0 +1,24 @@
#include <jni.h>
#include <cxxtest.h>
jobjectArray
Java_cxxtest_fetch (JNIEnv *env, jobject _this)
{
jclass cls;
jfieldID fid;
jobjectArray obj;
cls = env->GetObjectClass (_this);
if (! cls)
return 0;
fid = env->GetFieldID (cls, "F", "[Ljava/lang/Object;");
if (! fid)
return 0;
obj = reinterpret_cast<jobjectArray> (env->GetObjectField (_this, fid));
return obj;
}

View file

@ -0,0 +1,25 @@
// Test for array field lookup.
public class cxxtest
{
// A field for us to look up.
public Object[] F = new Object[7];
public native Object[] fetch ();
public void doit ()
{
System.out.println (F == fetch ());
}
public static void main (String[] args)
{
cxxtest q = new cxxtest ();
q.doit ();
}
static
{
System.loadLibrary ("cxxtest");
}
}

View file

@ -0,0 +1 @@
true

View file

@ -106,6 +106,13 @@ proc gcj_jni_test_one {file} {
}
set cfile [file rootname $file].c
set cxxflags ""
# If there is no `.c' file, assume there is a `.cc' file.
if {! [file exists $cfile]} {
set cfile [file rootname $file].cc
set cxxflags "-lstdc++"
}
if {! [gcj_jni_compile_c_to_so $cfile]} {
# FIXME
return 0
@ -113,7 +120,7 @@ proc gcj_jni_test_one {file} {
# We use -l$main because the .so is named the same as the main
# program.
set args [list "additional_flags=-fjni -L. -l$main"]
set args [list "additional_flags=-fjni -L. -l$main $cxxflags"]
if {! [gcj_link $main $main $file $args]} {
# FIXME
return 0