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:
parent
27b2c32e31
commit
1808372b58
5 changed files with 67 additions and 1 deletions
|
@ -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"
|
||||
|
|
24
libjava/testsuite/libjava.jni/cxxtest.cc
Normal file
24
libjava/testsuite/libjava.jni/cxxtest.cc
Normal 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;
|
||||
}
|
||||
|
||||
|
25
libjava/testsuite/libjava.jni/cxxtest.java
Normal file
25
libjava/testsuite/libjava.jni/cxxtest.java
Normal 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");
|
||||
}
|
||||
}
|
1
libjava/testsuite/libjava.jni/cxxtest.out
Normal file
1
libjava/testsuite/libjava.jni/cxxtest.out
Normal file
|
@ -0,0 +1 @@
|
|||
true
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue