aboutsummaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang/newarray_overflow.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/testsuite/libjava.lang/newarray_overflow.java')
-rw-r--r--libjava/testsuite/libjava.lang/newarray_overflow.java88
1 files changed, 0 insertions, 88 deletions
diff --git a/libjava/testsuite/libjava.lang/newarray_overflow.java b/libjava/testsuite/libjava.lang/newarray_overflow.java
deleted file mode 100644
index 17370b5..0000000
--- a/libjava/testsuite/libjava.lang/newarray_overflow.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This test checks for two slightly different overflow scenarios in
- * array allocation.
- *
- * The first is that the number of bytes needed for an array size
- * overflows on a 32 bit machine.
- *
- * The second is that on a 64 machine, the number of bytes silently
- * gets truncated, resulting in too small an object being
- * allocated. */
-
-class newarray_overflow
-{
- static boolean failed = false;
-
- static void int_check()
- {
- int[] x;
- try
- {
- x = new int [1 << 30];
- }
- catch (OutOfMemoryError e)
- {
- return;
- }
- /* If we really get away with it (64 bit machine), that's cool. */
- if (x == null) {
- System.err.println ("int check: new returned null.");
- failed = true;
- return;
- }
- try
- {
- // Only check a few places so we don't thrash too badly.
- for (int i = 0; i < x.length; i += (1 << 24))
- if (x[i] != 0)
- failed = true;
- }
- catch (Throwable e)
- {
- System.err.print ("int check: ");
- System.err.println (e);
- failed = true;
- }
- }
-
- static void object_check()
- {
- Object[] x;
- try
- {
- x = new Object [1 << 30];
- System.err.println ("Alloc succeeded.");
- System.err.println (x);
- }
- catch (OutOfMemoryError e)
- {
- return;
- }
- /* If we really get away with it (64 bit machine), that's cool. */
- if (x == null) {
- System.err.println ("Object check: new returned null.");
- failed = true;
- return;
- }
- try
- {
- for (int i = 0; i < x.length; i += (1 << 24))
- if (x[i] != null)
- failed = true;
- }
- catch (Throwable e)
- {
- System.err.print ("Object check: ");
- System.err.println (e);
- failed = true;
- }
- }
-
- public static void main (String[] ignore)
- {
- int_check();
- object_check();
-
- if (!failed)
- System.out.println ("ok");
- }
-}