summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java')
-rw-r--r--libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java64
1 files changed, 64 insertions, 0 deletions
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");
+ }
+ }
+}
OpenPOWER on IntegriCloud