From 28302276a4331f0cbf6bb6ca294de2f055d82cfd Mon Sep 17 00:00:00 2001 From: twisti Date: Tue, 6 Jun 2006 18:51:08 +0000 Subject: [PATCH] * tests/regression/extest.java: Get the maximum heap size and use it for OOM checks. * tests/regression/extest.2output: Updated. --- tests/regression/extest.2output | 58 ++++++++++++++++----------------- tests/regression/extest.java | 19 ++++++----- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/tests/regression/extest.2output b/tests/regression/extest.2output index 425dcc19e..84a26bd3f 100644 --- a/tests/regression/extest.2output +++ b/tests/regression/extest.2output @@ -1,82 +1,82 @@ ---------- normal exceptions -------------------- throw new Exception(): OK java.lang.Exception - at extest.main(extest.java:20) + at extest.main(extest.java:24) throw new Exception() (from subroutines): OK java.lang.Exception - at extest.sub4(extest.java) - at extest.sub3(extest.java:387) - at extest.sub2(extest.java:383) - at extest.sub(extest.java:379) - at extest.main(extest.java:36) + at extest.sub4(extest.java:392) + at extest.sub3(extest.java:388) + at extest.sub2(extest.java:384) + at extest.sub(extest.java:380) + at extest.main(extest.java:38) NullPointerException: OK java.lang.NullPointerException - at extest.main(extest.java:46) + at extest.main(extest.java:48) ---------- test soft inline exceptions ---------- /* thrown twice to check the inline jump code */ ArithmeticException (only w/ -softnull): OK java.lang.ArithmeticException: / by zero - at extest.main(extest.java:61) + at extest.main(extest.java:63) ArithmeticException (only w/ -softnull): OK java.lang.ArithmeticException: / by zero - at extest.main(extest.java:77) + at extest.main(extest.java:79) ArrayIndexOutOfBoundsException: OK java.lang.ArrayIndexOutOfBoundsException: -889275714 - at extest.main(extest.java:95) + at extest.main(extest.java:97) ArrayIndexOutOfBoundsException: OK java.lang.ArrayIndexOutOfBoundsException: -1161901314 - at extest.main(extest.java:112) + at extest.main(extest.java:114) ArrayStoreException: OK java.lang.ArrayStoreException - at extest.main(extest.java:132) + at extest.main(extest.java:133) ArrayStoreException: OK java.lang.ArrayStoreException - at extest.main(extest.java:143) + at extest.main(extest.java:144) ClassCastException: OK java.lang.ClassCastException - at extest.main(extest.java:154) + at extest.main(extest.java:155) ClassCastException: OK java.lang.ClassCastException - at extest.main(extest.java:165) + at extest.main(extest.java:166) NegativeArraySizeException (newarray): OK java.lang.NegativeArraySizeException - at extest.main(extest.java:175) + at extest.main(extest.java:176) NegativeArraySizeException (newarray): OK java.lang.NegativeArraySizeException - at extest.main(extest.java:184) + at extest.main(extest.java:185) NegativeArraySizeException (multianewarray): OK java.lang.NegativeArraySizeException - at extest.main(extest.java:193) + at extest.main(extest.java:194) NullPointerException (only w/ -softnull): OK java.lang.NullPointerException - at extest.main(extest.java:204) + at extest.main(extest.java:205) NullPointerException (only w/ -softnull): OK java.lang.NullPointerException - at extest.main(extest.java:214) + at extest.main(extest.java:215) OutOfMemoryError: OK java.lang.OutOfMemoryError - at extest.main(extest.java:224) + at extest.main(extest.java:225) OutOfMemoryError: OK java.lang.OutOfMemoryError - at extest.main(extest.java:234) + at extest.main(extest.java:235) OutOfMemoryError (multianewarray): OK java.lang.OutOfMemoryError @@ -86,29 +86,29 @@ java.lang.OutOfMemoryError ---------- exceptions in leaf functions --------- ArithmeticException: OK java.lang.ArithmeticException: / by zero - at extest.aesub(extest.java:395) + at extest.aesub(extest.java:396) at extest.main(extest.java:258) ArrayIndexOutOfBoundsException: OK java.lang.ArrayIndexOutOfBoundsException: -559038737 - at extest.aioobesub(extest.java:399) + at extest.aioobesub(extest.java:400) at extest.main(extest.java:267) ClassCastException: OK java.lang.ClassCastException - at extest.ccesub(extest.java:403) + at extest.ccesub(extest.java:404) at extest.main(extest.java:284) NullPointerException: OK java.lang.NullPointerException - at extest.npesub(extest.java:407) + at extest.npesub(extest.java:408) at extest.main(extest.java:293) ---------- exception related things ------------- load/link an exception class in asmpart: OK java.lang.Exception - at extest.main(extest.java:306) + at extest.main(extest.java:307) ---------- native stub exceptions --------------- @@ -135,10 +135,10 @@ java.lang.NullPointerException OutOfMemoryError (array clone): OK java.lang.OutOfMemoryError at [B.clone(Native Method) - at extest.main(extest.java:360) + at extest.main(extest.java:361) ---------- no OK beyond this point -------------- NullPointerException (without catch): Exception in thread "main" java.lang.NullPointerException - at extest.main(extest.java:374) + at extest.main(extest.java:375) diff --git a/tests/regression/extest.java b/tests/regression/extest.java index e7ec21606..3294b156e 100644 --- a/tests/regression/extest.java +++ b/tests/regression/extest.java @@ -8,6 +8,9 @@ public class extest { public static void main(String[] argv) { printStackTrace = true; + Runtime r = Runtime.getRuntime(); + int maxmem = (int) r.maxMemory(); + // if (argv.length > 0) // if (argv[0].equals("stacktrace")) // printStackTrace = true; @@ -23,7 +26,6 @@ public class extest { catched = true; ok(); pstacktrace(e); - } finally { /* check if catch block was executed */ if (!catched) { @@ -120,7 +122,6 @@ public class extest { } else { ok(); pstacktrace(e); - } } @@ -220,8 +221,8 @@ public class extest { try { p("OutOfMemoryError:"); - /* 100 MB should be enough */ - byte[] ba = new byte[100 * 1024 * 1024]; + /* use twice the heap size */ + byte[] ba = new byte[maxmem * 2]; failed(); } catch (OutOfMemoryError e) { ok(); @@ -230,8 +231,8 @@ public class extest { try { p("OutOfMemoryError:"); - /* 100 MB should be enough */ - byte[] ba = new byte[100 * 1024 * 1024]; + /* use twice the heap size */ + byte[] ba = new byte[maxmem * 2]; failed(); } catch (OutOfMemoryError e) { ok(); @@ -240,8 +241,7 @@ public class extest { try { p("OutOfMemoryError (multianewarray):"); - /* 100 MB should be enough */ - byte[][] ba = new byte[10 * 1024 * 1024][10 * 1024 * 1024]; + byte[][] ba = new byte[maxmem][maxmem]; failed(); } catch (OutOfMemoryError e) { ok(); @@ -356,7 +356,8 @@ public class extest { try { p("OutOfMemoryError (array clone):"); - byte[] ba1 = new byte[40 * 1024 * 1024]; + /* use half of the heap size */ + byte[] ba1 = new byte[maxmem / 2]; byte[] ba2 = (byte[]) ba1.clone(); failed(); } catch (OutOfMemoryError e) { -- 2.25.1