diff options
author | Anthony Green <green@redhat.com> | 2002-11-04 01:31:12 +0000 |
---|---|---|
committer | Anthony Green <green@gcc.gnu.org> | 2002-11-04 01:31:12 +0000 |
commit | 55376e412851fb852f4b5c72d1da5e12aec0a459 (patch) | |
tree | 50932c23d528ff479cc42e794aaeb5732fb4f309 /libjava/testsuite | |
parent | c9fe6f9f39ac5003dd6642d3d708c6818e99223e (diff) | |
download | gcc-55376e412851fb852f4b5c72d1da5e12aec0a459.zip gcc-55376e412851fb852f4b5c72d1da5e12aec0a459.tar.gz gcc-55376e412851fb852f4b5c72d1da5e12aec0a459.tar.bz2 |
New files.
From-SVN: r58778
Diffstat (limited to 'libjava/testsuite')
-rw-r--r-- | libjava/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/MyLoader.java | 9 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/TestLeak.java | 33 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/TestLeak.out | 0 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/TestMultiple.java | 28 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/TestMultiple.out | 0 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/dummy.java | 6 | ||||
-rw-r--r-- | libjava/testsuite/libjava.loader/loader.exp | 64 |
8 files changed, 147 insertions, 0 deletions
diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog index fc5627b..da6ba43 100644 --- a/libjava/testsuite/ChangeLog +++ b/libjava/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2002-11-04 Anthony Green <green@redhat.com> + + * libjava.loader/dummy.java, libjava.loader/loader.exp, + libjava.loader/MyLoader.java, libjava.loader/TestLeak.java, + libjava.loader/TestLeak.out, libjava.loader/TestMultiple.java, + libjava.loader/TestMultiple.out: New files. + 2002-11-02 Tom Tromey <tromey@redhat.com> * libjava.lang/initexc.java (fail): Static initializers must be diff --git a/libjava/testsuite/libjava.loader/MyLoader.java b/libjava/testsuite/libjava.loader/MyLoader.java new file mode 100644 index 0000000..49156fc --- /dev/null +++ b/libjava/testsuite/libjava.loader/MyLoader.java @@ -0,0 +1,9 @@ +import java.net.*; + +public class MyLoader extends URLClassLoader +{ + public MyLoader (URL urls[]) + { + super (urls); + } +} diff --git a/libjava/testsuite/libjava.loader/TestLeak.java b/libjava/testsuite/libjava.loader/TestLeak.java new file mode 100644 index 0000000..9d467f2 --- /dev/null +++ b/libjava/testsuite/libjava.loader/TestLeak.java @@ -0,0 +1,33 @@ +import java.net.*; +import java.lang.reflect.*; + +public class TestLeak +{ + class MyLoader extends URLClassLoader + { + public MyLoader (URL urls[]) + { + super (urls); + } + } + + public static void main (String[] args) + { + URLClassLoader ucl = + (URLClassLoader) ClassLoader.getSystemClassLoader(); + URL urls[] = ucl.getURLs (); + Class ifaces[] = new Class[1]; + ifaces[0] = java.lang.Comparable.class; + + try { + for (int i = 0; i < 100; i++) + { + Proxy.getProxyClass (new MyLoader (urls), ifaces); + } + } catch (Exception e) { + e.printStackTrace (); + } + } +} + + diff --git a/libjava/testsuite/libjava.loader/TestLeak.out b/libjava/testsuite/libjava.loader/TestLeak.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/libjava/testsuite/libjava.loader/TestLeak.out diff --git a/libjava/testsuite/libjava.loader/TestMultiple.java b/libjava/testsuite/libjava.loader/TestMultiple.java new file mode 100644 index 0000000..1a56fc4 --- /dev/null +++ b/libjava/testsuite/libjava.loader/TestMultiple.java @@ -0,0 +1,28 @@ +import java.net.*; + +public class TestMultiple +{ + public static void main (String[] args) + { + URLClassLoader ucl = + (URLClassLoader) ClassLoader.getSystemClassLoader(); + URL urls[] = ucl.getURLs (); + + MyLoader t1 = new MyLoader (urls); + MyLoader t2 = new MyLoader (urls); + + Class c1, c2; + + try { + + c1 = t1.loadClass ("dummy"); + c2 = t2.loadClass ("dummy"); + + } + catch (Exception e) { + e.printStackTrace (); + } + } +} + + diff --git a/libjava/testsuite/libjava.loader/TestMultiple.out b/libjava/testsuite/libjava.loader/TestMultiple.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/libjava/testsuite/libjava.loader/TestMultiple.out diff --git a/libjava/testsuite/libjava.loader/dummy.java b/libjava/testsuite/libjava.loader/dummy.java new file mode 100644 index 0000000..67bb4a7 --- /dev/null +++ b/libjava/testsuite/libjava.loader/dummy.java @@ -0,0 +1,6 @@ +// A dummy class + +public class dummy +{ +} + diff --git a/libjava/testsuite/libjava.loader/loader.exp b/libjava/testsuite/libjava.loader/loader.exp new file mode 100644 index 0000000..6da7016 --- /dev/null +++ b/libjava/testsuite/libjava.loader/loader.exp @@ -0,0 +1,64 @@ +# Tests for ClassLoader and native library loader code. + +# Do all the work for a single JNI test. Return 0 on failure. +proc gcj_loader_test_one {srcfile} { + global objdir srcdir subdir + + set resfile $srcdir/$subdir/[file rootname [file tail $srcfile]].out + + regsub "^.*/(\[^/.\]+)\[.\]\[^/]*$" "$srcfile" "\\1" out + set executable "${objdir}/$out.exe" + + set errname [file rootname [file tail $srcfile]] + set args [libjava_arguments link] + lappend args "additional_flags=--main=[file rootname [file tail $srcfile]] $srcdir/$subdir/MyLoader.java $objdir/dummy.o" + set x [prune_warnings \ + [libjava_tcompile $srcfile "$executable" "$executable" $args]] + + if { $x != "" } { + verbose "target_compile failed: $x" 2 + + fail "$errname compilation from source" + untested "$errname execution from source compiled test" + return + } + pass "$errname compilation from source" + + libjava_invoke $executable $executable "" $executable "" $resfile "" + + return 1 +} + +# Run the bytecode loader tests. +proc gcj_loader_run {} { + global srcdir subdir objdir + global build_triplet host_triplet + global GCJ_UNDER_TEST + + set file "${srcdir}/${subdir}/dummy.java" + if {! [bytecompile_file $file [pwd]]} { + fail "bytecompile $file" + # FIXME - should use `untested' on all remaining tests. + # But that is hard. + return 0 + } + pass "bytecompile $file" + + set x [prune_warnings \ + [eval exec "$GCJ_UNDER_TEST --resource $objdir/dummy.class -c $objdir/dummy.class -o $objdir/dummy.o"]] + if { $x != "" } { + verbose "resource compilation failed: $x" 2 + + fail "resource compilation dummy.class" + return 0; + } + pass "resource compilation: dummy.class" + + catch { lsort [glob -nocomplain ${srcdir}/${subdir}/Test*.java] } srcfiles + + foreach x $srcfiles { + gcj_loader_test_one $x + } +} + +gcj_loader_run |