summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/testsuite/java.lang
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/testsuite/java.lang')
-rw-r--r--libjava/classpath/testsuite/java.lang/ArrayTest.java100
-rw-r--r--libjava/classpath/testsuite/java.lang/BooleanTest.java177
-rw-r--r--libjava/classpath/testsuite/java.lang/ByteTest.java380
-rw-r--r--libjava/classpath/testsuite/java.lang/CastTest.java170
-rw-r--r--libjava/classpath/testsuite/java.lang/ClassForNameTest.java25
-rw-r--r--libjava/classpath/testsuite/java.lang/ExceptionTest.java21
-rw-r--r--libjava/classpath/testsuite/java.lang/FloatingDecimalTest.java19
-rw-r--r--libjava/classpath/testsuite/java.lang/IsInstanceTest.java32
-rw-r--r--libjava/classpath/testsuite/java.lang/JoinTest.java77
-rw-r--r--libjava/classpath/testsuite/java.lang/LongFieldTest.java12
-rw-r--r--libjava/classpath/testsuite/java.lang/NewInstanceTest.java24
-rw-r--r--libjava/classpath/testsuite/java.lang/NullcastTest.java20
-rw-r--r--libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java64
-rw-r--r--libjava/classpath/testsuite/java.lang/StringTest.java24
-rw-r--r--libjava/classpath/testsuite/java.lang/SyncronizedTest.java59
-rw-r--r--libjava/classpath/testsuite/java.lang/TestCasts.java477
-rw-r--r--libjava/classpath/testsuite/java.lang/ThreadTest.java48
-rw-r--r--libjava/classpath/testsuite/java.lang/execute.exp7
18 files changed, 1736 insertions, 0 deletions
diff --git a/libjava/classpath/testsuite/java.lang/ArrayTest.java b/libjava/classpath/testsuite/java.lang/ArrayTest.java
new file mode 100644
index 00000000000..36eaff4064f
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/ArrayTest.java
@@ -0,0 +1,100 @@
+
+public class ArrayTest {
+ public static void main (String args[])
+ {
+ BooleanArrayInit();
+ ByteArrayInit();
+ CharArrayInit();
+ ShortArrayInit();
+ IntArrayInit();
+ ArrayName(args);
+ }
+ public static void BooleanArrayInit()
+ {
+ try {
+ boolean val = true;
+ boolean [] x = { true };
+ if (x[0] == val)
+ passed("BooleanArrayInit() boolean[] x = {"+val+"}");
+ else
+ failed("BooleanArrayInit() boolean[] x = {"+val+"}");
+ } catch (Exception e) {
+ failed("BooleanArrayInit() "+e);
+ }
+ }
+ public static void ByteArrayInit()
+ {
+ try {
+ byte val = 42;
+ byte [] x = { 42 };
+ if (x[0] == val)
+ passed("ByteArrayInit() byte[] x = {"+val+"}");
+ else
+ failed("ByteArrayInit() byte[] x = {"+val+"}");
+ } catch (Exception e) {
+ failed("ByteArrayInit() "+e);
+ }
+ }
+ public static void CharArrayInit()
+ {
+ try {
+ char val = 'X';
+ char [] x = { 'X' };
+ if (x[0] == val)
+ passed("CharArrayInit() char[] x = {'"+val+"'}");
+ else
+ failed("CharArrayInit() char[] x = {'"+val+"'}");
+ } catch (Exception e) {
+ failed("CharArrayInit() "+e);
+ }
+ }
+ public static void ShortArrayInit()
+ {
+ try {
+ short val = 42;
+ short [] x = { 42 };
+ if (x[0] == val)
+ passed("ShortArrayInit() short[] x = {"+val+"}");
+ else
+ failed("ShortArrayInit() short[] x = {"+val+"}");
+ } catch (Exception e) {
+ failed("ShortArrayInit() "+e);
+ }
+ }
+ public static void IntArrayInit()
+ {
+ try {
+ int val = 42;
+ int [] x = { 42 };
+ if (x[0] == val)
+ passed("IntArrayInit() int[] x = {"+val+"}");
+ else
+ failed("IntArrayInit() int[] x = {"+val+"}");
+ } catch (Exception e) {
+ failed("IntArrayInit() "+e);
+ }
+ }
+ public static void failed(String s)
+ {
+ if (s != null)
+ System.out.println("FAILED: " + s);
+ else
+ System.out.println("FAILED: ");
+ }
+ public static void passed(String s)
+ {
+ if (s != null)
+ System.out.println("PASSED: " + s);
+ else
+ System.out.println("PASSED: ");
+ }
+ public static void ArrayName(String args[])
+ {
+ try {
+ String name = args.getClass().getName();
+ passed("ArrayName() name="+name);
+ } catch (Exception e) {
+ failed("ArrayName() "+e);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/BooleanTest.java b/libjava/classpath/testsuite/java.lang/BooleanTest.java
new file mode 100644
index 00000000000..caee011bf44
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/BooleanTest.java
@@ -0,0 +1,177 @@
+/**
+ * Test the Boolean object wrapper class.
+ *
+ * @author Brian Jones (brian.jones@oryxsoft.com)
+ */
+public class BooleanTest
+{
+ Boolean j;
+ String x;
+
+ public static void main (String[] argv)
+ {
+ BooleanTest test = new BooleanTest();
+
+ test.constructorsTest();
+ test.booleanValueTest();
+ test.equalsTest();
+ test.getBooleanTest();
+ test.hashCodeTest();
+ test.toStringTest();
+ test.valueOfTest();
+ test.variablesTest();
+ }
+
+ public void constructorsTest()
+ {
+ j = new Boolean(true); // is true
+ if (j.booleanValue() != true)
+ failed("Boolean(true)");
+ else
+ passed("Boolean(true)");
+
+ j = new Boolean(false); // is false
+ if (j.booleanValue() != false)
+ failed("Boolean(false)");
+ else
+ passed("Boolean(false)");
+
+ j = new Boolean("tRuE"); // is true
+ if (j.booleanValue() != true)
+ failed("Boolean(\"tRuE\")");
+ else
+ passed("Boolean(String)");
+
+ j = new Boolean("brian"); // is false
+ if (j.booleanValue() != false)
+ failed("Boolean(\"brian\")");
+ else
+ passed("Boolean(String)");
+
+ j = new Boolean(null); // is false
+ if (j.booleanValue() != false)
+ failed("Boolean(null)");
+ else
+ passed("Boolean(String)");
+ }
+
+ public void booleanValueTest()
+ {
+ if (Boolean.TRUE.booleanValue() != true)
+ failed("Boolean.booleanValue()");
+ else
+ passed("Boolean.booleanValue()");
+ }
+
+ public void equalsTest()
+ {
+ j = new Boolean("false");
+ if (j.equals(Boolean.FALSE) != true)
+ failed("Boolean.equals(Object)");
+ else
+ passed("Boolean.equals(Object)");
+ }
+
+ public void getBooleanTest()
+ {
+ if (Boolean.getBoolean("BIG_DAWG_TEST"))
+ failed("Boolean.getBoolean(String)");
+ else
+ passed("Boolean.getBoolean(String)");
+ }
+
+ public void hashCodeTest()
+ {
+ j = new Boolean(null); // is false
+ boolean caught = false;
+ try
+ {
+ int i = j.hashCode();
+ }
+ catch (Exception e)
+ {
+ caught = true;
+ failed("Boolean.hashCode()");
+ }
+ if (!caught)
+ passed("Boolean.hashCode()");
+ }
+
+ public void toStringTest()
+ {
+ j = Boolean.TRUE;
+ String x = j.toString();
+ if (x.equals("true") != true)
+ failed("j.toString() where j is Boolean.TRUE");
+ else
+ passed("Boolean.toString()");
+
+ j = Boolean.FALSE;
+ x = j.toString();
+ if (x.equals("false") != true)
+ failed("j.toString() where j is Boolean.FALSE");
+ else
+ passed("Boolean.toString()");
+ }
+
+ public void valueOfTest()
+ {
+ j = Boolean.valueOf("tRUe"); // true
+ if (j.booleanValue() != true)
+ failed("Boolean.valueOf(String)");
+ else
+ passed("Boolean.valueOf(String)");
+
+ j = Boolean.valueOf(null); // false
+ if (j.booleanValue() != false)
+ failed("Boolean.valueOf(null)");
+ else
+ passed("Boolean.valueOf(null)");
+
+ j = Boolean.valueOf("lc"); // false
+ if (j.booleanValue() != false)
+ failed("Boolean.valueOf(String)");
+ else
+ passed("Boolean.valueOf(String)");
+ }
+
+ public void variablesTest()
+ {
+ if (Boolean.TRUE.booleanValue() != true)
+ failed("Boolean.TRUE");
+ else
+ passed("Boolean.TRUE");
+
+ if (Boolean.FALSE.booleanValue() != false)
+ failed("Boolean.FALSE");
+ else
+ passed("Boolean.FALSE");
+
+ x = Boolean.TYPE.getName();
+ if (x.equals("boolean") != true)
+ failed("Boolean.TYPE.getName() is " + x + " != boolean");
+ else
+ passed("Boolean.TYPE.getName() is boolean");
+ }
+
+ public void failed(String s)
+ {
+ if (s != null)
+ System.out.println("FAILED: " + s);
+ else
+ System.out.println("FAILED: ");
+ }
+
+ public void passed(String s)
+ {
+ if (s != null)
+ System.out.println("PASSED: " + s);
+ else
+ System.out.println("PASSED: ");
+ }
+}
+
+
+
+
+
diff --git a/libjava/classpath/testsuite/java.lang/ByteTest.java b/libjava/classpath/testsuite/java.lang/ByteTest.java
new file mode 100644
index 00000000000..ef1b1937de5
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/ByteTest.java
@@ -0,0 +1,380 @@
+import gnu.test.*;
+
+/**
+ * Test the Byte object wrapper class.
+ *
+ * @author Brian Jones (cbj@gnu.org)
+ */
+public class ByteTest
+{
+ public static class constructorTest1 implements Test
+ {
+ byte b = 1;
+
+ public String getName() {
+ return "Byte(byte)";
+ }
+
+ public Result test() {
+ try {
+ Byte byteObject = new Byte(b);
+ } catch (Exception e) {
+ return new Fail(e.getMessage());
+ } catch (Error err) {
+ return new Fail(err.getMessage());
+ }
+ return new Pass();
+ }
+ }
+
+ public static class constructorTest2 implements Test
+ {
+ Byte byteObject = null;
+
+ public String getName() {
+ return "Byte(String)";
+ }
+
+ public Result test() {
+ try {
+ byteObject = new Byte("1");
+ } catch (Exception e) {
+ return new Fail(e.getMessage());
+ } catch (Error err) {
+ return new Fail(err.getMessage());
+ }
+ return new Pass();
+ }
+ }
+
+ public static class byteValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.byteValue()";
+ }
+
+ public Result test() {
+ byte b = 1;
+ Byte byteObject = new Byte(b);
+ if (byteObject.byteValue() == b)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class decodeTest implements Test
+ {
+ public String getName() {
+ return "Byte.decode(String)";
+ }
+
+ public Result test() {
+ Byte obj = Byte.decode("1");
+ if (obj.byteValue() == 1)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class doubleValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.doubleValue()";
+ }
+
+ public Result test() {
+ byte b = 4;
+ double d = b;
+ Byte obj = new Byte(b);
+ if (obj.doubleValue() == d)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class equalsTest1 implements Test
+ {
+ public String getName() {
+ return "Byte.equals(Object)";
+ }
+
+ public Result test() {
+ Byte obj1 = null, obj2 = null;
+ obj1 = new Byte((byte)1);
+ obj2 = new Byte((byte)2);
+ if (obj1.equals(obj2))
+ return new Fail("1 != 2");
+ else
+ return new Pass("1 != 2");
+ }
+ }
+
+ public static class equalsTest2 implements Test
+ {
+ public String getName() {
+ return "Byte.equals(Object)";
+ }
+
+ public Result test() {
+ Byte obj1 = null, obj2 = null;
+ obj1 = new Byte((byte)1);
+ obj2 = new Byte((byte)2);
+ obj2 = obj1;
+ if (obj1.equals(obj2))
+ return new Pass("1 == 1");
+ else
+ return new Fail("1 == 1");
+ }
+ }
+
+ public static class floatValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.floatValue()";
+ }
+
+ public Result test() {
+ byte b = 4;
+ float f = b;
+ Byte obj = new Byte(b);
+ if (obj.floatValue() == f)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class hashCodeTest implements Test
+ {
+ public String getName() {
+ return "Byte.hashCode()";
+ }
+
+ public Result test() {
+ boolean caught = false;
+ Byte obj = new Byte((byte)1);
+ int i = obj.hashCode();
+ if (i == 1)
+ return new Pass();
+ else
+ return new Fail("hash is " + i + ". It should be 1.");
+ }
+ }
+
+ public static class intValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.intValue()";
+ }
+
+ public Result test() {
+ byte b = 4;
+ int i = b;
+ Byte obj = new Byte(b);
+ if (obj.intValue() == i)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class longValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.longValue()";
+ }
+
+ public Result test() {
+ byte b = 4;
+ long l = b;
+ Byte obj = new Byte(b);
+ if (obj.longValue() == l)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class parseByteTest1 implements Test
+ {
+ public String getName() {
+ return "Byte.parseByte(String)";
+ }
+
+ public Result test() {
+ byte b = Byte.parseByte("1");
+ if (b == (byte)1)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class parseByteTest2 implements Test
+ {
+ public String getName() {
+ return "Byte.parseByte(String, int)";
+ }
+
+ public Result test() {
+ byte b = Byte.parseByte("-4", 10);
+ if (b == (byte)-4)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class shortValueTest implements Test
+ {
+ public String getName() {
+ return "Byte.shortValue()";
+ }
+
+ public Result test() {
+ byte b = 4;
+ short s = b;
+ Byte obj = new Byte(b);
+ if (obj.shortValue() == s)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class toStringTest1 implements Test
+ {
+ public String getName() {
+ return "Byte.toString()";
+ }
+
+ public Result test() {
+ Byte obj = new Byte((byte)-2);
+ String x = obj.toString();
+ if (x.equals("-2"))
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class toStringTest2 implements Test
+ {
+ public String getName() {
+ return "Byte.toString(byte)";
+ }
+
+ public Result test() {
+ String x = Byte.toString((byte)-2);
+ if (x.equals("-2"))
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class valueOfTest1 implements Test
+ {
+ public String getName() {
+ return "Byte.valueOf(String, int)";
+ }
+
+ public Result test() {
+ Byte obj1 = Byte.valueOf("2",10);
+ Byte obj2 = new Byte((byte)2);
+ if (obj1.intValue() == obj2.intValue())
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class valueOfTest2 implements Test
+ {
+ public String getName() {
+ return "Byte.valueOf(String)";
+ }
+
+ public Result test() {
+ Byte obj1 = Byte.valueOf("2");
+ if (obj1.intValue() == 2)
+ return new Pass();
+ else
+ return new Fail();
+ }
+ }
+
+ public static class variablesTest1 implements Test
+ {
+ public String getName() {
+ return "Byte.MIN_VALUE";
+ }
+
+ public Result test() {
+ byte min = Byte.MIN_VALUE;
+ byte max = Byte.MAX_VALUE;
+
+ if (min == (byte)-128)
+ return new Pass("Byte.MIN_VALUE is -128");
+ else
+ return new Fail("Byte.MIN_VALUE is " + min + " != -128");
+ }
+ }
+
+ public static class variablesTest2 implements Test
+ {
+ public String getName() {
+ return "Byte.MAX_VALUE";
+ }
+
+ public Result test() {
+ byte min = Byte.MIN_VALUE;
+ byte max = Byte.MAX_VALUE;
+
+ if (max == (byte)127)
+ return new Pass("Byte.MAX_VALUE is 127");
+ else
+ return new Fail("Byte.MAX_VALUE is " + max + " != 127");
+ }
+ }
+
+ public static class variablesTest3 implements Test
+ {
+ public String getName() {
+ return "Byte.TYPE.getName()";
+ }
+
+ public Result test() {
+ String x = Byte.TYPE.getName();
+ if (x.equals("byte") != true)
+ return new Fail("Byte.TYPE.getName() is " + x + " != byte");
+ else
+ return new Pass("Byte.TYPE.getName() is byte");
+ }
+ }
+
+ public static class typeInstance implements Test
+ {
+ public String getName() {
+ return "Byte.TYPE.newInstance()";
+ }
+
+ public Result test() {
+ try {
+ Object b = Byte.TYPE.newInstance();
+ return new Fail("Byte.TYPE.newInstance succeeded.");
+ }
+ catch (InstantiationException e) {
+ return new Pass("Byte.TYPE.newInstance failed with exception '" +
+ e.toString() + "'");
+ }
+ catch (Exception ex) {
+ return new Fail("Byte.TYPE.newInstance threw incorrect exception '"
+ + ex.toString() + "'");
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/CastTest.java b/libjava/classpath/testsuite/java.lang/CastTest.java
new file mode 100644
index 00000000000..c33f1c294c2
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/CastTest.java
@@ -0,0 +1,170 @@
+public class CastTest
+{
+ public static void main(String args[])
+ {
+ d2d();
+ l2d2l();
+ d2l2d();
+ f2d2f();
+ d2f2d();
+ i2f2i();
+ l2f2l();
+ f2l2f();
+ }
+
+ static void d2d()
+ {
+ String msg = "double -> double ";
+
+ try {
+ double dvalue1 = 4.2;
+ double dvalue2 = (double)dvalue1;
+ if (dvalue1 != dvalue2)
+ failed(msg + dvalue1 + " != " + dvalue2);
+ else
+ passed(msg + dvalue1 + " == " + dvalue2);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+
+ static void l2f2l()
+ {
+ String msg = "long -> float -> long ";
+
+ try {
+ long lvalue = 123;
+ float fvalue = (float)lvalue;
+ long lvalue2 = (long)fvalue;
+ if (lvalue != lvalue2)
+ failed(msg + lvalue + " != " + lvalue2 + " (float)" + fvalue);
+ else
+ passed(msg + lvalue + " == " + lvalue2 + " (float)" + fvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void i2f2i()
+ {
+ String msg = "int -> float -> int ";
+
+ try {
+ int ivalue = 123;
+ float fvalue = (float)ivalue;
+ int ivalue2 = (int)fvalue;
+ if (ivalue != ivalue2)
+ failed(msg + ivalue + " != " + ivalue2 + " (float)" + fvalue);
+ else
+ passed(msg + ivalue + " == " + ivalue2 + " (float)" + fvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void f2d2f()
+ {
+ String msg = "float -> double -> float ";
+
+ try {
+ float fvalue = 123.0f;
+ double dvalue = (double)fvalue;
+ float fvalue2 = (float)dvalue;
+
+ if (fvalue != fvalue2)
+ failed(msg + fvalue + " != " + fvalue2 + " (double)" + dvalue);
+ else
+ passed(msg + fvalue + " == " + fvalue2 + " (double)" + dvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void f2l2f()
+ {
+ String msg = "float -> long -> float ";
+
+ try {
+ float fvalue = 123.0f;
+ long lvalue = (long)fvalue;
+ float fvalue2 = (float)lvalue;
+
+ if (fvalue != fvalue2)
+ failed(msg + fvalue + " != " + fvalue2 + " (long)" + lvalue);
+ else
+ passed(msg + fvalue + " == " + fvalue2 + " (long)" + lvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void d2f2d()
+ {
+ String msg = "double -> float -> double ";
+
+ try {
+ double dvalue = 123.0;
+ float fvalue = (float)dvalue;
+ double dvalue2 = (double)fvalue;
+ if (dvalue != dvalue2)
+ failed(msg + dvalue + " != " + dvalue2 + " (float)" + fvalue);
+ else
+ passed(msg + dvalue + " == " + dvalue2 + " (float)" + fvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void l2d2l()
+ {
+ String msg = "long -> double -> long ";
+
+ try {
+ long lvalue = 1023;
+ double dvalue = (double)lvalue;
+ long lvalue2 = (long)dvalue;
+
+ if (lvalue != lvalue2)
+ failed(msg + lvalue + " != " + lvalue2 + " (double)" + dvalue);
+ else
+ passed(msg + lvalue + " == " + lvalue2 + " (double)" + dvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void d2l2d()
+ {
+ String msg = "double -> long -> double ";
+
+ try {
+ double dvalue = 123.0;
+ long lvalue = (long)dvalue;
+ double dvalue2 = (double)lvalue;
+ if (dvalue != dvalue2)
+ failed(msg + dvalue + " != " + dvalue2 + " (long)" + lvalue);
+ else
+ passed(msg + dvalue + " == " + dvalue2 + " (long)" + lvalue);
+ }
+ catch (Exception e)
+ {
+ failed(msg + " : exception " + e.toString());
+ }
+ }
+ static void passed(String msg)
+ {
+ System.out.println("PASSED: "+msg);
+ }
+ static void failed(String msg)
+ {
+ System.out.println("FAILED: "+msg);
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/ClassForNameTest.java b/libjava/classpath/testsuite/java.lang/ClassForNameTest.java
new file mode 100644
index 00000000000..c69df932870
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/ClassForNameTest.java
@@ -0,0 +1,25 @@
+public class ClassForNameTest
+{
+ public static void main(String args[]) {
+ Class c;
+ /* test for both success and failure */
+
+ try {
+ c = Class.forName("ClassForNameTest");
+ }
+ catch (Exception e) {
+ System.out.println("FAILED: Couldn't find ClassForNameTest.");
+ System.exit(0);
+ }
+
+ try {
+ c = Class.forName("ClazzForNameT3st");
+ }
+ catch (Exception e) {
+ System.out.println("PASSED: passed both success and failure cases for Class.forName");
+ System.exit(0);
+ }
+
+ System.out.println("FAILED: Didn't raise exception for incorrect class name.");
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/ExceptionTest.java b/libjava/classpath/testsuite/java.lang/ExceptionTest.java
new file mode 100644
index 00000000000..7a464db43f1
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/ExceptionTest.java
@@ -0,0 +1,21 @@
+public class ExceptionTest
+{
+ static int foo() throws ArrayIndexOutOfBoundsException {
+ int f[] = new int[10];
+
+ return f[26];
+ }
+
+ public static void main (String args[]) {
+ int f;
+
+ try {
+ f = foo();
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ System.out.println("PASSED: " + e.toString());
+ } catch (Exception e) {
+ System.out.println("FAILED: " + e.toString());
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/FloatingDecimalTest.java b/libjava/classpath/testsuite/java.lang/FloatingDecimalTest.java
new file mode 100644
index 00000000000..f49ef7b88e3
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/FloatingDecimalTest.java
@@ -0,0 +1,19 @@
+public class FloatingDecimalTest
+{
+ public static void main(String args[]) {
+/*
+ try {
+*/
+ double d = 1.0;
+ String result;
+ result = "Double is " +d + " and kicking";
+ System.out.println("PASSED: "+result);
+/*
+ }
+ catch (Exception e)
+ {
+ System.out.println("FAILED: exception " + e.toString());
+ }
+*/
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/IsInstanceTest.java b/libjava/classpath/testsuite/java.lang/IsInstanceTest.java
new file mode 100644
index 00000000000..f5a828a2366
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/IsInstanceTest.java
@@ -0,0 +1,32 @@
+class IsInstanceTest extends Thread implements Cloneable
+{
+ static void main(String args[])
+ {
+ IsInstanceTest test = new IsInstanceTest();
+
+ if (test instanceof java.lang.Object)
+ pass("IsInstanceTest is instance of java.lang.Object");
+ else
+ fail("IsInstanceTest is not instance of java.lang.Object");
+
+ if (test instanceof java.lang.Cloneable)
+ pass("IsInstanceTest is instance of java.lang.Cloneable");
+ else
+ fail("IsInstanceTest is not instance of java.lang.Cloneable");
+
+ if (test instanceof java.lang.Runnable)
+ pass("IsInstanceTest is instance of java.lang.Runnable");
+ else
+ fail("IsInstanceTest is not instance of java.lang.Runnable");
+
+
+ }
+ static void pass(String message)
+ {
+ System.out.println("PASSED: "+message);
+ }
+ static void fail(String message)
+ {
+ System.out.println("FAILED: "+message);
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/JoinTest.java b/libjava/classpath/testsuite/java.lang/JoinTest.java
new file mode 100644
index 00000000000..5d5d62d208b
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/JoinTest.java
@@ -0,0 +1,77 @@
+public class JoinTest
+ implements Runnable
+{
+ public static int count = 0;
+
+ void send()
+ throws Exception
+ {
+ Thread.sleep(2000);
+ System.out.println("PASSED: Sender completed");
+ }
+ void receive()
+ throws Exception
+ {
+ synchronized(this) {
+ notifyAll();
+ }
+
+ Thread.sleep(5000);
+ count++;
+ System.out.println("PASSED: Receiver completed");
+ }
+
+ public void run()
+ {
+ String name = Thread.currentThread().getName();
+ if (name.equals("timer")) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e){}
+ System.out.println("FAILED: timer triggered");
+ System.exit(1);
+ }
+ try {
+ receive();
+ } catch (Exception e) {
+ System.out.println("FAILED: receiver: " + e);
+ System.exit(1);
+ }
+ }
+ public static void main(String args[])
+ {
+ try {
+ JoinTest sender =
+ new JoinTest();
+ JoinTest receiver =
+ new JoinTest();
+ Thread receiver_thread = new Thread(receiver);
+
+ /* Make sure the test terminates even if it hangs on network */
+ JoinTest timer = new JoinTest();
+ Thread timer_thread = new Thread(timer, "timer");
+ timer_thread.start();
+
+ synchronized(receiver) {
+ receiver_thread.start();
+ receiver.wait();
+ }
+ try {
+ sender.send();
+ } catch (Exception e) {
+ System.out.println("FAILED: sender: " + e);
+ System.exit(1);
+ }
+ receiver_thread.join();
+
+ if (0 == count)
+ throw new Exception("Nothing received");
+
+ System.out.println("PASSED: Join send/receive count="+count);
+ System.exit(0);
+ } catch (Exception e) {
+ System.out.println("FAILED: " + e);
+ System.exit(1);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/LongFieldTest.java b/libjava/classpath/testsuite/java.lang/LongFieldTest.java
new file mode 100644
index 00000000000..dc5be61518c
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/LongFieldTest.java
@@ -0,0 +1,12 @@
+public class LongFieldTest
+{
+ static long field;
+
+ public static void main(String args[])
+ {
+ field = 1L;
+
+ if (field == 1)
+ System.out.println("PASSED: field = " + field);
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/NewInstanceTest.java b/libjava/classpath/testsuite/java.lang/NewInstanceTest.java
new file mode 100644
index 00000000000..845bb42cc69
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/NewInstanceTest.java
@@ -0,0 +1,24 @@
+public class NewInstanceTest
+{
+ public NewInstanceTest() {
+ static_field = 1;
+ }
+
+ public static void main(String args[]) {
+ try {
+ Class cls = Class.forName("NewInstanceTest");
+ Object instance = cls.newInstance();
+
+ if (static_field == 1)
+ System.out.println("PASSED: static_field = " + static_field);
+ else
+ System.out.println("FAILED: static_field = " + static_field);
+ }
+ catch (Exception e)
+ {
+ System.out.println("FAILED: exception " + e.toString());
+ }
+ }
+
+ public static int static_field;
+}
diff --git a/libjava/classpath/testsuite/java.lang/NullcastTest.java b/libjava/classpath/testsuite/java.lang/NullcastTest.java
new file mode 100644
index 00000000000..75588d6fbdd
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/NullcastTest.java
@@ -0,0 +1,20 @@
+import java.lang.*;
+
+public class NullcastTest
+{
+ static String retString(String str1, String str2)
+ {
+ return str1;
+ }
+ public static void main (String args[]) {
+ try {
+
+ String tmp = retString((String) null, (String)null);
+
+ System.out.println("PASSED: (String)null");
+ System.exit(0);
+ } catch (Exception e) {
+ System.out.println("FAILED: "+e);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java b/libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java
new file mode 100644
index 00000000000..2dd6b15800f
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java
@@ -0,0 +1,64 @@
+import java.util.Vector;
+
+/**
+ * Under JavaSoft's VM they arbitarily limit the amount of memory
+ * a Java application can use (though this can be overridden). The
+ * point here is to check to see whether or not an application being
+ * run by Japhar will ever get the OutOfMemoryError or not when resources
+ * are scarce. --brian
+ */
+public class OutOfMemoryErrorTest
+{
+ public static void main(String[] argv)
+ {
+ Vector v = null;
+ Runtime r = null;
+ long free = 0, total = 0;
+ // quickly approach memory limit 1M at a time
+ try {
+ r = Runtime.getRuntime();
+ v = new Vector();
+ while(true)
+ {
+ v.addElement(new byte[1048576]);
+ }
+ }
+ // out of memory error
+ catch (OutOfMemoryError oomerr1)
+ {
+ // slowly encroach on memory limit 2 bytes+ at a time
+ try {
+ while(true)
+ {
+ v.addElement(new byte[2]);
+ }
+ }
+ // out of memory error
+ catch (OutOfMemoryError oomerr2)
+ {
+ if (r != null)
+ {
+ free = r.freeMemory();
+ total = r.totalMemory();
+ v = null;
+ r.gc();
+// System.out.println("free = " + free);
+// System.out.println("total = " + total);
+ System.out.println("PASSED: ");
+ }
+ else
+ System.out.println("FAILED: runtime unknown");
+ }
+ }
+ // generic error
+ catch (Error err)
+ {
+ System.out.println("FAILED: unexpected error");
+ }
+ // generic exception
+ catch (Exception e)
+ {
+ System.out.println("FAILED: unexpected exception");
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/StringTest.java b/libjava/classpath/testsuite/java.lang/StringTest.java
new file mode 100644
index 00000000000..cd9d83d5572
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/StringTest.java
@@ -0,0 +1,24 @@
+/*
+ * Aaron M. Renn reported a bug in Japhar having string length 17 for
+ * this string
+ */
+
+public class StringTest
+{
+ public static void
+ main(String[] argv)
+ {
+ UnicodeStringLength();
+ }
+ static void UnicodeStringLength()
+ {
+ String str = "a-->\u01FF\uA000\u6666\u0200RRR";
+ int len = str.length();
+ if (11 == len) {
+ System.out.println("PASSED: " + str + " has len=" +str.length());
+ } else {
+ System.out.println("FAILED: " + str +
+ " has len=" +str.length() + " != 11");
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/SyncronizedTest.java b/libjava/classpath/testsuite/java.lang/SyncronizedTest.java
new file mode 100644
index 00000000000..61115efaaca
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/SyncronizedTest.java
@@ -0,0 +1,59 @@
+public class SyncronizedTest
+ implements Runnable
+{
+ public static int count = 0;
+ String _name;
+
+ public SyncronizedTest(String name)
+ {
+ _name = name;
+ }
+
+ public void run()
+ {
+ if (_name.equals("timer")) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e){}
+ System.out.println("FAILED: timer triggered");
+ System.exit(1);
+ }
+ try {
+ count++;
+
+ synchronized(this) {
+ notifyAll();
+ }
+ } catch (Exception e) {
+ System.out.println("FAILED: receiver: " + e);
+ System.exit(1);
+ }
+ }
+ public static void main(String args[])
+ {
+ try {
+ SyncronizedTest tester = new SyncronizedTest("tester");
+ Thread tester_thread = new Thread(tester);
+
+ SyncronizedTest timer = new SyncronizedTest("timer");
+ Thread timer_thread = new Thread(timer);
+ timer_thread.start();
+
+ synchronized(tester) {
+ tester_thread.start();
+ tester.wait();
+ }
+
+ if (0 == count)
+ throw new Exception("Thread did not run.");
+
+ tester_thread.join();
+
+ System.out.println("PASSED: count="+count);
+ System.exit(0);
+ } catch (Exception e) {
+ System.out.println("FAILED: " + e);
+ System.exit(1);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/TestCasts.java b/libjava/classpath/testsuite/java.lang/TestCasts.java
new file mode 100644
index 00000000000..4ee0abf783a
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/TestCasts.java
@@ -0,0 +1,477 @@
+/* Written by Artur Biesiadowski <abies@pg.gda.pl> */
+
+/*
+ This class test basic 4 conversion types and compares results to ready ones, done
+ on sure VM (suns JDK). Conversions are
+ (obj instanceof clazz)
+ (clazz)obj
+ clazz.isInstance(obj)
+ clazz1.isAssignableFrom(clazz2);
+
+ Hopefully all needed cases are covered. If you want to add object just put it
+ into objs table. If you want to add class, you need to add it to both cls and to
+ testCode method. Of course you need to regenerate results after that.
+ */
+
+
+/*
+ You can copy/modify/use this file for any purposes, as long as you do not delete
+ my name from top of that file. Of course you can add your own below that :)
+ */
+
+
+import java.io.*;
+
+interface I1 {}
+interface I2 {}
+interface I3 extends I2{}
+class A1 implements I1 {}
+class AB12 extends A1 implements I2 {}
+class ABC12 extends AB12 {}
+class D3 implements I3 {}
+
+public class TestCasts
+{
+
+ public Object objs[] =
+ {
+ null,
+ new Object(),
+ new A1(),
+ new AB12(),
+ new ABC12(),
+ new D3(),
+ new A1[1],
+ new AB12[1],
+ new ABC12[1],
+ new D3[1],
+ new I1[1],
+ new I2[1],
+ new I3[1],
+ new int[1],
+ new A1[1][1],
+ new AB12[1][1],
+ new I1[1][1]
+ };
+
+ public Class cls[] =
+ {
+ Object.class,
+ A1.class,
+ AB12.class,
+ ABC12.class,
+ D3.class,
+ I1.class,
+ I2.class,
+ I3.class,
+ Cloneable.class,
+ Serializable.class,
+ A1[].class,
+ AB12[].class,
+ ABC12[].class,
+ D3[].class,
+ I1[].class,
+ I2[].class,
+ I3[].class,
+ int[].class,
+ A1[][].class,
+ AB12[][].class,
+ I1[][].class
+ };
+
+ java.util.Vector results = new java.util.Vector(1000);
+ boolean verbose = false;
+ boolean generate = false;
+ String filename = "TestCasts-results.txt";
+
+ public static void main(String argv[] )
+ {
+ TestCasts tc = new TestCasts();
+ if ( argv.length > 0 )
+ {
+ int i;
+ for ( i =0; i < argv.length;i++ )
+ {
+ if ( argv[i].equals("-g") )
+ {
+ tc.generate = true;
+ }
+ else if ( argv[i].equals("-v") )
+ {
+ tc.verbose = true;
+ }
+ else if ( argv[i].equals("-f") )
+ {
+ i++;
+ if ( i > argv.length )
+ {
+ System.out.println("You need to specify filename after -f");
+ System.exit(1);
+ }
+ tc.filename = argv[i];
+ }
+ else
+ {
+ System.out.println( "Options are: -v -g -f file");
+ System.out.println( "[-v] verbose ");
+ System.out.println( "[-g] generate result table");
+ System.out.println( "[-f file] read/write tests from/to file (default "+tc.filename+")");
+ System.exit(1);
+ }
+ }
+ }
+
+
+ tc.test();
+ //System.out.println(tc.results);
+ System.out.println( "Performed " + tc.counter + " tests");
+ if ( tc.generate )
+ System.out.println( "True: " + tc.genTrue + "\tfalse: " + tc.genFalse);
+ else
+ {
+ System.out.println( "Passed: " + tc.passed + "\tfailed: " + tc.failed);
+ if (tc.failed == 0 )
+ System.out.println("PASSED: all cast tests");
+ }
+ }
+
+
+ public final void test()
+ {
+ if (!generate)
+ readResultsFromFile();
+
+ int i;
+ int j;
+ for ( i=0; i < objs.length; i++ )
+ {
+ for ( j=0; j < cls.length; j++ )
+ {
+ reportClIsInst(objs[i], cls[j], cls[j].isInstance(objs[i]) );
+ }
+ }
+
+ for (i=0; i < objs.length; i++ )
+ {
+ testCode(objs[i]);
+ }
+
+ for ( i=0; i < cls.length; i++ )
+ {
+ for ( j=0; j < cls.length; j++ )
+ {
+ reportClIsAssign(cls[i], cls[j], cls[i].isAssignableFrom(cls[j]));
+ }
+ }
+
+ if ( generate )
+ writeResultsToFile();
+ }
+
+
+ public final void testCode(Object o)
+ {
+
+ reportInstanceof(o, Object.class, (o instanceof Object) );
+ try
+ {
+ Object r1 = (Object) o;
+ reportCast(o, Object.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,Object.class, false );
+ }
+
+ reportInstanceof(o, A1.class, (o instanceof A1) );
+ try
+ {
+ A1 r1 = (A1) o;
+ reportCast(o, A1.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,A1.class, false );
+ }
+ reportInstanceof(o, AB12.class, (o instanceof AB12) );
+ try
+ {
+ AB12 r1 = (AB12) o;
+ reportCast(o, AB12.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,AB12.class, false );
+ }
+ reportInstanceof(o, ABC12.class, (o instanceof ABC12) );
+ try
+ {
+ ABC12 r1 = (ABC12) o;
+ reportCast(o, ABC12.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,ABC12.class, false );
+ }
+ reportInstanceof(o, D3.class, (o instanceof D3) );
+ try
+ {
+ D3 r1 = (D3) o;
+ reportCast(o, D3.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,D3.class, false );
+ }
+ reportInstanceof(o, I1.class, (o instanceof I1) );
+ try
+ {
+ I1 r1 = (I1) o;
+ reportCast(o, I1.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I1.class, false );
+ }
+ reportInstanceof(o, I2.class, (o instanceof I2) );
+ try
+ {
+ I2 r1 = (I2) o;
+ reportCast(o, I2.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I2.class, false );
+ }
+ reportInstanceof(o, I3.class, (o instanceof I3) );
+ try
+ {
+ I3 r1 = (I3) o;
+ reportCast(o, I3.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I3.class, false );
+ }
+ reportInstanceof(o, Cloneable.class, (o instanceof Cloneable) );
+ try
+ {
+ Cloneable r1 = (Cloneable) o;
+ reportCast(o, Cloneable.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,Cloneable.class, false );
+ }
+
+ reportInstanceof(o, Serializable.class, (o instanceof Serializable) );
+ try
+ {
+ Serializable r1 = (Serializable) o;
+ reportCast(o, Serializable.class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,Serializable.class, false );
+ }
+ reportInstanceof(o, A1[].class, (o instanceof A1[]) );
+ try
+ {
+ A1[] r1 = (A1[]) o;
+ reportCast(o, A1[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,A1[].class, false );
+ }
+
+ reportInstanceof(o, AB12[].class, (o instanceof AB12[]) );
+ try
+ {
+ AB12[] r1 = (AB12[]) o;
+ reportCast(o, AB12[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,AB12[].class, false );
+ }
+ reportInstanceof(o, ABC12[].class, (o instanceof ABC12[]) );
+ try
+ {
+ ABC12[] r1 = (ABC12[]) o;
+ reportCast(o, ABC12[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,ABC12[].class, false );
+ }
+ reportInstanceof(o, D3[].class, (o instanceof D3[]) );
+ try
+ {
+ D3[] r1 = (D3[]) o;
+ reportCast(o, D3[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,D3[].class, false );
+ }
+ reportInstanceof(o, I1[].class, (o instanceof I1[]) );
+ try
+ {
+ I1[] r1 = (I1[]) o;
+ reportCast(o, I1[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I1[].class, false );
+ }
+ reportInstanceof(o, I2[].class, (o instanceof I2[]) );
+ try
+ {
+ I2[] r1 = (I2[]) o;
+ reportCast(o, I2[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I2[].class, false );
+ }
+
+ reportInstanceof(o, I3[].class, (o instanceof I3[]) );
+ try
+ {
+ I3[] r1 = (I3[]) o;
+ reportCast(o, I3[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I3[].class, false );
+ }
+
+ reportInstanceof(o, int[].class, (o instanceof int[]) );
+ try
+ {
+ int[] r1 = (int[]) o;
+ reportCast(o, int[].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,int[].class, false );
+ }
+
+ reportInstanceof(o, A1[][].class, (o instanceof A1[][]) );
+ try
+ {
+ A1[][] r1 = (A1[][]) o;
+ reportCast(o, A1[][].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,A1[][].class, false );
+ }
+ reportInstanceof(o, AB12[][].class, (o instanceof AB12[][]) );
+ try
+ {
+ AB12[][] r1 = (AB12[][]) o;
+ reportCast(o, AB12[][].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,AB12[][].class, false );
+ }
+ reportInstanceof(o, I1[][].class, (o instanceof I1[][]) );
+ try
+ {
+ I1[][] r1 = (I1[][]) o;
+ reportCast(o, I1[][].class, true );
+ } catch (ClassCastException e) {
+ reportCast(o,I1[][].class, false );
+ }
+
+ }
+
+ int counter = 0;
+ int passed = 0;
+ int failed = 0;
+ int genTrue = 0;
+ int genFalse =0;
+
+ public final boolean result(boolean b )
+ {
+ counter++;
+ if ( generate )
+ {
+ if (b )
+ {
+ genTrue++;
+ results.addElement(Boolean.TRUE);
+ }
+ else
+ {
+ genFalse++;
+ results.addElement(Boolean.FALSE);
+ }
+ return true;
+ }
+ else
+ {
+ if ( ((Boolean)results.elementAt(counter-1)).booleanValue() != b )
+ {
+ failed++;
+ return false;
+ }
+ else
+ {
+ passed++;
+ return true;
+ }
+ }
+
+ }
+
+ public final void reportClIsInst(Object obj, Class cl, boolean b )
+ {
+ if ( result(b) )
+ {
+ if ( verbose )
+ System.out.println("PASSED: "+obj +"\tis\t"+ cl + "\t?" + b);
+ }
+ else
+ {
+ System.out.println("FAILED: " + cl + ".isInstance(" + obj + ") is\t" + b );
+ }
+ }
+
+ public final void reportClIsAssign( Class c1, Class c2, boolean b )
+ {
+ if ( result(b) )
+ {
+ if (verbose)
+ System.out.println("PASSED: "+c1 + "\tisAssignableFrom\t" + c2 + "\t?\t" + b);
+ }
+ else
+ {
+ System.out.println("FAILED: " + c1 + ".isAssigableFrom(" + c2 + ") is " + b);
+ }
+ }
+
+ public final void reportInstanceof( Object obj, Class cl, boolean b )
+ {
+ if ( result(b) )
+ {
+ if ( verbose )
+ System.out.println("PASSED: "+obj +"\tinstanceof\t"+ cl + "\t?" + b);
+ }
+ else
+ {
+ System.out.println("FAILED: (" + obj + "instanceof\t" + cl + ")\tis\t" + b );
+ }
+ }
+
+ public final void reportCast( Object obj, Class cl, boolean b )
+ {
+ if ( result(b) )
+ {
+ if ( verbose )
+ System.out.println("PASSED: "+obj +"\tcastto \t"+ cl + "\t?" + b);
+ }
+ else
+ {
+ System.out.println("FAILED: " + obj + "\tcastto \t" + cl + "\tis\t" + b );
+ }
+ }
+
+ public final void readResultsFromFile()
+ {
+ try{
+ int i;
+ FileInputStream fin = new FileInputStream(filename);
+ while ( (i=fin.read()) != -1 )
+ {
+ results.addElement( i==1 ? Boolean.TRUE : Boolean.FALSE );
+ }
+ } catch (IOException e )
+ {
+ System.out.println("Cannot read from file " + filename);
+ System.out.println(e);
+ System.exit(1);
+ }
+ }
+
+ public final void writeResultsToFile()
+ {
+ try{
+ int i;
+ FileOutputStream fos = new FileOutputStream(filename);
+ for ( i=0; i < counter; i++ )
+ {
+ fos.write( ((Boolean)results.elementAt(i)).booleanValue() ? 1 : 0 );
+ }
+ fos.close();
+ } catch (IOException e )
+ {
+ System.out.println("Cannot read from file " + filename);
+ System.out.println(e);
+ System.exit(1);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/ThreadTest.java b/libjava/classpath/testsuite/java.lang/ThreadTest.java
new file mode 100644
index 00000000000..cade822ec2a
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/ThreadTest.java
@@ -0,0 +1,48 @@
+import java.lang.*;
+
+/* Simple producer/consumer thread test. */
+
+public class ThreadTest implements Runnable {
+
+ static String threadName = "Running thread";
+ static int count = 0;
+ static int max = 4; // XXX Seem to fail when >4 on kaffe 0.9.0
+
+ public void run() {
+ if (! Thread.currentThread().isAlive() ) {
+ System.out.println("FAILED: isAlive() false in new thread!");
+ } else {
+ System.out.println("PASSED: isAlive() working in new thread");
+ }
+ while (0 <= count && count <= max) {
+ count ++;
+ }
+ }
+
+ public static void main (String args[]) {
+ try {
+ if (! Thread.currentThread().isAlive() ) {
+ System.out.println("FAILED: isAlive() false in initial thread!");
+ } else {
+ System.out.println("PASSED: isAlive() working in initial thread");
+ }
+ ThreadTest test = new ThreadTest();
+
+ Thread testThread = new Thread(test, threadName);
+
+ testThread.setDaemon(true);
+ testThread.start();
+
+ Thread.currentThread().sleep(3000);
+
+ if (count < max) {
+ System.out.println("FAILED: unable to run new thread");
+ } else {
+ System.out.println("PASSED: Theads worked");
+ }
+ System.exit(0);
+ } catch (Exception e) {
+ System.out.println("FAILED: "+e);
+ }
+ }
+}
diff --git a/libjava/classpath/testsuite/java.lang/execute.exp b/libjava/classpath/testsuite/java.lang/execute.exp
new file mode 100644
index 00000000000..1092485c088
--- /dev/null
+++ b/libjava/classpath/testsuite/java.lang/execute.exp
@@ -0,0 +1,7 @@
+#
+# Author: Petter Reinholdtsen <pere@td.org.uit.no>
+
+# Load support procs
+load_lib java.exp
+
+test-java-source
OpenPOWER on IntegriCloud