diff options
Diffstat (limited to 'libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java')
-rw-r--r-- | libjava/classpath/testsuite/java.lang/OutOfMemoryErrorTest.java | 64 |
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"); + } + } +} |