diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
| commit | f72d5de56a522ac3be03873bdde26f23a5eeeb3c (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /tests | |
| parent | 31e30105703263782efd450d356cd67ea01af3b7 (diff) | |
| download | android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.gz android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.bz2 android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.zip | |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'tests')
371 files changed, 0 insertions, 17501 deletions
diff --git a/tests/001-nop/build b/tests/001-nop/build deleted file mode 100644 index 5233a2d71..000000000 --- a/tests/001-nop/build +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -# Nothing to do here. diff --git a/tests/001-nop/expected.txt b/tests/001-nop/expected.txt deleted file mode 100644 index 80a233e74..000000000 --- a/tests/001-nop/expected.txt +++ /dev/null @@ -1 +0,0 @@ -Blort. diff --git a/tests/001-nop/info.txt b/tests/001-nop/info.txt deleted file mode 100644 index 9942f10da..000000000 --- a/tests/001-nop/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -This is a sample no-op test, which does at least serve to verify that the -test harness is working. diff --git a/tests/001-nop/run b/tests/001-nop/run deleted file mode 100644 index 210296b57..000000000 --- a/tests/001-nop/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -echo "Blort." diff --git a/tests/002-sleep/expected.txt b/tests/002-sleep/expected.txt deleted file mode 100644 index f994ce5de..000000000 --- a/tests/002-sleep/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -Sleeping 1000 msec... -Done sleeping diff --git a/tests/002-sleep/info.txt b/tests/002-sleep/info.txt deleted file mode 100644 index 9a0afe9dd..000000000 --- a/tests/002-sleep/info.txt +++ /dev/null @@ -1,3 +0,0 @@ -Test that Thread.sleep() operates reasonably. This test is actually -mostly meant as an easy thing to modify in order to test other things -in an ad-hoc way. diff --git a/tests/002-sleep/src/Main.java b/tests/002-sleep/src/Main.java deleted file mode 100644 index 450be2fae..000000000 --- a/tests/002-sleep/src/Main.java +++ /dev/null @@ -1,22 +0,0 @@ -public class Main { - static public void main(String[] args) throws Exception { - int millis = 1000; - - if (args.length != 0) { - millis = Integer.parseInt(args[0]); - } - - System.out.println("Sleeping " + millis + " msec..."); - - long start = System.currentTimeMillis(); - Thread.sleep(millis); - long elapsed = System.currentTimeMillis() - start; - long offBy = Math.abs(elapsed - millis); - - System.out.println("Done sleeping"); - - if (offBy > 250) { - System.out.println("Actually slept about " + elapsed + " msec..."); - } - } -} diff --git a/tests/003-omnibus-opcodes/build b/tests/003-omnibus-opcodes/build deleted file mode 100644 index 025999580..000000000 --- a/tests/003-omnibus-opcodes/build +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Stop if something fails. -set -e - -mkdir classes -${JAVAC} -d classes `find src -name '*.java'` -rm classes/UnresClass.class -${JAVAC} -d classes `find src2 -name '*.java'` - -dx -JXmx256m --debug --dex --dump-to=classes.lst --output=classes.dex classes -zip test.jar classes.dex - diff --git a/tests/003-omnibus-opcodes/expected.txt b/tests/003-omnibus-opcodes/expected.txt deleted file mode 100644 index 81a8879c3..000000000 --- a/tests/003-omnibus-opcodes/expected.txt +++ /dev/null @@ -1,71 +0,0 @@ -(assertions are enabled) -InstField assign... -InstField check... -InstField.nullCheck -StaticField assign... -StaticField check... -IntMath.shiftTest1 -IntMath.shiftTest2 -IntMath.unsignedShiftTest -IntMath.convTest -IntMath.charSubTest -IntMath.intOperTest -IntMath.intOperCheck -IntMath.longOperTest -IntMath.longOperCheck -IntMath.lit16Test -IntMath.lit8Test -IntMath.intShiftTest -IntMath.intShiftCheck -IntMath.longShiftTest -IntMath.longShiftCheck -IntMath.truncateTest -IntMath.divideByZero -IntMath.bigDivideOverflow -IntMath.checkConsts -FloatMath.convTest -FloatMath.floatOperTest -FloatMath.doubleOperTest -FloatMath.checkConvI -FloatMath.checkConvL -FloatMath.checkConvF - 0: -2.0054409E9 - 1: -8.613303E18 - 2: -3.1415927 --2.0054409E9, -8.6133031E18, -3.1415927 -FloatMath.checkConvD - 0: -2.005440939E9 - 1: -8.613303245920329E18 - 2: 123.45600128173828 --2.005440939E9, -8.6133032459203287E18, 123.4560012817382 -FloatMath.checkConsts -IntMath.testIntCompare -IntMath.testLongCompare -IntMath.testFloatCompare -IntMath.testDoubleCompare -Monitor.run -Switch.testSwitch -Array check... -Array.checkRange32 -Array.checkRange64 -Array.checkNegAlloc -Classes.checkCast -Classes.arrayInstance -Goto.smallGoto -Goto.smallGoto -Goto.mediumGoto -Goto.mediumGoto -Goto.bigGoto -Goto.bigGoto - MethodCallBase ctor - MethodCall ctor -MethodCalls.manyArgs -Throw.one -Throw.twoA -Throw.twoN -Throw.rethrow -Caught: java.lang.VerifyError: UnresTest1 -Caught (retry): java.lang.VerifyError: UnresTest1 -Caught: java.lang.VerifyError: UnresTest2 -InternedString.run -Done! diff --git a/tests/003-omnibus-opcodes/info.txt b/tests/003-omnibus-opcodes/info.txt deleted file mode 100644 index 6c0fbda2c..000000000 --- a/tests/003-omnibus-opcodes/info.txt +++ /dev/null @@ -1 +0,0 @@ -This is a smoke test of many Dalvik opcodes. diff --git a/tests/003-omnibus-opcodes/src/Array.java b/tests/003-omnibus-opcodes/src/Array.java deleted file mode 100644 index 6f1aa470f..000000000 --- a/tests/003-omnibus-opcodes/src/Array.java +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright 2008 The Android Open Source Project - - -/** - * Exercise arrays. - */ -public class Array { - - /* - * Verify array contents. - */ - static void checkBytes(byte[] bytes) { - assert(bytes[0] == 0); - assert(bytes[1] == -1); - assert(bytes[2] == -2); - assert(bytes[3] == -3); - assert(bytes[4] == -4); - } - static void checkShorts(short[] shorts) { - assert(shorts[0] == 20); - assert(shorts[1] == 10); - assert(shorts[2] == 0); - assert(shorts[3] == -10); - assert(shorts[4] == -20); - } - static void checkChars(char[] chars) { - assert(chars[0] == 40000); - assert(chars[1] == 40001); - assert(chars[2] == 40002); - assert(chars[3] == 40003); - assert(chars[4] == 40004); - } - static void checkInts(int[] ints) { - assert(ints[0] == 70000); - assert(ints[1] == 70001); - assert(ints[2] == 70002); - assert(ints[3] == 70003); - assert(ints[4] == 70004); - } - static void checkBooleans(boolean[] booleans) { - assert(booleans[0]); - assert(booleans[1]); - assert(!booleans[2]); - assert(booleans[3]); - assert(!booleans[4]); - } - static void checkFloats(float[] floats) { - assert(floats[0] == -1.5); - assert(floats[1] == -0.5); - assert(floats[2] == 0.0); - assert(floats[3] == 0.5); - assert(floats[4] == 1.5); - } - static void checkLongs(long[] longs) { - assert(longs[0] == 0x1122334455667788L); - assert(longs[1] == 0x8877665544332211L); - assert(longs[2] == 0L); - assert(longs[3] == 1L); - assert(longs[4] == -1L); - } - static void checkStrings(String[] strings) { - assert(strings[0].equals("zero")); - assert(strings[1].equals("one")); - assert(strings[2].equals("two")); - assert(strings[3].equals("three")); - assert(strings[4].equals("four")); - } - - /* - * Try bad range values, 32 bit get/put. - */ - static void checkRange32(int[] ints, int[] empty, int negVal1, int negVal2){ - System.out.println("Array.checkRange32"); - int i = 0; - - assert(ints.length == 5); - - try { - i = ints[5]; // exact bound - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - ints[5] = i; // exact bound - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - i = ints[6]; // one past - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - i = ints[negVal1]; // -1 - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - ints[negVal1] = i; // -1 - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - i = ints[negVal2]; // min int - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - - - try { - i = empty[1]; - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - } - - /* - * Try bad range values, 64 bit get/put. - */ - static void checkRange64(long[] longs, int negVal1, int negVal2) { - System.out.println("Array.checkRange64"); - long l = 0L; - - assert(longs.length == 5); - - try { - l = longs[5]; // exact bound - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - longs[5] = l; // exact bound - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - l = longs[6]; // one past - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - l = longs[negVal1]; // -1 - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - longs[negVal1] = l; // -1 - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - try { - l = longs[negVal2]; // min int - assert(false); - } catch (ArrayIndexOutOfBoundsException aioobe) { - // good - } - } - - /* - * Test negative allocations of object and primitive arrays. - */ - static void checkNegAlloc(int count) { - System.out.println("Array.checkNegAlloc"); - String[] strings; - int[] ints; - - try { - ints = new int[count]; - assert(false); - } catch (NegativeArraySizeException nase) { - // good - } - - try { - strings = new String[count]; - assert(false); - } catch (NegativeArraySizeException nase) { - // good - } - } - - public static void run() { - System.out.println("Array check..."); - - byte[] xBytes = new byte[] { 0, -1, -2, -3, -4 }; - short[] xShorts = new short[] { 20, 10, 0, -10, -20 }; - char[] xChars = new char[] { 40000, 40001, 40002, 40003, 40004 }; - int[] xInts = new int[] { 70000, 70001, 70002, 70003, 70004 }; - boolean[] xBooleans = new boolean[] { true, true, false, true, false }; - float[] xFloats = new float[] { -1.5f, -0.5f, 0.0f, 0.5f, 1.5f }; - long[] xLongs = new long[] { - 0x1122334455667788L, 0x8877665544332211L, 0L, 1L, -1l }; - String[] xStrings = new String[] { - "zero", "one", "two", "three", "four" }; - - int[] xEmpty = new int[0]; - - checkBytes(xBytes); - checkShorts(xShorts); - checkChars(xChars); - checkInts(xInts); - checkBooleans(xBooleans); - checkFloats(xFloats); - checkLongs(xLongs); - checkStrings(xStrings); - - checkRange32(xInts, xEmpty, -1, (int) 0x80000000); - checkRange64(xLongs, -1, (int) 0x80000000); - - checkNegAlloc(-1); - } -} - diff --git a/tests/003-omnibus-opcodes/src/Classes.java b/tests/003-omnibus-opcodes/src/Classes.java deleted file mode 100644 index c89ff3ef8..000000000 --- a/tests/003-omnibus-opcodes/src/Classes.java +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.io.Serializable; -import java.util.Arrays; - -/** - * Exercise some class-related instructions. - */ -public class Classes { - int mSome; - - public void subFunc(boolean wantSub) { - assert(!wantSub); - } - - void checkCast(Object thisRef, Object moreRef, Object nullRef) { - System.out.println("Classes.checkCast"); - - Classes classes; - MoreClasses more; - - classes = (Classes) thisRef; - assert(thisRef instanceof Classes); - classes = (Classes) moreRef; - assert(moreRef instanceof Classes); - - more = (MoreClasses) moreRef; - assert(moreRef instanceof MoreClasses); - assert(!(thisRef instanceof MoreClasses)); - - try { - more = (MoreClasses) thisRef; - assert(false); - } catch (ClassCastException cce) { - //System.out.println(" class cast msg: " + cce.getMessage()); - //Dalvik throws terser message than Hotspot VM - assert(cce.getMessage().regionMatches(false, 0, "Classes", 0, 7)); - } - assert(!(thisRef instanceof MoreClasses)); - - /* hopefully these classes cause a resolve */ - try { - java.math.RoundingMode mode = (java.math.RoundingMode) thisRef; - assert(false); - } catch (ClassCastException cce) { - //System.out.println(" class cast msg: " + cce.getMessage()); - //Dalvik throws terser message than Hotspot VM - assert(cce.getMessage().regionMatches(false, 0, "Classes", 0, 7)); - } - assert(!(thisRef instanceof java.math.BigDecimal)); - - /* try some stuff with a null reference */ - classes = (Classes) nullRef; - classes = (MoreClasses) nullRef; - more = (MoreClasses) nullRef; - assert(!(nullRef instanceof Classes)); - - } - - - static void xTests(Object x) { - assert( x instanceof Classes); - assert(!(x instanceof MoreClasses)); - } - static void yTests(Object y) { - assert( y instanceof Classes); - assert( y instanceof MoreClasses); - } - static void xarTests(Object xar) { - assert( xar instanceof Object); - assert(!(xar instanceof Classes)); - assert( xar instanceof Classes[]); - assert(!(xar instanceof MoreClasses[])); - assert( xar instanceof Object[]); - assert(!(xar instanceof Object[][])); - } - static void yarTests(Object yar) { - assert( yar instanceof Classes[]); - assert( yar instanceof MoreClasses[]); - } - static void xarararTests(Object xararar) { - assert( xararar instanceof Object); - assert( xararar instanceof Object[]); - assert(!(xararar instanceof Classes)); - assert(!(xararar instanceof Classes[])); - assert(!(xararar instanceof Classes[][])); - assert( xararar instanceof Classes[][][]); - assert(!(xararar instanceof MoreClasses[][][])); - assert( xararar instanceof Object[][][]); - assert( xararar instanceof Serializable); - assert( xararar instanceof Serializable[]); - assert( xararar instanceof Serializable[][]); - assert(!(xararar instanceof Serializable[][][])); - } - static void yarararTests(Object yararar) { - assert( yararar instanceof Classes[][][]); - assert( yararar instanceof MoreClasses[][][]); - } - static void iarTests(Object iar) { - assert( iar instanceof Object); - assert(!(iar instanceof Object[])); - } - static void iararTests(Object iarar) { - assert( iarar instanceof Object); - assert( iarar instanceof Object[]); - assert(!(iarar instanceof Object[][])); - } - - /* - * Exercise filled-new-array and test instanceof on arrays. - * - * We call out instead of using "instanceof" directly to avoid - * compiler optimizations. - */ - static void arrayInstance() { - System.out.println("Classes.arrayInstance"); - - Classes x = new Classes(); - Classes[] xar = new Classes[1]; - Classes[][] xarar = new Classes[1][1]; - Classes[][][] xararar = new Classes[1][2][3]; - MoreClasses y = new MoreClasses(); - MoreClasses[] yar = new MoreClasses[3]; - MoreClasses[][] yarar = new MoreClasses[2][3]; - MoreClasses[][][] yararar = new MoreClasses[1][2][3]; - int[] iar = new int[1]; - int[][] iarar = new int[1][1]; - Object test; - - xTests(x); - yTests(y); - xarTests(xar); - yarTests(yar); - xarararTests(xararar); - yarararTests(yararar); - iarTests(iar); - iararTests(iarar); - - yararar[0] = yarar; - yararar[0][0] = yar; - yararar[0][1] = yar; - yararar[0][0][0] = y; - yararar[0][0][1] = y; - yararar[0][0][2] = y; - yararar[0][1][0] = y; - yararar[0][1][1] = y; - yararar[0][1][2] = y; - - String strForm; - - String[][][][] multi1 = new String[2][3][2][1]; - multi1[0] = new String[2][3][2]; - multi1[0][1] = new String[3][2]; - multi1[0][1][2] = new String[2]; - multi1[0][1][2][1] = "HELLO-1"; - strForm = Arrays.deepToString(multi1); - - String[][][][][] multi2 = new String[5][2][3][2][1]; - multi2[0] = new String[5][2][3][2]; - multi2[0][1] = new String[5][2][3]; - multi2[0][1][2] = new String[5][2]; - multi2[0][1][2][1] = new String[5]; - multi2[0][1][2][1][4] = "HELLO-2"; - strForm = Arrays.deepToString(multi2); - - - String[][][][][][] multi3 = new String[2][5][2][3][2][1]; - multi3[0] = new String[2][][][][]; - multi3[0][1] = new String[3][][][]; - multi3[0][1][2] = new String[2][][]; - multi3[0][1][2][1] = new String[5][]; - multi3[0][1][2][1][4] = new String[2]; - multi3[0][1][2][1][4][1] = "HELLO-3"; - strForm = Arrays.deepToString(multi3); - - // build up pieces - String[][][][][][] multi4 = new String[1][][][][][]; - multi4[0] = new String[2][][][][]; - multi4[0][1] = new String[3][][][]; - multi4[0][1][2] = new String[2][][]; - multi4[0][1][2][1] = new String[5][]; - multi4[0][1][2][1][4] = new String[2]; - multi4[0][1][2][1][4][1] = "HELLO-4"; - strForm = Arrays.deepToString(multi4); - - /* this is expected to fail; 1073921584 * 4 overflows 32 bits */ - try { - String[][][][][] multiX = new String[5][2][3][2][1073921584]; - assert(false); - } catch (Error e) { - //System.out.println(" Got expected failure: " + e); - } - - } - - public static void run() { - Classes classes = new Classes(); - MoreClasses more = new MoreClasses(); - classes.checkCast(classes, more, null); - - more.subFunc(true); - more.superFunc(false); - arrayInstance(); - } -} - -class MoreClasses extends Classes { - int mMore; - - public MoreClasses() {} - - public void subFunc(boolean wantSub) { - assert(wantSub); - } - - public void superFunc(boolean wantSub) { - super.subFunc(wantSub); - } -} diff --git a/tests/003-omnibus-opcodes/src/Compare.java b/tests/003-omnibus-opcodes/src/Compare.java deleted file mode 100644 index 27d6862eb..000000000 --- a/tests/003-omnibus-opcodes/src/Compare.java +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2008 The Android Open Source Project - - - -/** - * Test comparison operators. - */ -public class Compare { - - /* - * Test the integer comparisons in various ways. - */ - static void testIntCompare(int minus, int plus, int plus2, int zero) { - System.out.println("IntMath.testIntCompare"); - - if (minus > plus) - assert(false); - if (minus >= plus) - assert(false); - if (plus < minus) - assert(false); - if (plus <= minus) - assert(false); - if (plus == minus) - assert(false); - if (plus != plus2) - assert(false); - - /* try a branch-taken */ - if (plus != minus) { - assert(true); - } else { - assert(false); - } - - if (minus > 0) - assert(false); - if (minus >= 0) - assert(false); - if (plus < 0) - assert(false); - if (plus <= 0) - assert(false); - if (plus == 0) - assert(false); - if (zero != 0) - assert(false); - - if (zero == 0) { - assert(true); - } else { - assert(false); - } - } - - /* - * Test cmp-long. - * - * minus=-5, alsoMinus=0xFFFFFFFF00000009, plus=4, alsoPlus=8 - */ - static void testLongCompare(long minus, long alsoMinus, long plus, - long alsoPlus) { - - System.out.println("IntMath.testLongCompare"); - if (minus > plus) - assert(false); - if (plus < minus) - assert(false); - if (plus == minus) - assert(false); - - if (plus >= plus+1) - assert(false); - if (minus >= minus+1) - assert(false); - - /* try a branch-taken */ - if (plus != minus) { - assert(true); - } else { - assert(false); - } - - /* compare when high words are equal but low words differ */ - if (plus > alsoPlus) - assert(false); - if (alsoPlus < plus) - assert(false); - if (alsoPlus == plus) - assert(false); - - /* high words are equal, low words have apparently different signs */ - if (minus < alsoMinus) // bug! - assert(false); - if (alsoMinus > minus) - assert(false); - if (alsoMinus == minus) - assert(false); - } - - /* - * Test cmpl-float and cmpg-float. - */ - static void testFloatCompare(float minus, float plus, float plus2, - float nan) { - - System.out.println("IntMath.testFloatCompare"); - if (minus > plus) - assert(false); - if (plus < minus) - assert(false); - if (plus == minus) - assert(false); - if (plus != plus2) - assert(false); - - if (plus <= nan) - assert(false); - if (plus >= nan) - assert(false); - if (minus <= nan) - assert(false); - if (minus >= nan) - assert(false); - if (nan >= plus) - assert(false); - if (nan <= plus) - assert(false); - - if (nan == nan) - assert(false); - } - - static void testDoubleCompare(double minus, double plus, double plus2, - double nan) { - - System.out.println("IntMath.testDoubleCompare"); - if (minus > plus) - assert(false); - if (plus < minus) - assert(false); - if (plus == minus) - assert(false); - if (plus != plus2) - assert(false); - - if (plus <= nan) - assert(false); - if (plus >= nan) - assert(false); - if (minus <= nan) - assert(false); - if (minus >= nan) - assert(false); - if (nan >= plus) - assert(false); - if (nan <= plus) - assert(false); - - if (nan == nan) - assert(false); - } - - public static void run() { - testIntCompare(-5, 4, 4, 0); - testLongCompare(-5L, -4294967287L, 4L, 8L); - - testFloatCompare(-5.0f, 4.0f, 4.0f, (1.0f/0.0f) / (1.0f/0.0f)); - testDoubleCompare(-5.0, 4.0, 4.0, (1.0/0.0) / (1.0/0.0)); - } -} - diff --git a/tests/003-omnibus-opcodes/src/FloatMath.java b/tests/003-omnibus-opcodes/src/FloatMath.java deleted file mode 100644 index 0c1fe1ba7..000000000 --- a/tests/003-omnibus-opcodes/src/FloatMath.java +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test arithmetic operations. - */ -public class FloatMath { - - static void convTest() { - System.out.println("FloatMath.convTest"); - - float f; - double d; - int i; - long l; - - /* float --> int */ - f = 1234.5678f; - i = (int) f; - assert(i == 1234); - - f = -1234.5678f; - i = (int) f; - assert(i == -1234); - - /* float --> long */ - f = 1238.5678f; - l = (long) f; - assert(l == 1238); - - f = -1238.5678f; - l = (long) f; - assert(l == -1238); - - /* float --> double */ - f = 1238.5678f; - d = (double) f; - assert(d > 1238.567 && d < 1238.568); - - /* double --> int */ - d = 1234.5678; - i = (int) d; - assert(i == 1234); - - d = -1234.5678; - i = (int) d; - assert(i == -1234); - - /* double --> long */ - d = 5678956789.0123; - l = (long) d; - assert(l == 5678956789L); - - d = -5678956789.0123; - l = (long) d; - assert(l == -5678956789L); - - /* double --> float */ - d = 1238.5678; - f = (float) d; - assert(f > 1238.567 && f < 1238.568); - - /* int --> long */ - i = 7654; - l = (long) i; - assert(l == 7654L); - - i = -7654; - l = (long) i; - assert(l == -7654L); - - /* int --> float */ - i = 1234; - f = (float) i; - assert(f > 1233.9f && f < 1234.1f); - - i = -1234; - f = (float) i; - assert(f < -1233.9f && f > -1234.1f); - - /* int --> double */ - i = 1238; - d = (double) i; - assert(d > 1237.9f && d < 1238.1f); - - i = -1238; - d = (double) i; - assert(d < -1237.9f && d > -1238.1f); - - /* long --> int (with truncation) */ - l = 5678956789L; - i = (int) l; - assert(i == 1383989493); - - l = -5678956789L; - i = (int) l; - assert(i == -1383989493); - - /* long --> float */ - l = 5678956789L; - f = (float) l; - assert(f > 5.6789564E9 && f < 5.6789566E9); - - l = -5678956789L; - f = (float) l; - assert(f < -5.6789564E9 && f > -5.6789566E9); - - /* long --> double */ - l = 6678956789L; - d = (double) l; - assert(d > 6.6789567E9 && d < 6.6789568E9); - - l = -6678956789L; - d = (double) l; - assert(d < -6.6789567E9 && d > -6.6789568E9); - } - - /* - * We pass in the arguments and return the results so the compiler - * doesn't do the math for us. - */ - static float[] floatOperTest(float x, float y) { - System.out.println("FloatMath.floatOperTest"); - - float[] results = new float[9]; - - /* this seems to generate "op-float" instructions */ - results[0] = x + y; - results[1] = x - y; - results[2] = x * y; - results[3] = x / y; - results[4] = x % -y; - - /* this seems to generate "op-float/2addr" instructions */ - results[8] = x + (((((x + y) - y) * y) / y) % y); - - return results; - } - static void floatOperCheck(float[] results) { - assert(results[0] > 69996.99f && results[0] < 69997.01f); - assert(results[1] > 70002.99f && results[1] < 70003.01f); - assert(results[2] > -210000.01f && results[2] < -209999.99f); - assert(results[3] > -23333.34f && results[3] < -23333.32f); - assert(results[4] > 0.999f && results[4] < 1.001f); - assert(results[8] > 70000.99f && results[8] < 70001.01f); - } - - /* - * We pass in the arguments and return the results so the compiler - * doesn't do the math for us. - */ - static double[] doubleOperTest(double x, double y) { - System.out.println("FloatMath.doubleOperTest"); - - double[] results = new double[9]; - - /* this seems to generate "op-double" instructions */ - results[0] = x + y; - results[1] = x - y; - results[2] = x * y; - results[3] = x / y; - results[4] = x % -y; - - /* this seems to generate "op-double/2addr" instructions */ - results[8] = x + (((((x + y) - y) * y) / y) % y); - - return results; - } - static void doubleOperCheck(double[] results) { - assert(results[0] > 69996.99 && results[0] < 69997.01); - assert(results[1] > 70002.99 && results[1] < 70003.01); - assert(results[2] > -210000.01 && results[2] < -209999.99); - assert(results[3] > -23333.34 && results[3] < -23333.32); - assert(results[4] > 0.999 && results[4] < 1.001); - assert(results[8] > 70000.99 && results[8] < 70001.01); - } - - /* - * Try to cause some unary operations. - */ - static float unopTest(float f) { - f = -f; - return f; - } - - static int[] convI(long l, float f, double d, float zero) { - int[] results = new int[6]; - results[0] = (int) l; - results[1] = (int) f; - results[2] = (int) d; - results[3] = (int) (1.0f / zero); // +inf - results[4] = (int) (-1.0f / zero); // -inf - results[5] = (int) ((1.0f / zero) / (1.0f / zero)); // NaN - return results; - } - static void checkConvI(int[] results) { - System.out.println("FloatMath.checkConvI"); - assert(results[0] == 0x44332211); - assert(results[1] == 123); - assert(results[2] == -3); - assert(results[3] == 0x7fffffff); - assert(results[4] == 0x80000000); - assert(results[5] == 0); - } - - static long[] convL(int i, float f, double d, double zero) { - long[] results = new long[6]; - results[0] = (long) i; - results[1] = (long) f; - results[2] = (long) d; - results[3] = (long) (1.0 / zero); // +inf - results[4] = (long) (-1.0 / zero); // -inf - results[5] = (long) ((1.0 / zero) / (1.0 / zero)); // NaN - return results; - } - static void checkConvL(long[] results) { - System.out.println("FloatMath.checkConvL"); - assert(results[0] == 0xFFFFFFFF88776655L); - assert(results[1] == 123); - assert(results[2] == -3); - assert(results[3] == 0x7fffffffffffffffL); - assert(results[4] == 0x8000000000000000L); - assert(results[5] == 0); - } - - static float[] convF(int i, long l, double d) { - float[] results = new float[3]; - results[0] = (float) i; - results[1] = (float) l; - results[2] = (float) d; - return results; - } - static void checkConvF(float[] results) { - System.out.println("FloatMath.checkConvF"); - // TODO: assert values - for (int i = 0; i < results.length; i++) - System.out.println(" " + i + ": " + results[i]); - System.out.println("-2.0054409E9, -8.6133031E18, -3.1415927"); - } - - static double[] convD(int i, long l, float f) { - double[] results = new double[3]; - results[0] = (double) i; - results[1] = (double) l; - results[2] = (double) f; - return results; - } - static void checkConvD(double[] results) { - System.out.println("FloatMath.checkConvD"); - // TODO: assert values - for (int i = 0; i < results.length; i++) - System.out.println(" " + i + ": " + results[i]); - System.out.println("-2.005440939E9, -8.6133032459203287E18, 123.4560012817382"); - } - - static void checkConsts() { - System.out.println("FloatMath.checkConsts"); - - float f = 10.0f; // const/special - assert(f > 9.9 && f < 10.1); - - double d = 10.0; // const-wide/special - assert(d > 9.9 && d < 10.1); - } - - public static void run() { - convTest(); - - float[] floatResults; - double[] doubleResults; - int[] intResults; - long[] longResults; - - floatResults = floatOperTest(70000.0f, -3.0f); - floatOperCheck(floatResults); - doubleResults = doubleOperTest(70000.0, -3.0); - doubleOperCheck(doubleResults); - - intResults = convI(0x8877665544332211L, 123.456f, -3.1415926535, 0.0f); - checkConvI(intResults); - longResults = convL(0x88776655, 123.456f, -3.1415926535, 0.0); - checkConvL(longResults); - floatResults = convF(0x88776655, 0x8877665544332211L, -3.1415926535); - checkConvF(floatResults); - doubleResults = convD(0x88776655, 0x8877665544332211L, 123.456f); - checkConvD(doubleResults); - - unopTest(123.456f); - - checkConsts(); - } -} - diff --git a/tests/003-omnibus-opcodes/src/Goto.java b/tests/003-omnibus-opcodes/src/Goto.java deleted file mode 100644 index 5b467fd66..000000000 --- a/tests/003-omnibus-opcodes/src/Goto.java +++ /dev/null @@ -1,2409 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Try to cause some gotos. - */ -class Goto { - static int filler(int i) { - return i+1; - } - - static int smallGoto(boolean which) { - System.out.println("Goto.smallGoto"); - - int i = 0; - - if (which) { - i += filler(i); - } else { - i -= filler(i); - } - - return i; - } - - static int mediumGoto(boolean which) { - System.out.println("Goto.mediumGoto"); - - int i = 0; - - if (which) { - i += filler(i); - } else { - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - } - - return i; - } - - static int bigGoto(boolean which) { - System.out.println("Goto.bigGoto"); - - int i = 0; - - if (which) { - i += filler(i); - } else { - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - i -= filler(i); i -= filler(i); i -= filler(i); i -= filler(i); - } - - return i; - } - - public static void run() { - smallGoto(false); - smallGoto(true); - mediumGoto(false); - mediumGoto(true); - bigGoto(false); - bigGoto(true); - } -}; - diff --git a/tests/003-omnibus-opcodes/src/InstField.java b/tests/003-omnibus-opcodes/src/InstField.java deleted file mode 100644 index d1fdbfc70..000000000 --- a/tests/003-omnibus-opcodes/src/InstField.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class InstField { - public void run() { - assignFields(); - checkFields(); - InstField.nullCheck(null); - } - - /* - * Check access to instance fields through a null pointer. - */ - static public void nullCheck(InstField nully) { - System.out.println("InstField.nullCheck"); - try { - int x = nully.mInt1; - assert(false); - } catch (NullPointerException npe) { - // good - } - try { - long l = nully.mLong1; - assert(false); - } catch (NullPointerException npe) { - // good - } - try { - nully.mInt1 = 5; - assert(false); - } catch (NullPointerException npe) { - // good - } - try { - nully.mLong1 = 17L; - assert(false); - } catch (NullPointerException npe) { - // good - } - } - - public void assignFields() { - System.out.println("InstField assign..."); - mBoolean1 = true; - mBoolean2 = false; - mByte1 = 127; - mByte2 = -128; - mChar1 = 32767; - mChar2 = 65535; - mShort1 = 32767; - mShort2 = -32768; - mInt1 = 65537; - mInt2 = -65537; - mFloat1 = 3.1415f; - mFloat2 = -1.0f / 0.0f; // -inf - mLong1 = 1234605616436508552L; // 0x1122334455667788 - mLong2 = -1234605616436508552L; - mDouble1 = 3.1415926535; - mDouble2 = 1.0 / 0.0; // +inf - } - - public void checkFields() { - System.out.println("InstField check..."); - assert(mBoolean1); - assert(!mBoolean2); - assert(mByte1 == 127); - assert(mByte2 == -128); - assert(mChar1 == 32767); - assert(mChar2 == 65535); - assert(mShort1 == 32767); - assert(mShort2 == -32768); - assert(mInt1 == 65537); - assert(mInt2 == -65537); - assert(mFloat1 > 3.141f && mFloat1 < 3.142f); - assert(mFloat2 < mFloat1); - assert(mLong1 == 1234605616436508552L); - assert(mLong2 == -1234605616436508552L); - assert(mDouble1 > 3.141592653 && mDouble1 < 3.141592654); - assert(mDouble2 > mDouble1); - } - - public boolean mBoolean1, mBoolean2; - public byte mByte1, mByte2; - public char mChar1, mChar2; - public short mShort1, mShort2; - public int mInt1, mInt2; - public float mFloat1, mFloat2; - public long mLong1, mLong2; - public double mDouble1, mDouble2; -} - diff --git a/tests/003-omnibus-opcodes/src/IntMath.java b/tests/003-omnibus-opcodes/src/IntMath.java deleted file mode 100644 index 126bec6cd..000000000 --- a/tests/003-omnibus-opcodes/src/IntMath.java +++ /dev/null @@ -1,472 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test arithmetic operations. - */ -public class IntMath { - - static void shiftTest1() { - System.out.println("IntMath.shiftTest1"); - - final int[] mBytes = { - 0x11, 0x22, 0x33, 0x44, 0x88, 0x99, 0xaa, 0xbb - }; - long l; - int i1, i2; - - i1 = mBytes[0] | mBytes[1] << 8 | mBytes[2] << 16 | mBytes[3] << 24; - i2 = mBytes[4] | mBytes[5] << 8 | mBytes[6] << 16 | mBytes[7] << 24; - l = i1 | ((long)i2 << 32); - - assert(i1 == 0x44332211); - assert(i2 == 0xbbaa9988); - assert(l == 0xbbaa998844332211L); - - l = (long)mBytes[0] - | (long)mBytes[1] << 8 - | (long)mBytes[2] << 16 - | (long)mBytes[3] << 24 - | (long)mBytes[4] << 32 - | (long)mBytes[5] << 40 - | (long)mBytes[6] << 48 - | (long)mBytes[7] << 56; - - assert(l == 0xbbaa998844332211L); - } - - static void shiftTest2() { - System.out.println("IntMath.shiftTest2"); - - long a = 0x11; - long b = 0x22; - long c = 0x33; - long d = 0x44; - long e = 0x55; - long f = 0x66; - long g = 0x77; - long h = 0x88; - - long result = ((a << 56) | (b << 48) | (c << 40) | (d << 32) | - (e << 24) | (f << 16) | (g << 8) | h); - - assert(result == 0x1122334455667788L); - } - - static void unsignedShiftTest() { - System.out.println("IntMath.unsignedShiftTest"); - - byte b = -4; - short s = -4; - char c = 0xfffc; - int i = -4; - - b >>>= 4; - s >>>= 4; - c >>>= 4; - i >>>= 4; - - assert((int) b == -1); - assert((int) s == -1); - assert((int) c == 0x0fff); - assert(i == 268435455); - } - - static void convTest() { - System.out.println("IntMath.convTest"); - - float f; - double d; - int i; - long l; - - /* int --> long */ - i = 7654; - l = (long) i; - assert(l == 7654L); - - i = -7654; - l = (long) i; - assert(l == -7654L); - - /* long --> int (with truncation) */ - l = 5678956789L; - i = (int) l; - assert(i == 1383989493); - - l = -5678956789L; - i = (int) l; - assert(i == -1383989493); - } - - static void charSubTest() { - System.out.println("IntMath.charSubTest"); - - char char1 = 0x00e9; - char char2 = 0xffff; - int i; - - /* chars are unsigned-expanded to ints before subtraction */ - i = char1 - char2; - assert(i == 0xffff00ea); - } - - /* - * We pass in the arguments and return the results so the compiler - * doesn't do the math for us. (x=70000, y=-3) - */ - static int[] intOperTest(int x, int y) { - System.out.println("IntMath.intOperTest"); - - int[] results = new int[10]; - - /* this seems to generate "op-int" instructions */ - results[0] = x + y; - results[1] = x - y; - results[2] = x * y; - results[3] = x * x; - results[4] = x / y; - results[5] = x % -y; - results[6] = x & y; - results[7] = x | y; - results[8] = x ^ y; - - /* this seems to generate "op-int/2addr" instructions */ - results[9] = x + ((((((((x + y) - y) * y) / y) % y) & y) | y) ^ y); - - return results; - } - static void intOperCheck(int[] results) { - System.out.println("IntMath.intOperCheck"); - - /* check this edge case while we're here (div-int/2addr) */ - int minInt = -2147483648; - int negOne = -results[5]; - int plusOne = 1; - int result = (((minInt + plusOne) - plusOne) / negOne) / negOne; - assert(result == minInt); - - assert(results[0] == 69997); - assert(results[1] == 70003); - assert(results[2] == -210000); - assert(results[3] == 605032704); // overflow / truncate - assert(results[4] == -23333); - assert(results[5] == 1); - assert(results[6] == 70000); - assert(results[7] == -3); - assert(results[8] == -70003); - assert(results[9] == 70000); - } - - /* - * More operations, this time with 16-bit constants. (x=77777) - */ - static int[] lit16Test(int x) { - System.out.println("IntMath.lit16Test"); - - int[] results = new int[8]; - - /* try to generate op-int/lit16" instructions */ - results[0] = x + 1000; - results[1] = 1000 - x; - results[2] = x * 1000; - results[3] = x / 1000; - results[4] = x % 1000; - results[5] = x & 1000; - results[6] = x | -1000; - results[7] = x ^ -1000; - return results; - } - static void lit16Check(int[] results) { - assert(results[0] == 78777); - assert(results[1] == -76777); - assert(results[2] == 77777000); - assert(results[3] == 77); - assert(results[4] == 777); - assert(results[5] == 960); - assert(results[6] == -39); - assert(results[7] == -76855); - } - - /* - * More operations, this time with 8-bit constants. (x=-55555) - */ - static int[] lit8Test(int x) { - System.out.println("IntMath.lit8Test"); - - int[] results = new int[8]; - - /* try to generate op-int/lit8" instructions */ - results[0] = x + 10; - results[1] = 10 - x; - results[2] = x * 10; - results[3] = x / 10; - results[4] = x % 10; - results[5] = x & 10; - results[6] = x | -10; - results[7] = x ^ -10; - return results; - } - static void lit8Check(int[] results) { - //for (int i = 0; i < results.length; i++) - // System.out.println(" " + i + ": " + results[i]); - - /* check this edge case while we're here (div-int/lit8) */ - int minInt = -2147483648; - int result = minInt / -1; - assert(result == minInt); - - assert(results[0] == -55545); - assert(results[1] == 55565); - assert(results[2] == -555550); - assert(results[3] == -5555); - assert(results[4] == -5); - assert(results[5] == 8); - assert(results[6] == -1); - assert(results[7] == 55563); - } - - - /* - * Shift some data. (value=0xff00aa01, dist=8) - */ - static int[] intShiftTest(int value, int dist) { - System.out.println("IntMath.intShiftTest"); - - int results[] = new int[4]; - - results[0] = value << dist; - results[1] = value >> dist; - results[2] = value >>> dist; - - results[3] = (((value << dist) >> dist) >>> dist) << dist; - return results; - } - static void intShiftCheck(int[] results) { - System.out.println("IntMath.intShiftCheck"); - - assert(results[0] == 0x00aa0100); - assert(results[1] == 0xffff00aa); - assert(results[2] == 0x00ff00aa); - assert(results[3] == 0xaa00); - } - - /* - * We pass in the arguments and return the results so the compiler - * doesn't do the math for us. (x=70000000000, y=-3) - */ - static long[] longOperTest(long x, long y) { - System.out.println("IntMath.longOperTest"); - - long[] results = new long[10]; - - /* this seems to generate "op-long" instructions */ - results[0] = x + y; - results[1] = x - y; - results[2] = x * y; - results[3] = x * x; - results[4] = x / y; - results[5] = x % -y; - results[6] = x & y; - results[7] = x | y; - results[8] = x ^ y; - - /* this seems to generate "op-long/2addr" instructions */ - results[9] = x + ((((((((x + y) - y) * y) / y) % y) & y) | y) ^ y); - - return results; - } - static void longOperCheck(long[] results) { - System.out.println("IntMath.longOperCheck"); - - /* check this edge case while we're here (div-long/2addr) */ - long minLong = -9223372036854775808L; - long negOne = -results[5]; - long plusOne = 1; - long result = (((minLong + plusOne) - plusOne) / negOne) / negOne; - assert(result == minLong); - - assert(results[0] == 69999999997L); - assert(results[1] == 70000000003L); - assert(results[2] == -210000000000L); - assert(results[3] == -6833923606740729856L); // overflow - assert(results[4] == -23333333333L); - assert(results[5] == 1); - assert(results[6] == 70000000000L); - assert(results[7] == -3); - assert(results[8] == -70000000003L); - assert(results[9] == 70000000000L); - - assert(results.length == 10); - } - - /* - * Shift some data. (value=0xd5aa96deff00aa01, dist=8) - */ - static long[] longShiftTest(long value, int dist) { - System.out.println("IntMath.longShiftTest"); - - long results[] = new long[4]; - - results[0] = value << dist; - results[1] = value >> dist; - results[2] = value >>> dist; - - results[3] = (((value << dist) >> dist) >>> dist) << dist; - return results; - } - static long longShiftCheck(long[] results) { - System.out.println("IntMath.longShiftCheck"); - - assert(results[0] == 0x96deff00aa010000L); - assert(results[1] == 0xffffd5aa96deff00L); - assert(results[2] == 0x0000d5aa96deff00L); - assert(results[3] == 0xffff96deff000000L); - - assert(results.length == 4); - - return results[0]; // test return-long - } - - - /* - * Try to cause some unary operations. - */ - static int unopTest(int x) { - x = -x; - x ^= 0xffffffff; - return x; - } - static void unopCheck(int result) { - assert(result == 37); - } - - static class Shorty { - public short mShort; - public char mChar; - public byte mByte; - }; - - /* - * Truncate an int. - */ - static Shorty truncateTest(int x) { - System.out.println("IntMath.truncateTest"); - Shorty shorts = new Shorty(); - - shorts.mShort = (short) x; - shorts.mChar = (char) x; - shorts.mByte = (byte) x; - return shorts; - } - static void truncateCheck(Shorty shorts) { - assert(shorts.mShort == -5597); // 0xea23 - assert(shorts.mChar == 59939); // 0xea23 - assert(shorts.mByte == 35); // 0x23 - } - - /* - * Verify that we get a divide-by-zero exception. - */ - static void divideByZero(int z) { - System.out.println("IntMath.divideByZero"); - - try { - int x = 100 / z; - assert(false); - } catch (ArithmeticException ae) { - } - - try { - int x = 100 % z; - assert(false); - } catch (ArithmeticException ae) { - } - - try { - long x = 100L / z; - assert(false); - } catch (ArithmeticException ae) { - } - - try { - long x = 100L % z; - assert(false); - } catch (ArithmeticException ae) { - } - } - - /* - * Check an edge condition: dividing the most-negative integer by -1 - * returns the most-negative integer, and doesn't cause an exception. - * - * Pass in -1, -1L. - */ - static void bigDivideOverflow(int idiv, long ldiv) { - System.out.println("IntMath.bigDivideOverflow"); - int mostNegInt = (int) 0x80000000; - long mostNegLong = (long) 0x8000000000000000L; - - int intDivResult = mostNegInt / idiv; - int intModResult = mostNegInt % idiv; - long longDivResult = mostNegLong / ldiv; - long longModResult = mostNegLong % ldiv; - - assert(intDivResult == mostNegInt); - assert(intModResult == 0); - assert(longDivResult == mostNegLong); - assert(longModResult == 0); - } - - /* - * Check "const" instructions. We use negative values to ensure that - * sign-extension is happening. - */ - static void checkConsts(byte small, short medium, int large, long huge) { - System.out.println("IntMath.checkConsts"); - - assert(small == 1); // const/4 - assert(medium == -256); // const/16 - assert(medium == -256L); // const-wide/16 - assert(large == -88888); // const - assert(large == -88888L); // const-wide/32 - assert(huge == 0x9922334455667788L); // const-wide - } - - public static void run() { - shiftTest1(); - shiftTest2(); - unsignedShiftTest(); - convTest(); - charSubTest(); - - int[] intResults; - long[] longResults; - - intResults = intOperTest(70000, -3); - intOperCheck(intResults); - longResults = longOperTest(70000000000L, -3L); - longOperCheck(longResults); - - intResults = lit16Test(77777); - lit16Check(intResults); - intResults = lit8Test(-55555); - lit8Check(intResults); - - intResults = intShiftTest(0xff00aa01, 8); - intShiftCheck(intResults); - longResults = longShiftTest(0xd5aa96deff00aa01L, 16); - long longRet = longShiftCheck(longResults); - assert(longRet == 0x96deff00aa010000L); - - Shorty shorts = truncateTest(-16717277); // 0xff00ea23 - truncateCheck(shorts); - - divideByZero(0); - bigDivideOverflow(-1, -1L); - - checkConsts((byte) 1, (short) -256, -88888, 0x9922334455667788L); - - unopCheck(unopTest(38)); - } -} - diff --git a/tests/003-omnibus-opcodes/src/InternedString.java b/tests/003-omnibus-opcodes/src/InternedString.java deleted file mode 100644 index 4baab0c38..000000000 --- a/tests/003-omnibus-opcodes/src/InternedString.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.ref.*; - -public class InternedString { - public static final String CONST = "Class InternedString"; - - public static void run() { - System.out.println("InternedString.run"); - testImmortalInternedString(); - testDeadInternedString(); - } - - private static void testDeadInternedString() { - String s = "blah"; - s = s + s; - WeakReference strRef = new WeakReference<String>(s.intern()); - // Kill s, otherwise the string object is still accessible from root set - s = CONST; - System.gc(); - // "blahblah" should disappear from the intern list - assert(strRef.get() == null); - } - - private static void testImmortalInternedString() { - WeakReference strRef = new WeakReference<String>(CONST.intern()); - System.gc(); - // Class constant string should be entered to the interned table when - // loaded - assert(CONST == CONST.intern()); - // and it should survive the gc - assert(strRef.get() != null); - - String s = CONST; - // "Class InternedString" should remain on the intern list - strRef = new WeakReference<String>(s.intern()); - // Kill s, otherwise the string object is still accessible from root set - s = ""; - System.gc(); - assert(strRef.get() == CONST); - } -} diff --git a/tests/003-omnibus-opcodes/src/Main.java b/tests/003-omnibus-opcodes/src/Main.java deleted file mode 100644 index 271d7956a..000000000 --- a/tests/003-omnibus-opcodes/src/Main.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Dalvik instruction exerciser. - */ -public class Main { - /* - * Start up. - */ - public static void main(String[] args) { - boolean assertEnabled = false; - assert assertEnabled = true; - if (!assertEnabled) { - System.out.println("FAIL: assert doesn't work (specify '-ea')\n"); - throw new RuntimeException(); - } else { - System.out.println("(assertions are enabled)"); - } - - Main main = new Main(); - main.run(); - - /* run through the heap to see if we trashed something */ - System.gc(); - - System.out.println("Done!"); - } - - public void run() { - InstField instField = new InstField(); - instField.run(); - - StaticField.run(); - - IntMath.run(); - FloatMath.run(); - Compare.run(); - - Monitor.run(); - Switch.run(); - Array.run(); - Classes.run(); - Goto.run(); - MethodCall.run(); - Throw.run(); - - try { - UnresTest1.run(); - } catch (VerifyError ve) { - System.out.println("Caught: " + ve); - } - try { - UnresTest1.run(); - } catch (VerifyError ve) { - System.out.println("Caught (retry): " + ve); - } - - try { - UnresTest2.run(); - } catch (VerifyError ve) { - System.out.println("Caught: " + ve); - } catch (NoClassDefFoundError ncdfe) { - /* UnresClass can cause desktop Java to freak out */ - System.out.println("NOTE: UnresTest2 not available"); - } - InternedString.run(); - } -} diff --git a/tests/003-omnibus-opcodes/src/MethodCall.java b/tests/003-omnibus-opcodes/src/MethodCall.java deleted file mode 100644 index 2a365f2ff..000000000 --- a/tests/003-omnibus-opcodes/src/MethodCall.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Try different kinds of method calls. - */ -public class MethodCall extends MethodCallBase { - MethodCall() { - super(); - System.out.println(" MethodCall ctor"); - } - - /* overridden method */ - int tryThing() { - int val = super.tryThing(); - assert(val == 7); - return val; - } - - /* do-nothing private instance method */ - private void directly() {} - - /* - * Function with many arguments. - */ - static void manyArgs(int a0, long a1, int a2, long a3, int a4, long a5, - int a6, int a7, double a8, float a9, double a10, short a11, int a12, - char a13, int a14, int a15, byte a16, boolean a17, int a18, int a19, - long a20, long a21, int a22, int a23, int a24, int a25, int a26, - String[][] a27, String[] a28, String a29) - { - System.out.println("MethodCalls.manyArgs"); - assert(a0 == 0); - assert(a9 > 8.99 && a9 < 9.01); - assert(a16 == -16); - assert(a25 == 25); - assert(a29.equals("twenty nine")); - } - - public static void run() { - MethodCall inst = new MethodCall(); - - MethodCallBase base = inst; - base.tryThing(); - inst.tryThing(); - - inst = null; - try { - inst.directly(); - assert(false); - } catch (NullPointerException npe) { - // good - } - - manyArgs(0, 1L, 2, 3L, 4, 5L, 6, 7, 8.0, 9.0f, 10.0, (short)11, 12, - (char)13, 14, 15, (byte)-16, true, 18, 19, 20L, 21L, 22, 23, 24, - 25, 26, null, null, "twenty nine"); - } -} - -class MethodCallBase { - MethodCallBase() { - System.out.println(" MethodCallBase ctor"); - } - - int tryThing() { - return 7; - } -} - diff --git a/tests/003-omnibus-opcodes/src/Monitor.java b/tests/003-omnibus-opcodes/src/Monitor.java deleted file mode 100644 index 0518ad958..000000000 --- a/tests/003-omnibus-opcodes/src/Monitor.java +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2008 The Android Open Source Project - - - -/** - * Exercise monitors. - */ -public class Monitor { - public static int mVal = 0; - - public synchronized void subTest() { - Object obj = new Object(); - synchronized (obj) { - mVal++; - obj = null; // does NOT cause a failure on exit - assert(obj == null); - } - } - - - public static void run() { - System.out.println("Monitor.run"); - - Object obj = null; - - try { - synchronized (obj) { - mVal++; - } - assert(false); - } catch (NullPointerException npe) { - /* expected */ - } - - obj = new Object(); - synchronized (obj) { - mVal++; - } - - new Monitor().subTest(); - - assert(mVal == 2); - } -} - diff --git a/tests/003-omnibus-opcodes/src/StaticField.java b/tests/003-omnibus-opcodes/src/StaticField.java deleted file mode 100644 index 2ccec62f7..000000000 --- a/tests/003-omnibus-opcodes/src/StaticField.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class StaticField { - public static void run() { - assignFields(); - checkFields(); - } - - public static void assignFields() { - System.out.println("StaticField assign..."); - mBoolean1 = true; - mBoolean2 = false; - mByte1 = 127; - mByte2 = -128; - mChar1 = 32767; - mChar2 = 65535; - mShort1 = 32767; - mShort2 = -32768; - mInt1 = 65537; - mInt2 = -65537; - mFloat1 = 3.1415f; - mFloat2 = -1.0f / 0.0f; // -inf - mLong1 = 1234605616436508552L; // 0x1122334455667788 - mLong2 = -1234605616436508552L; - mDouble1 = 3.1415926535; - mDouble2 = 1.0 / 0.0; // +inf - } - - public static void checkFields() { - System.out.println("StaticField check..."); - assert(mBoolean1); - assert(!mBoolean2); - assert(mByte1 == 127); - assert(mByte2 == -128); - assert(mChar1 == 32767); - assert(mChar2 == 65535); - assert(mShort1 == 32767); - assert(mShort2 == -32768); - assert(mInt1 == 65537); - assert(mInt2 == -65537); - assert(mFloat1 > 3.141f && mFloat2 < 3.142f); - assert(mFloat2 < mFloat1); - assert(mLong1 == 1234605616436508552L); - assert(mLong2 == -1234605616436508552L); - assert(mDouble1 > 3.141592653 && mDouble1 < 3.141592654); - assert(mDouble2 > mDouble1); - } - - public static boolean mBoolean1, mBoolean2; - public static byte mByte1, mByte2; - public static char mChar1, mChar2; - public static short mShort1, mShort2; - public static int mInt1, mInt2; - public static float mFloat1, mFloat2; - public static long mLong1, mLong2; - public static double mDouble1, mDouble2; -} - diff --git a/tests/003-omnibus-opcodes/src/Switch.java b/tests/003-omnibus-opcodes/src/Switch.java deleted file mode 100644 index de1b7e1e2..000000000 --- a/tests/003-omnibus-opcodes/src/Switch.java +++ /dev/null @@ -1,63 +0,0 @@ -public class Switch { - /** - * Test switch() blocks - */ - private static void testSwitch() { - System.out.println("Switch.testSwitch"); - - int a = 1; - - switch (a) { - case -1: assert(false); break; - case 0: assert(false); break; - case 1: /*correct*/ break; - case 2: assert(false); break; - case 3: assert(false); break; - case 4: assert(false); break; - default: assert(false); break; - } - switch (a) { - case 3: assert(false); break; - case 4: assert(false); break; - default: /*correct*/ break; - } - - a = 0x12345678; - - switch (a) { - case 0x12345678: /*correct*/ break; - case 0x12345679: assert(false); break; - default: assert(false); break; - } - switch (a) { - case 57: assert(false); break; - case -6: assert(false); break; - case 0x12345678: /*correct*/ break; - case 22: assert(false); break; - case 3: assert(false); break; - default: assert(false); break; - } - switch (a) { - case -6: assert(false); break; - case 3: assert(false); break; - default: /*correct*/ break; - } - - a = -5; - switch (a) { - case 12: assert(false); break; - case -5: /*correct*/ break; - case 0: assert(false); break; - default: assert(false); break; - } - - switch (a) { - default: /*correct*/ break; - } - } - - public static void run() { - testSwitch(); - } -} - diff --git a/tests/003-omnibus-opcodes/src/Throw.java b/tests/003-omnibus-opcodes/src/Throw.java deleted file mode 100644 index 2d4e13082..000000000 --- a/tests/003-omnibus-opcodes/src/Throw.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test exception throwing. - */ -public class Throw { - public void throwNullPointerException() { - throw new NullPointerException("npe!"); - } - - public void throwArithmeticException() { - throw new ArithmeticException(); - } - - public void one() { - System.out.println("Throw.one"); - try { - throwNullPointerException(); - assert(false); - } catch (Exception ex) { - // good - return; - } - - assert(false); - } - - public void twoA() { - System.out.println("Throw.twoA"); - boolean gotN = false; - boolean gotA = false; - boolean gotWeird = false; - - try { - try { - throwArithmeticException(); - gotWeird = true; - } catch (ArithmeticException ae) { - gotA = true; - } - } catch (NullPointerException npe) { - gotN = true; - } - - assert(gotA); - assert(!gotN); - assert(!gotWeird); - } - - public void twoN() { - System.out.println("Throw.twoN"); - boolean gotN = false; - boolean gotA = false; - boolean gotWeird = false; - - try { - try { - throwNullPointerException(); - gotWeird = true; - } catch (ArithmeticException ae) { - gotA = true; - } - } catch (NullPointerException npe) { - gotN = true; - } - - assert(!gotA); - assert(gotN); - assert(!gotWeird); - } - - public void rethrow() { - System.out.println("Throw.rethrow"); - boolean caught = false; - boolean lly = false; - boolean second = false; - - try { - try { - throwNullPointerException(); - assert(false); - } catch (Exception ex) { - if (ex instanceof ArithmeticException) { - assert(false); - } - if (ex instanceof NullPointerException) { - caught = true; - throw (NullPointerException) ex; - } - } finally { - lly = true; - } - } catch (Exception ex) { - second = true; - } - - assert(caught); - assert(lly); - assert(second); - } - - public static void run() { - Throw th = new Throw(); - - th.one(); - th.twoA(); - th.twoN(); - th.rethrow(); - } -} - diff --git a/tests/003-omnibus-opcodes/src/UnresClass.java b/tests/003-omnibus-opcodes/src/UnresClass.java deleted file mode 100644 index 10dd79ab6..000000000 --- a/tests/003-omnibus-opcodes/src/UnresClass.java +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Unresolved class. - * - * "happy" version. - */ - -public class UnresClass { - int foo; -} - diff --git a/tests/003-omnibus-opcodes/src/UnresStuff.java b/tests/003-omnibus-opcodes/src/UnresStuff.java deleted file mode 100644 index 5c925afe1..000000000 --- a/tests/003-omnibus-opcodes/src/UnresStuff.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Unresolved classes / fields / methods in a resolved class. - * - * "happy" version. - */ - -public class UnresStuff { - public int instField; - - public static int staticField; - - public double wideInstField; - public static double wideStaticField; - - public void virtualMethod() { - System.out.println("unres!"); - } - - public static void staticMethod() { - System.out.println("unres!"); - } -} - diff --git a/tests/003-omnibus-opcodes/src/UnresTest1.java b/tests/003-omnibus-opcodes/src/UnresTest1.java deleted file mode 100644 index 5a80a7a83..000000000 --- a/tests/003-omnibus-opcodes/src/UnresTest1.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Test failure to resolve class members. - */ -class UnresTest1 { - public static void run() { - System.out.println("UnresTest1..."); - - UnresStuff stuff = new UnresStuff(); - try { - int x = stuff.instField; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - try { // hit the same one a second time - int x = stuff.instField; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - try { - stuff.instField = 5; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - - try { - double d = stuff.wideInstField; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - try { - stuff.wideInstField = 0.0; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - - try { - int y = UnresStuff.staticField; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - try { - UnresStuff.staticField = 17; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - - try { - double d = UnresStuff.wideStaticField; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - try { - UnresStuff.wideStaticField = 1.0; - assert(false); - } catch (NoSuchFieldError nsfe) { - // good - } - - try { - stuff.virtualMethod(); - assert(false); - } catch (NoSuchMethodError nsfe) { - // good - } - try { - UnresStuff.staticMethod(); - assert(false); - } catch (NoSuchMethodError nsfe) { - // good - } - } -} diff --git a/tests/003-omnibus-opcodes/src/UnresTest2.java b/tests/003-omnibus-opcodes/src/UnresTest2.java deleted file mode 100644 index 43a92ac41..000000000 --- a/tests/003-omnibus-opcodes/src/UnresTest2.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Test failure to resolve classes. - */ -class UnresTest2 { - /* - * Try check-cast and instance-of. - */ - static boolean checkCasts(Object obj) { - boolean foo = false; - - try { - UnresClass un = (UnresClass) obj; - assert(false); - } catch (NoClassDefFoundError ncdfe) { - // good - } - try { - foo = obj instanceof UnresClass; - assert(false); - } catch (NoClassDefFoundError ncdfe) { - // good - } - - return foo; - } - - public static void run() { - System.out.println("UnresTest2..."); - UnresClass un; - UnresStuff stuff = new UnresStuff(); - - try { - un = new UnresClass(); - assert(false); - } catch (NoClassDefFoundError ncdfe) { - // good - } - - try { - UnresClass[] uar = new UnresClass[3]; - assert(false); - } catch (NoClassDefFoundError ncdfe) { - // good - } - - checkCasts(stuff); - } -} - diff --git a/tests/003-omnibus-opcodes/src2/UnresStuff.java b/tests/003-omnibus-opcodes/src2/UnresStuff.java deleted file mode 100644 index 8b4b88446..000000000 --- a/tests/003-omnibus-opcodes/src2/UnresStuff.java +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Unresolved classes / fields / methods in a resolved class. - * - * "happy" version. - */ - -public class UnresStuff { - public int x; -} - diff --git a/tests/004-annotations/expected.txt b/tests/004-annotations/expected.txt deleted file mode 100644 index 724b0eb39..000000000 --- a/tests/004-annotations/expected.txt +++ /dev/null @@ -1,92 +0,0 @@ -TestAnnotations... -mapping is class [Landroid.test.anno.IntToString; - 0='@android.test.anno.IntToString(from=0, to=NORMAL_FOCUS)' - 1='@android.test.anno.IntToString(from=2, to=WEAK_FOCUS)' - -AnnoSimpleField true, SimplyNoted false -annotations on TYPE class android.test.anno.SimplyNoted(2): - @android.test.anno.AnnoSimpleType() - interface android.test.anno.AnnoSimpleType - @android.test.anno.AnnoSimpleType2() - interface android.test.anno.AnnoSimpleType2 - - annotations on CTOR android.test.anno.SimplyNoted(): - @android.test.anno.AnnoSimpleConstructor() - interface android.test.anno.AnnoSimpleConstructor - constructor parameter annotations: - annotations on CTOR android.test.anno.SimplyNoted(int): - @android.test.anno.AnnoSimpleConstructor() - interface android.test.anno.AnnoSimpleConstructor - constructor parameter annotations: - @android.test.anno.AnnoSimpleParameter() - interface android.test.anno.AnnoSimpleParameter - annotations on METH public int android.test.anno.SimplyNoted.foo(): - @android.test.anno.AnnoSimpleMethod() - interface android.test.anno.AnnoSimpleMethod - method parameter annotations: - annotations on FIELD public static int android.test.anno.SimplyNoted.mOneFoo: - @android.test.anno.AnnoSimpleField() - interface android.test.anno.AnnoSimpleField - annotations on FIELD public int android.test.anno.SimplyNoted.mFoo: - @android.test.anno.AnnoSimpleField() - interface android.test.anno.AnnoSimpleField - -annotations on TYPE interface android.test.anno.INoted(1): - @android.test.anno.AnnoSimpleType2() - interface android.test.anno.AnnoSimpleType2 - - annotations on METH public abstract int android.test.anno.INoted.bar(): - @android.test.anno.AnnoSimpleMethod() - interface android.test.anno.AnnoSimpleMethod - method parameter annotations: - -annotations on TYPE class android.test.anno.SubNoted(3): - @android.test.anno.AnnoFancyType(name=unknown, num=5) - interface android.test.anno.AnnoFancyType - @android.test.anno.AnnoSimpleType() - interface android.test.anno.AnnoSimpleType - @android.test.anno.AnnoSimpleType2() - interface android.test.anno.AnnoSimpleType2 - - annotations on CTOR public android.test.anno.SubNoted(): - constructor parameter annotations: - annotations on METH public int android.test.anno.SubNoted.bar(): - method parameter annotations: - annotations on FIELD int android.test.anno.SubNoted.mBar: - -annotations on TYPE class android.test.anno.FullyNoted(1): - @android.test.anno.AnnoFancyType(name=full, num=5) - interface android.test.anno.AnnoFancyType - - annotations on CTOR android.test.anno.FullyNoted(int): - @android.test.anno.AnnoFancyConstructor(numArgs=1) - interface android.test.anno.AnnoFancyConstructor - constructor parameter annotations: - @android.test.anno.AnnoFancyParameter(factor=0.5) - interface android.test.anno.AnnoFancyParameter - annotations on METH public int android.test.anno.FullyNoted.bar(int,long) throws java.io.IOException,java.io.EOFException: - @android.test.anno.AnnoFancyMethod(biteMe=false, callMe=true, enumerated=FOO, someClass=class android.test.anno.SomeClass) - interface android.test.anno.AnnoFancyMethod - method parameter annotations: - @android.test.anno.AnnoSimpleParameter() - interface android.test.anno.AnnoSimpleParameter - @android.test.anno.AnnoFancyParameter(factor=3.7879912899761) - interface android.test.anno.AnnoFancyParameter - annotations on METH public int android.test.anno.FullyNoted.bar1(int,long) throws java.io.IOException: - @android.test.anno.AnnoFancyMethod(biteMe=true, callMe=false, enumerated=BAR, someClass=class android.test.anno.SomeClass) - interface android.test.anno.AnnoFancyMethod - method parameter annotations: - @android.test.anno.AnnoSimpleParameter() - interface android.test.anno.AnnoSimpleParameter - @android.test.anno.AnnoFancyParameter(factor=3.7879912899761) - interface android.test.anno.AnnoFancyParameter - annotations on METH public int android.test.anno.FullyNoted.notAnnotated(): - method parameter annotations: - annotations on FIELD int android.test.anno.FullyNoted.mBar: - @android.test.anno.AnnoFancyField(nombre=fubar) - interface android.test.anno.AnnoFancyField - aff: @android.test.anno.AnnoFancyField(nombre=fubar) / class $Proxy16 - --> nombre is 'fubar' - -SimplyNoted.get(AnnoSimpleType) = @android.test.anno.AnnoSimpleType() -SubNoted.get(AnnoSimpleType) = @android.test.anno.AnnoSimpleType() diff --git a/tests/004-annotations/info.txt b/tests/004-annotations/info.txt deleted file mode 100644 index c8c9280c3..000000000 --- a/tests/004-annotations/info.txt +++ /dev/null @@ -1 +0,0 @@ -Test a bunch of uses of annotations. diff --git a/tests/004-annotations/src/Main.java b/tests/004-annotations/src/Main.java deleted file mode 100644 index e44722fc4..000000000 --- a/tests/004-annotations/src/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -import android.test.anno.TestAnnotations; - -public class Main { - static public void main(String[] args) { - TestAnnotations.main(args); - } -} diff --git a/tests/004-annotations/src/android/test/anno/AnnoFancyConstructor.java b/tests/004-annotations/src/android/test/anno/AnnoFancyConstructor.java deleted file mode 100644 index e807a32f4..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoFancyConstructor.java +++ /dev/null @@ -1,11 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.CONSTRUCTOR) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoFancyConstructor { - public int numArgs() default 0; -} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoFancyField.java b/tests/004-annotations/src/android/test/anno/AnnoFancyField.java deleted file mode 100644 index 3637976d0..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoFancyField.java +++ /dev/null @@ -1,13 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -@Inherited // should have no effect -@Documented - -public @interface AnnoFancyField { - public String nombre() default "no se"; -} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoFancyMethod.java b/tests/004-annotations/src/android/test/anno/AnnoFancyMethod.java deleted file mode 100644 index 0958f3483..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoFancyMethod.java +++ /dev/null @@ -1,15 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoFancyMethod { - enum AnnoFancyMethodEnum { FOO, BAR }; - boolean callMe() default false; - boolean biteMe(); - AnnoFancyMethodEnum enumerated() default AnnoFancyMethodEnum.FOO; - Class someClass() default SomeClass.class; -} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoFancyParameter.java b/tests/004-annotations/src/android/test/anno/AnnoFancyParameter.java deleted file mode 100644 index 2bda6ee22..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoFancyParameter.java +++ /dev/null @@ -1,11 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.PARAMETER) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoFancyParameter { - double factor(); -} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoFancyType.java b/tests/004-annotations/src/android/test/anno/AnnoFancyType.java deleted file mode 100644 index 34ba009b3..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoFancyType.java +++ /dev/null @@ -1,12 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoFancyType { - public int num(); - public String name() default "unknown"; -} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleConstructor.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleConstructor.java deleted file mode 100644 index c0c127b4c..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleConstructor.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.CONSTRUCTOR) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimpleConstructor {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleField.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleField.java deleted file mode 100644 index 6428f1ada..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleField.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimpleField {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleLocalVariable.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleLocalVariable.java deleted file mode 100644 index 9a5e062b7..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleLocalVariable.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.LOCAL_VARIABLE) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimpleLocalVariable {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleMethod.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleMethod.java deleted file mode 100644 index 78e46aaa3..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleMethod.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimpleMethod {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimplePackage.java b/tests/004-annotations/src/android/test/anno/AnnoSimplePackage.java deleted file mode 100644 index 8d373767a..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimplePackage.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.PACKAGE) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimplePackage {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleParameter.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleParameter.java deleted file mode 100644 index 305f6d5d1..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleParameter.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.PARAMETER) -@Retention(RetentionPolicy.RUNTIME) - -public @interface AnnoSimpleParameter {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleType.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleType.java deleted file mode 100644 index 7c3c71826..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleType.java +++ /dev/null @@ -1,10 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -@Documented -public @interface AnnoSimpleType {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleType2.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleType2.java deleted file mode 100644 index 8bae1109a..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleType2.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface AnnoSimpleType2 {} - diff --git a/tests/004-annotations/src/android/test/anno/AnnoSimpleTypeInvis.java b/tests/004-annotations/src/android/test/anno/AnnoSimpleTypeInvis.java deleted file mode 100644 index e6ae9ce75..000000000 --- a/tests/004-annotations/src/android/test/anno/AnnoSimpleTypeInvis.java +++ /dev/null @@ -1,9 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.*; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.CLASS) - -public @interface AnnoSimpleTypeInvis {} - diff --git a/tests/004-annotations/src/android/test/anno/ExportedProperty.java b/tests/004-annotations/src/android/test/anno/ExportedProperty.java deleted file mode 100644 index 380b93d8f..000000000 --- a/tests/004-annotations/src/android/test/anno/ExportedProperty.java +++ /dev/null @@ -1,13 +0,0 @@ -/* part of test for array problem */ -package android.test.anno; - -import java.lang.annotation.*; - -@Target({ ElementType.FIELD, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) - -public @interface ExportedProperty { - boolean resolveId() default false; - IntToString[] mapping() default { @IntToString(from = -1, to = "-1") }; -} - diff --git a/tests/004-annotations/src/android/test/anno/FullyNoted.java b/tests/004-annotations/src/android/test/anno/FullyNoted.java deleted file mode 100644 index d24a6d8bf..000000000 --- a/tests/004-annotations/src/android/test/anno/FullyNoted.java +++ /dev/null @@ -1,40 +0,0 @@ - -package android.test.anno; - -import java.io.IOException; -import java.io.EOFException; - -@AnnoFancyType(num=5, name="full") -public class FullyNoted { - @AnnoFancyField(nombre="fubar") - int mBar; - - @AnnoFancyConstructor(numArgs=1) - FullyNoted(@AnnoFancyParameter(factor=0.5) int bar) - { - mBar = bar; - } - - @AnnoFancyMethod(callMe=true, biteMe=false) - public int bar( - @AnnoSimpleParameter int one, - @AnnoFancyParameter(factor=3.7879912899761) long two) - throws IOException, EOFException { - - return 0; - } - - @AnnoFancyMethod(biteMe=true, enumerated=AnnoFancyMethod.AnnoFancyMethodEnum.BAR) - public int bar1( - @AnnoSimpleParameter int one, - @AnnoFancyParameter(factor=3.7879912899761) long two) - throws IOException { - - return 0; - } - - public int notAnnotated() { - return 0; - } -} - diff --git a/tests/004-annotations/src/android/test/anno/INoted.java b/tests/004-annotations/src/android/test/anno/INoted.java deleted file mode 100644 index 7a7198caa..000000000 --- a/tests/004-annotations/src/android/test/anno/INoted.java +++ /dev/null @@ -1,8 +0,0 @@ -package android.test.anno; - -@AnnoSimpleType2 -public interface INoted { - @AnnoSimpleMethod - public int bar(); -} - diff --git a/tests/004-annotations/src/android/test/anno/IntToString.java b/tests/004-annotations/src/android/test/anno/IntToString.java deleted file mode 100644 index 5363c83b9..000000000 --- a/tests/004-annotations/src/android/test/anno/IntToString.java +++ /dev/null @@ -1,13 +0,0 @@ -/* part of test for array problem */ -package android.test.anno; - -import java.lang.annotation.*; - -@Target({ ElementType.TYPE }) -@Retention(RetentionPolicy.RUNTIME) - -public @interface IntToString { - int from(); - String to(); -} - diff --git a/tests/004-annotations/src/android/test/anno/SimplyNoted.java b/tests/004-annotations/src/android/test/anno/SimplyNoted.java deleted file mode 100644 index 7dce77ee4..000000000 --- a/tests/004-annotations/src/android/test/anno/SimplyNoted.java +++ /dev/null @@ -1,31 +0,0 @@ -package android.test.anno; - -@AnnoSimpleType -@AnnoSimpleType2 -@AnnoSimpleTypeInvis -public class SimplyNoted { - @AnnoSimpleField - public int mFoo; - - @AnnoSimpleField - public static int mOneFoo; - - @AnnoSimpleConstructor - SimplyNoted() { - mFoo = 0; - } - - @AnnoSimpleConstructor - SimplyNoted(@AnnoSimpleParameter int xyzzy) { - mFoo = xyzzy; - } - - @AnnoSimpleMethod - public int foo() { - @AnnoSimpleLocalVariable - int bar = 5; - - return bar; - } -} - diff --git a/tests/004-annotations/src/android/test/anno/SomeClass.java b/tests/004-annotations/src/android/test/anno/SomeClass.java deleted file mode 100644 index 5bb05c982..000000000 --- a/tests/004-annotations/src/android/test/anno/SomeClass.java +++ /dev/null @@ -1,5 +0,0 @@ -package android.test.anno; - -public class SomeClass { -} - diff --git a/tests/004-annotations/src/android/test/anno/SubNoted.java b/tests/004-annotations/src/android/test/anno/SubNoted.java deleted file mode 100644 index 089e5e64f..000000000 --- a/tests/004-annotations/src/android/test/anno/SubNoted.java +++ /dev/null @@ -1,13 +0,0 @@ -package android.test.anno; - -@AnnoFancyType(num=5) // first occurrence of AnnoFancyType - // we inherit @AnnoSimpleType -@AnnoSimpleType2 // AnnoSimpleType2 here *and* inherited from parent -public class SubNoted extends SimplyNoted implements INoted { - int mBar; - - public int bar() { - return 0; - } -} - diff --git a/tests/004-annotations/src/android/test/anno/TestAnnotations.java b/tests/004-annotations/src/android/test/anno/TestAnnotations.java deleted file mode 100644 index d1150f437..000000000 --- a/tests/004-annotations/src/android/test/anno/TestAnnotations.java +++ /dev/null @@ -1,135 +0,0 @@ -package android.test.anno; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.TreeMap; - -public class TestAnnotations { - /** - * Print the annotations in sorted order, so as to avoid - * any (legitimate) non-determinism with regard to the iteration order. - */ - static private void printAnnotationArray(String prefix, Annotation[] arr) { - TreeMap<String, Annotation> sorted = - new TreeMap<String, Annotation>(); - - for (Annotation a : arr) { - sorted.put(a.annotationType().getName(), a); - } - - for (Annotation a : sorted.values()) { - System.out.println(prefix + " " + a); - System.out.println(prefix + " " + a.annotationType()); - } - } - - static void printAnnotations(Class clazz) { - Annotation[] annos; - Annotation[][] parAnnos; - - annos = clazz.getAnnotations(); - System.out.println("annotations on TYPE " + clazz + - "(" + annos.length + "):"); - printAnnotationArray("", annos); - System.out.println(); - - for (Constructor c: clazz.getDeclaredConstructors()) { - annos = c.getDeclaredAnnotations(); - System.out.println(" annotations on CTOR " + c + ":"); - printAnnotationArray(" ", annos); - - System.out.println(" constructor parameter annotations:"); - for (Annotation[] pannos: c.getParameterAnnotations()) { - printAnnotationArray(" ", pannos); - } - } - - for (Method m: clazz.getDeclaredMethods()) { - annos = m.getDeclaredAnnotations(); - System.out.println(" annotations on METH " + m + ":"); - printAnnotationArray(" ", annos); - - System.out.println(" method parameter annotations:"); - for (Annotation[] pannos: m.getParameterAnnotations()) { - printAnnotationArray(" ", pannos); - } - } - - for (Field f: clazz.getDeclaredFields()) { - annos = f.getDeclaredAnnotations(); - System.out.println(" annotations on FIELD " + f + ":"); - printAnnotationArray(" ", annos); - - AnnoFancyField aff; - aff = (AnnoFancyField) f.getAnnotation(AnnoFancyField.class); - if (aff != null) { - System.out.println(" aff: " + aff + " / " + aff.getClass()); - System.out.println(" --> nombre is '" + aff.nombre() + "'"); - } - } - System.out.println(); - } - - - @ExportedProperty(mapping = { - @IntToString(from = 0, to = "NORMAL_FOCUS"), - @IntToString(from = 2, to = "WEAK_FOCUS") - }) - public int getFocusType() { - return 2; - } - - public static void testArrayProblem() { - Method meth; - ExportedProperty property; - final IntToString[] mapping; - - try { - meth = TestAnnotations.class.getMethod("getFocusType", - (Class[])null); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException(nsme); - } - property = meth.getAnnotation(ExportedProperty.class); - mapping = property.mapping(); - - System.out.println("mapping is " + mapping.getClass() + - "\n 0='" + mapping[0] + "'\n 1='" + mapping[1] + "'"); - System.out.println(""); - } - - - - public static void main(String[] args) { - System.out.println("TestAnnotations..."); - - testArrayProblem(); - //System.exit(0); - - System.out.println( - "AnnoSimpleField " + AnnoSimpleField.class.isAnnotation() + - ", SimplyNoted " + SimplyNoted.class.isAnnotation()); - - Class clazz; - clazz = SimplyNoted.class; - printAnnotations(clazz); - clazz = INoted.class; - printAnnotations(clazz); - clazz = SubNoted.class; - printAnnotations(clazz); - clazz = FullyNoted.class; - printAnnotations(clazz); - - Annotation anno; - - // this is expected to be non-null - anno = SimplyNoted.class.getAnnotation(AnnoSimpleType.class); - System.out.println("SimplyNoted.get(AnnoSimpleType) = " + anno); - // this is non-null if the @Inherited tag is present - anno = SubNoted.class.getAnnotation(AnnoSimpleType.class); - System.out.println("SubNoted.get(AnnoSimpleType) = " + anno); - } -} - diff --git a/tests/004-annotations/src/android/test/anno/package-info.java b/tests/004-annotations/src/android/test/anno/package-info.java deleted file mode 100644 index f43402478..000000000 --- a/tests/004-annotations/src/android/test/anno/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@AnnoSimplePackage -package android.test.anno; - diff --git a/tests/005-args/expected.txt b/tests/005-args/expected.txt deleted file mode 100644 index 094fbbbcf..000000000 --- a/tests/005-args/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -VALUES: 1122334455667788 9887766554433221 1122334455667788 -VALUES: 1234605616436508552 -7455860480511102431 1234605616436508552 -1234605616436508552 -j = 1234605616436508552 -a=123 c=q d=3.343434 j=1234605616436508552 f=0.12345 diff --git a/tests/005-args/info.txt b/tests/005-args/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/005-args/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/005-args/src/ArgsTest.java b/tests/005-args/src/ArgsTest.java deleted file mode 100644 index 2b874cd29..000000000 --- a/tests/005-args/src/ArgsTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -class ArgsTest{ - public ArgsTest() { - - } - - private long mLongArray[] = new long[] { - 0x1122334455667788L, 0x9887766554433221L }; - - /** - * - * @param a - * @param c - * @param d - * @param j - * @param f - */ - void argTest(int a, char c, double d, long j, float f) { - System.out.println("VALUES: " + Long.toHexString(mLongArray[0]) + " " - + Long.toHexString(mLongArray[1]) + " " + Long.toHexString(j)); - System.out.println("VALUES: " + mLongArray[0] + " " - + mLongArray[1] + " " + j); - - System.out.println(j); - System.out.println("j = " + j); - System.out.println("a=" + a + " c=" + c + " d=" + d - + " j=" + j + " f=" + f); - } -} diff --git a/tests/005-args/src/Main.java b/tests/005-args/src/Main.java deleted file mode 100644 index 1240ec5e8..000000000 --- a/tests/005-args/src/Main.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test passing arguments of various sizes - */ -public class Main { - public static void main (String args[]) { - new ArgsTest() - .argTest(123, 'q', 3.343434, 0x1122334455667788L, 0.12345f); - } -} diff --git a/tests/006-count10/expected.txt b/tests/006-count10/expected.txt deleted file mode 100644 index 8b1acc12b..000000000 --- a/tests/006-count10/expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 diff --git a/tests/006-count10/info.txt b/tests/006-count10/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/006-count10/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/006-count10/src/Main.java b/tests/006-count10/src/Main.java deleted file mode 100644 index 650d053d8..000000000 --- a/tests/006-count10/src/Main.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Simple loop-and-print - */ -public class Main { - public static void main(String args[]) { - for (int i = 0; i < 10; i++) { - System.out.println(i); - } - } -} diff --git a/tests/007-exceptions/expected.txt b/tests/007-exceptions/expected.txt deleted file mode 100644 index 2a3163662..000000000 --- a/tests/007-exceptions/expected.txt +++ /dev/null @@ -1,9 +0,0 @@ -Got an NPE: second throw -java.lang.NullPointerException: second throw - at Main.catchAndRethrow(Main.java:36) - at Main.main(Main.java:23) - at dalvik.system.NativeStart.main(Native Method) -Caused by: java.lang.NullPointerException: first throw - at Main.throwNullPointerException(Main.java:43) - at Main.catchAndRethrow(Main.java:33) - ... 2 more diff --git a/tests/007-exceptions/info.txt b/tests/007-exceptions/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/007-exceptions/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/007-exceptions/src/Main.java b/tests/007-exceptions/src/Main.java deleted file mode 100644 index c7da2153d..000000000 --- a/tests/007-exceptions/src/Main.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Exceptions across method calls - */ -public class Main { - public static void main (String args[]) { - try { - catchAndRethrow(); - } catch (NullPointerException npe) { - System.out.print("Got an NPE: "); - System.out.println(npe.getMessage()); - npe.printStackTrace(); - } - } - - private static void catchAndRethrow() { - try { - throwNullPointerException(); - } catch (NullPointerException npe) { - NullPointerException npe2; - npe2 = new NullPointerException("second throw"); - npe2.initCause(npe); - throw npe2; - } - } - - private static void throwNullPointerException() { - throw new NullPointerException("first throw"); - } -} diff --git a/tests/008-instanceof/expected.txt b/tests/008-instanceof/expected.txt deleted file mode 100644 index 77fd0cbc7..000000000 --- a/tests/008-instanceof/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -iface1.mFloaty = 5.0 wahoo -aa.mFloaty = 5.0 wahoo -bb.mWhoami = ImplB! -aaOkay (false) = false -bbOkay (true) = true -Caught a ClassCastException (expected) diff --git a/tests/008-instanceof/info.txt b/tests/008-instanceof/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/008-instanceof/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/008-instanceof/src/Iface1.java b/tests/008-instanceof/src/Iface1.java deleted file mode 100644 index 12dcfe78b..000000000 --- a/tests/008-instanceof/src/Iface1.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2005 The Android Open Source Project - -/** - * Test stuff. - */ -public interface Iface1 { - - public int iFunc1(int ii); - - public float mFloaty = 5.0f; - - public String mWahoo = new String("wahoo"); -} - diff --git a/tests/008-instanceof/src/Iface2.java b/tests/008-instanceof/src/Iface2.java deleted file mode 100644 index 6f8c2622b..000000000 --- a/tests/008-instanceof/src/Iface2.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2 { - - public int iFunc2(int ii); -} - diff --git a/tests/008-instanceof/src/Iface2Sub1.java b/tests/008-instanceof/src/Iface2Sub1.java deleted file mode 100644 index 83c879102..000000000 --- a/tests/008-instanceof/src/Iface2Sub1.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2Sub1 extends Iface2, Cloneable { - - //public int iFunc2(int ii); -} - diff --git a/tests/008-instanceof/src/ImplA.java b/tests/008-instanceof/src/ImplA.java deleted file mode 100644 index 9949d010f..000000000 --- a/tests/008-instanceof/src/ImplA.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplA implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+1; - } - public int iFunc2(int ii) { - return ii+2; - } -} - diff --git a/tests/008-instanceof/src/ImplB.java b/tests/008-instanceof/src/ImplB.java deleted file mode 100644 index b3a0c896c..000000000 --- a/tests/008-instanceof/src/ImplB.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplB implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+10; - } - public int iFunc2(int ii) { - return ii+20; - } - - public static String mWhoami = new String("ImplB!"); -} - diff --git a/tests/008-instanceof/src/ImplBSub.java b/tests/008-instanceof/src/ImplBSub.java deleted file mode 100644 index f3a771442..000000000 --- a/tests/008-instanceof/src/ImplBSub.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Interface test. - */ -public class ImplBSub extends ImplB implements /*Iface2,*/ Iface2Sub1 { - - public int iFunc1(int ii) { - return ii+100; - } - public int iFunc2(int ii) { - return ii+200; - } -} diff --git a/tests/008-instanceof/src/Main.java b/tests/008-instanceof/src/Main.java deleted file mode 100644 index 77f3f515c..000000000 --- a/tests/008-instanceof/src/Main.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test instanceof - */ -public class Main { - public static void main(String args[]) { - Iface1 face1; - ImplA aa = new ImplA(); - ImplBSub bb = new ImplBSub(); - boolean aaOkay, bbOkay; - - face1 = aa; - face1 = bb; - - System.out.println("iface1.mFloaty = " + face1.mFloaty + " " + face1.mWahoo); - System.out.println("aa.mFloaty = " + aa.mFloaty + " " + aa.mWahoo); - System.out.println("bb.mWhoami = " + bb.mWhoami); - - aaOkay = face1 instanceof ImplA; - System.out.print("aaOkay (false) = "); - System.out.println(aaOkay); - bbOkay = face1 instanceof ImplB; - System.out.print("bbOkay (true) = "); - System.out.println(bbOkay); - - bb = (ImplBSub) face1; - try { - aa = (ImplA) face1; - } - catch (ClassCastException cce) { - System.out.println("Caught a ClassCastException (expected)"); - } - } -} diff --git a/tests/009-instanceof2/expected.txt b/tests/009-instanceof2/expected.txt deleted file mode 100644 index 74ad20293..000000000 --- a/tests/009-instanceof2/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -instanceof Serializable = true -instanceof Cloneable = true -instanceof Runnable = false -aaOkay (false) = false -bbOkay (true) = true diff --git a/tests/009-instanceof2/info.txt b/tests/009-instanceof2/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/009-instanceof2/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/009-instanceof2/src/Iface1.java b/tests/009-instanceof2/src/Iface1.java deleted file mode 100644 index 12dcfe78b..000000000 --- a/tests/009-instanceof2/src/Iface1.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2005 The Android Open Source Project - -/** - * Test stuff. - */ -public interface Iface1 { - - public int iFunc1(int ii); - - public float mFloaty = 5.0f; - - public String mWahoo = new String("wahoo"); -} - diff --git a/tests/009-instanceof2/src/Iface2.java b/tests/009-instanceof2/src/Iface2.java deleted file mode 100644 index 6f8c2622b..000000000 --- a/tests/009-instanceof2/src/Iface2.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2 { - - public int iFunc2(int ii); -} - diff --git a/tests/009-instanceof2/src/Iface2Sub1.java b/tests/009-instanceof2/src/Iface2Sub1.java deleted file mode 100644 index 83c879102..000000000 --- a/tests/009-instanceof2/src/Iface2Sub1.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2Sub1 extends Iface2, Cloneable { - - //public int iFunc2(int ii); -} - diff --git a/tests/009-instanceof2/src/ImplA.java b/tests/009-instanceof2/src/ImplA.java deleted file mode 100644 index 9949d010f..000000000 --- a/tests/009-instanceof2/src/ImplA.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplA implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+1; - } - public int iFunc2(int ii) { - return ii+2; - } -} - diff --git a/tests/009-instanceof2/src/ImplB.java b/tests/009-instanceof2/src/ImplB.java deleted file mode 100644 index b3a0c896c..000000000 --- a/tests/009-instanceof2/src/ImplB.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplB implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+10; - } - public int iFunc2(int ii) { - return ii+20; - } - - public static String mWhoami = new String("ImplB!"); -} - diff --git a/tests/009-instanceof2/src/ImplBSub.java b/tests/009-instanceof2/src/ImplBSub.java deleted file mode 100644 index f3a771442..000000000 --- a/tests/009-instanceof2/src/ImplBSub.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Interface test. - */ -public class ImplBSub extends ImplB implements /*Iface2,*/ Iface2Sub1 { - - public int iFunc1(int ii) { - return ii+100; - } - public int iFunc2(int ii) { - return ii+200; - } -} diff --git a/tests/009-instanceof2/src/Main.java b/tests/009-instanceof2/src/Main.java deleted file mode 100644 index 15a1e507f..000000000 --- a/tests/009-instanceof2/src/Main.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * more instanceof cases - */ -public class Main { - public static void main(String args[]) { - Iface1[] faceArray; - ImplA[] aaArray = new ImplA[5]; - ImplBSub[] bbArray = new ImplBSub[5]; - boolean aaOkay, bbOkay; - - faceArray = aaArray; - faceArray = bbArray; - - System.out.print("instanceof Serializable = "); - System.out.println((Object)aaArray instanceof java.io.Serializable); - System.out.print("instanceof Cloneable = "); - System.out.println((Object)aaArray instanceof java.lang.Cloneable); - System.out.print("instanceof Runnable = "); - System.out.println((Object)aaArray instanceof java.lang.Runnable); - - aaOkay = faceArray instanceof ImplA[]; - System.out.print("aaOkay (false) = "); - System.out.println(aaOkay); - bbOkay = faceArray instanceof ImplB[]; - System.out.print("bbOkay (true) = "); - System.out.println(bbOkay); - } -} diff --git a/tests/010-instance/expected.txt b/tests/010-instance/expected.txt deleted file mode 100644 index 219dd06f8..000000000 --- a/tests/010-instance/expected.txt +++ /dev/null @@ -1,30 +0,0 @@ -instance begin -x instanceof X (true): true -x instanceof Y (false): false -y instanceof X (true): true -y instanceof Y (true): true -xar instanceof Object (true): true -xar instanceof X (false): false -xar instanceof X[] (true): true -xar instanceof Y[] (false): false -xar instanceof Object[] (true): true -xar instanceof X[][] (false): false -yar instanceof X[] (true): true -xararar instanceof Object (true): true -xararar instanceof Object[] (true): true -xararar instanceof X (false): false -xararar instanceof X[] (false): false -xararar instanceof X[][] (false): false -xararar instanceof X[][][] (true): true -xararar instanceof Object[][][] (true): true -xararar instanceof Serializable (true): true -xararar instanceof Serializable[] (true): true -xararar instanceof Serializable[][] (true): true -xararar instanceof Serializable[][][] (false): false -yararar instanceof X[][][] (true): true -iar instanceof Object (true): true -iar instanceof Object[] (false): false -iarar instanceof Object (true): true -iarar instanceof Object[] (true): true -iarar instanceof Object[][] (false): false -instanceof end diff --git a/tests/010-instance/info.txt b/tests/010-instance/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/010-instance/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/010-instance/src/InstanceTest.java b/tests/010-instance/src/InstanceTest.java deleted file mode 100644 index 78384ff76..000000000 --- a/tests/010-instance/src/InstanceTest.java +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -import java.io.Serializable; - -/** - * Test some instanceof stuff. - */ -public class InstanceTest { - public static void main(String[] args) { - System.out.println("instance begin"); - - X x = new X(); - X[] xar = new X[1]; - X[][] xarar = new X[1][1]; - X[][][] xararar = new X[1][1][1]; - Y y = new Y(); - Y[] yar = new Y[1]; - Y[][] yarar = new Y[1][1]; - Y[][][] yararar = new Y[1][1][1]; - int[] iar = new int[1]; - int[][] iarar = new int[1][1]; - Object test; - - test = x; - System.out.println("x instanceof X (true): " + (test instanceof X)); - System.out.println("x instanceof Y (false): " + (test instanceof Y)); - test = y; - System.out.println("y instanceof X (true): " + (test instanceof X)); - System.out.println("y instanceof Y (true): " + (test instanceof Y)); - - test = xar; - System.out.println("xar instanceof Object (true): " - + (test instanceof Object)); - System.out.println("xar instanceof X (false): " - + (test instanceof X)); - System.out.println("xar instanceof X[] (true): " - + (test instanceof X[])); - System.out.println("xar instanceof Y[] (false): " - + (test instanceof Y[])); - System.out.println("xar instanceof Object[] (true): " - + (test instanceof Object[])); - System.out.println("xar instanceof X[][] (false): " - + (test instanceof X[][])); - test = yar; - System.out.println("yar instanceof X[] (true): " - + (test instanceof X[])); - - test = xararar; - System.out.println("xararar instanceof Object (true): " - + (test instanceof Object)); - System.out.println("xararar instanceof Object[] (true): " - + (test instanceof Object[])); - System.out.println("xararar instanceof X (false): " - + (test instanceof X)); - System.out.println("xararar instanceof X[] (false): " - + (test instanceof X[])); - System.out.println("xararar instanceof X[][] (false): " - + (test instanceof X[][])); - System.out.println("xararar instanceof X[][][] (true): " - + (test instanceof X[][][])); - System.out.println("xararar instanceof Object[][][] (true): " - + (test instanceof Object[][][])); - - System.out.println("xararar instanceof Serializable (true): " - + (test instanceof Serializable)); - System.out.println("xararar instanceof Serializable[] (true): " - + (test instanceof Serializable[])); - System.out.println("xararar instanceof Serializable[][] (true): " - + (test instanceof Serializable[][])); - System.out.println("xararar instanceof Serializable[][][] (false): " - + (test instanceof Serializable[][][])); - - test = yararar; - System.out.println("yararar instanceof X[][][] (true): " - + (test instanceof X[][][])); - - test = iar; - System.out.println("iar instanceof Object (true): " - + (test instanceof Object)); - System.out.println("iar instanceof Object[] (false): " - + (test instanceof Object[])); - - test = iarar; - System.out.println("iarar instanceof Object (true): " - + (test instanceof Object)); - System.out.println("iarar instanceof Object[] (true): " - + (test instanceof Object[])); - System.out.println("iarar instanceof Object[][] (false): " - + (test instanceof Object[][])); - - System.out.println("instanceof end"); - } -} diff --git a/tests/010-instance/src/Main.java b/tests/010-instance/src/Main.java deleted file mode 100644 index ab0ab5e56..000000000 --- a/tests/010-instance/src/Main.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * even more instanceof cases - */ -public class Main { - public static void main(String args[]) { - InstanceTest.main(null); - } -} diff --git a/tests/010-instance/src/X.java b/tests/010-instance/src/X.java deleted file mode 100644 index d664d481b..000000000 --- a/tests/010-instance/src/X.java +++ /dev/null @@ -1,8 +0,0 @@ -class X { - public X() { - } - - int foo() { - return 0; - } -} diff --git a/tests/010-instance/src/Y.java b/tests/010-instance/src/Y.java deleted file mode 100644 index 6585ee7c6..000000000 --- a/tests/010-instance/src/Y.java +++ /dev/null @@ -1,9 +0,0 @@ -class Y extends X { - public Y() { - } - - int bar() { - return 1; - } -} - diff --git a/tests/011-array-copy/expected.txt b/tests/011-array-copy/expected.txt deleted file mode 100644 index 0ef202995..000000000 --- a/tests/011-array-copy/expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -string -> object -object -> string -object -> string (modified) -caught ArrayStoreException (expected) diff --git a/tests/011-array-copy/info.txt b/tests/011-array-copy/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/011-array-copy/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/011-array-copy/src/Iface1.java b/tests/011-array-copy/src/Iface1.java deleted file mode 100644 index 12dcfe78b..000000000 --- a/tests/011-array-copy/src/Iface1.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2005 The Android Open Source Project - -/** - * Test stuff. - */ -public interface Iface1 { - - public int iFunc1(int ii); - - public float mFloaty = 5.0f; - - public String mWahoo = new String("wahoo"); -} - diff --git a/tests/011-array-copy/src/Iface2.java b/tests/011-array-copy/src/Iface2.java deleted file mode 100644 index 6f8c2622b..000000000 --- a/tests/011-array-copy/src/Iface2.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2 { - - public int iFunc2(int ii); -} - diff --git a/tests/011-array-copy/src/ImplA.java b/tests/011-array-copy/src/ImplA.java deleted file mode 100644 index 9949d010f..000000000 --- a/tests/011-array-copy/src/ImplA.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplA implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+1; - } - public int iFunc2(int ii) { - return ii+2; - } -} - diff --git a/tests/011-array-copy/src/Main.java b/tests/011-array-copy/src/Main.java deleted file mode 100644 index 9cb8238fe..000000000 --- a/tests/011-array-copy/src/Main.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * System.arraycopy cases - */ -public class Main { - public static void main(String args[]) { - String[] stringArray = new String[8]; - Object[] objectArray = new Object[8]; - - for (int i = 0; i < stringArray.length; i++) - stringArray[i] = new String(Integer.toString(i)); - - System.out.println("string -> object"); - System.arraycopy(stringArray, 0, objectArray, 0, stringArray.length); - System.out.println("object -> string"); - System.arraycopy(objectArray, 0, stringArray, 0, stringArray.length); - System.out.println("object -> string (modified)"); - objectArray[4] = new ImplA(); - try { - System.arraycopy(objectArray, 0, stringArray, 0,stringArray.length); - } - catch (ArrayStoreException ase) { - System.out.println("caught ArrayStoreException (expected)"); - } - } -} diff --git a/tests/012-math/expected.txt b/tests/012-math/expected.txt deleted file mode 100644 index af9708e44..000000000 --- a/tests/012-math/expected.txt +++ /dev/null @@ -1,32 +0,0 @@ -res:10 -res:-4 -res:2 -res:-2 -res:21 -res:0 -res:3 -res:4 -res:384 -res:0 -res:0 -a:10 -a:3 -a:2 -a:-3 -a:-21 -a:-3 -a:-3 -a:-6 -a:-768 -a:-6 -a:33554431 -fres:10.0 -fres:-4.0 -fres:21.0 -fres:0.42857142857142855 -fres:3.0 -f:10.0 -f:3.0 -f:21.0 -f:3.0 -f:3.0 diff --git a/tests/012-math/info.txt b/tests/012-math/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/012-math/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/012-math/src/Main.java b/tests/012-math/src/Main.java deleted file mode 100644 index 87ea40ba6..000000000 --- a/tests/012-math/src/Main.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * test simple math opers - */ -public class Main { - public static void main(String args[]) { - int pad0, pad1, pad2, pad3, pad4, pad5, pad6, pad7; - int pad8, pad9, pad10, pad11, pad12, pad13, pad14, pad15; - int a, b, res; - //long a, b, res; - - a = 3; - b = 7; - - res = a + b; - System.out.println("res:" +res); - res = a - b; - System.out.println("res:" +res); - res = 5 - a; - System.out.println("res:" +res); - res = a - 5; - System.out.println("res:" +res); - res = a * b; - System.out.println("res:" +res); - res = a / b; - System.out.println("res:" +res); - res = a % b; - System.out.println("res:" +res); - res = a ^ b; - System.out.println("res:" +res); - res = a << b; - System.out.println("res:" +res); - res = a >> b; - System.out.println("res:" +res); - res = a >>> b; - System.out.println("res:" +res); - - a += b; - System.out.println("a:" +a); - a -= b; - System.out.println("a:" +a); - a = 5 - a; - System.out.println("a:" +a); - a -= 5; - System.out.println("a:" +a); - a *= b; - System.out.println("a:" +a); - a /= b; - System.out.println("a:" +a); - a %= b; - System.out.println("a:" +a); - a ^= b; - System.out.println("a:" +a); - a <<= b; - System.out.println("a:" +a); - a >>= b; - System.out.println("a:" +a); - a >>>= b; - System.out.println("a:" +a); - - double f, g, fres; - - f = 3.0f; - g = 7.0f; - - fres = f + g; - System.out.println("fres:" +fres); - fres = f - g; - System.out.println("fres:" +fres); - fres = f * g; - System.out.println("fres:" +fres); - fres = f / g; - System.out.println("fres:" +fres); - fres = f % g; - System.out.println("fres:" +fres); - f += g; - System.out.println("f:" +f); - f -= g; - System.out.println("f:" +f); - f *= g; - System.out.println("f:" +f); - f /= g; - System.out.println("f:" +f); - f %= g; - System.out.println("f:" +f); - } -} diff --git a/tests/013-math2/expected.txt b/tests/013-math2/expected.txt deleted file mode 100644 index d36c468e8..000000000 --- a/tests/013-math2/expected.txt +++ /dev/null @@ -1 +0,0 @@ -a:32003 diff --git a/tests/013-math2/info.txt b/tests/013-math2/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/013-math2/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/013-math2/src/Main.java b/tests/013-math2/src/Main.java deleted file mode 100644 index 819571dcc..000000000 --- a/tests/013-math2/src/Main.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * test add by a 16-bit constant - */ -public class Main { - public static void main(String args[]) { - int a, b, res; - - a = 3; - b = 7; - - // a 16-bit constant - a += 32000; - System.out.println("a:" +a); - } -} diff --git a/tests/014-math3/expected.txt b/tests/014-math3/expected.txt deleted file mode 100644 index bda3dc7d2..000000000 --- a/tests/014-math3/expected.txt +++ /dev/null @@ -1 +0,0 @@ -testMath3 success diff --git a/tests/014-math3/info.txt b/tests/014-math3/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/014-math3/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/014-math3/src/Main.java b/tests/014-math3/src/Main.java deleted file mode 100644 index f55b17a94..000000000 --- a/tests/014-math3/src/Main.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test math exceptions - */ -public class Main { - public static void main(String args[]) { - int expectedThrows = 2; - int i; - long j; - float f = 0.0f; - double d = 0.0; - - try { i = 10 / 0; } - catch (ArithmeticException ae) { - expectedThrows--; - } - - try { j = 10L / 0L; } - catch (ArithmeticException ae) { - expectedThrows--; - } - - /* - * Floating point divide by zero doesn't throw an exception -- the - * result is just NaN. - */ - try { f = 10.0f / f; } - catch (ArithmeticException ae) { - expectedThrows--; - } - - try { d = 10.0 / d; } - catch (ArithmeticException ae) { - expectedThrows--; - } - - if (expectedThrows != 0) - System.out.println("HEY: expected throws is " + expectedThrows); - else - System.out.println("testMath3 success"); - } -} diff --git a/tests/015-switch/expected.txt b/tests/015-switch/expected.txt deleted file mode 100644 index bad8343b3..000000000 --- a/tests/015-switch/expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CORRECT (one) -CORRECT (not found) -CORRECT (large) -CORRECT (large) -CORRECT (not found) -CORRECT (not found) -CORRECT (default only) diff --git a/tests/015-switch/info.txt b/tests/015-switch/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/015-switch/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/015-switch/src/Main.java b/tests/015-switch/src/Main.java deleted file mode 100644 index db42c345d..000000000 --- a/tests/015-switch/src/Main.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test switch() blocks - */ -public class Main { - public static void main(String args[]) { - int a = 1; - - switch (a) { - case -1: System.out.print("neg one\n"); break; - case 0: System.out.print("zero\n"); break; - case 1: System.out.print("CORRECT (one)\n"); break; - case 2: System.out.print("two\n"); break; - case 3: System.out.print("three\n"); break; - case 4: System.out.print("four\n"); break; - default: System.out.print("???\n"); break; - } - switch (a) { - case 3: System.out.print("three\n"); break; - case 4: System.out.print("four\n"); break; - default: System.out.print("CORRECT (not found)\n"); break; - } - - a = 0x12345678; - - switch (a) { - case 0x12345678: System.out.print("CORRECT (large)\n"); break; - case 0x12345679: System.out.print("large+1\n"); break; - default: System.out.print("nuts\n"); break; - } - switch (a) { - case 57: System.out.print("fifty-seven!\n"); break; - case -6: System.out.print("neg six!\n"); break; - case 0x12345678: System.out.print("CORRECT (large)\n"); break; - case 22: System.out.print("twenty-two!\n"); break; - case 3: System.out.print("three!\n"); break; - default: System.out.print("huh?\n"); break; - } - switch (a) { - case -6: System.out.print("neg six!\n"); break; - case 3: System.out.print("three!\n"); break; - default: System.out.print("CORRECT (not found)\n"); break; - } - - a = -5; - switch (a) { - case 12: System.out.print("twelve\n"); break; - case -5: System.out.print("CORRECT (not found)\n"); break; - case 0: System.out.print("zero\n"); break; - default: System.out.print("wah?\n"); break; - } - - switch (a) { - default: System.out.print("CORRECT (default only)\n"); break; - } - } -} diff --git a/tests/016-intern/expected.txt b/tests/016-intern/expected.txt deleted file mode 100644 index 7d919635f..000000000 --- a/tests/016-intern/expected.txt +++ /dev/null @@ -1 +0,0 @@ -good! foobar diff --git a/tests/016-intern/info.txt b/tests/016-intern/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/016-intern/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/016-intern/src/Main.java b/tests/016-intern/src/Main.java deleted file mode 100644 index 430686302..000000000 --- a/tests/016-intern/src/Main.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Interned strings - */ -public class Main { - public static void main(String args[]) { - String a, b; - String foo = "foo"; - String bar = "bar"; - - a = foo.concat(bar).intern(); - b = foo.concat(bar).intern(); - if (a == b && foo != bar) { - System.out.println("good! " + a); - } else { - System.out.println("bad!"); - } - } -} diff --git a/tests/017-float/expected.txt b/tests/017-float/expected.txt deleted file mode 100644 index 2062f9e7b..000000000 --- a/tests/017-float/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -base values: d=3.1415926535 f=3.1415927 -base values: d=3.1415926535 f=3.1415927 -base values: f=3.1415927 d=3.1415926535 diff --git a/tests/017-float/info.txt b/tests/017-float/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/017-float/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/017-float/src/Main.java b/tests/017-float/src/Main.java deleted file mode 100644 index a5dbe1e23..000000000 --- a/tests/017-float/src/Main.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * I dont know what this test does. - */ -public class Main { - public static void main(String args[]) { - float f = 3.1415926535f; - double d = 3.1415926535; - //float fd = (float) d; - //Float off = new Float(f); - //Float ofd = new Float(d); - System.out.println("base values: d=" + d + " f=" + f); - System.out.println("base values: d=" + d + " f=" + f); - System.out.println("base values: f=" + f + " d=" + d); - //System.out.println("object values: off=" - // + off.floatValue() + " ofd=" + ofd.floatValue()); - } -} diff --git a/tests/018-stack-overflow/expected.txt b/tests/018-stack-overflow/expected.txt deleted file mode 100644 index 779781678..000000000 --- a/tests/018-stack-overflow/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -caught SOE -SOE test done diff --git a/tests/018-stack-overflow/info.txt b/tests/018-stack-overflow/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/018-stack-overflow/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/018-stack-overflow/src/Main.java b/tests/018-stack-overflow/src/Main.java deleted file mode 100644 index f79c269c8..000000000 --- a/tests/018-stack-overflow/src/Main.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * generate a stack overflow condition and catch it - */ -public class Main { - public static void main(String args[]) { - try { - stackOverflowTestSub(0.0, 0.0, 0.0); - } - catch (StackOverflowError soe) { - System.out.println("caught SOE"); - } - System.out.println("SOE test done"); - } - - private static void stackOverflowTestSub(double pad1, double pad2, - double pad3) { - stackOverflowTestSub(pad1, pad2, pad3); - } -} diff --git a/tests/019-wrong-array-type/expected.txt b/tests/019-wrong-array-type/expected.txt deleted file mode 100644 index c0ed71652..000000000 --- a/tests/019-wrong-array-type/expected.txt +++ /dev/null @@ -1 +0,0 @@ -Got correct array store exception diff --git a/tests/019-wrong-array-type/info.txt b/tests/019-wrong-array-type/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/019-wrong-array-type/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/019-wrong-array-type/src/Main.java b/tests/019-wrong-array-type/src/Main.java deleted file mode 100644 index c424ae9ef..000000000 --- a/tests/019-wrong-array-type/src/Main.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Stuff the wrong type object into an array. - */ -public class Main { - public static void main(String args[]) { - String[] strArray = new String[1]; - - Object[] objArray = strArray; - - try { - objArray[0] = new Integer(1); - System.out.println("Array store succeeded?!"); - } catch (ArrayStoreException ase) { - System.out.println("Got correct array store exception"); - } - } -} diff --git a/tests/020-string/expected.txt b/tests/020-string/expected.txt deleted file mode 100644 index 67b71593e..000000000 --- a/tests/020-string/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -testStr is 'This is a very nice string' -This is a very nice string -Compare result is 32 -Compare unicode: -65302 -Got expected exception diff --git a/tests/020-string/info.txt b/tests/020-string/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/020-string/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/020-string/src/Main.java b/tests/020-string/src/Main.java deleted file mode 100644 index 4a57fc672..000000000 --- a/tests/020-string/src/Main.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Simple string test. - */ -public class Main { - public static void main(String args[]) { - String baseStr = "*** This is a very nice string!!!"; - String testStr; - int i; - - testStr = baseStr.substring(4, baseStr.length() - 3); - System.out.println("testStr is '" + testStr + "'"); - - /* sloppy for loop */ - for (i = 0; i < testStr.length(); i++) - System.out.print(testStr.charAt(i)); - System.out.print("\n"); - - String testStr2 = "This is a very nice strinG"; - if (testStr.length() != testStr2.length()) - System.out.println("WARNING: stringTest length mismatch"); - - System.out.println("Compare result is " + testStr.compareTo(testStr2)); - - // expected: -65302 - String s1 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\u00e9\u00e9\u00e9"; - String s2 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\uffff\uffff\uffff\u00e9\u00e9\u00e9"; - System.out.println("Compare unicode: " + s1.compareTo(s2)); - - try { - testStr.charAt(500); - System.out.println("GLITCH: expected exception"); - } catch (StringIndexOutOfBoundsException sioobe) { - System.out.println("Got expected exception"); - } - } -} diff --git a/tests/021-string2/expected.txt b/tests/021-string2/expected.txt deleted file mode 100644 index bd7f0492b..000000000 --- a/tests/021-string2/expected.txt +++ /dev/null @@ -1 +0,0 @@ -Got expected npe diff --git a/tests/021-string2/info.txt b/tests/021-string2/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/021-string2/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/021-string2/src/Main.java b/tests/021-string2/src/Main.java deleted file mode 100644 index 87e4baf65..000000000 --- a/tests/021-string2/src/Main.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import junit.framework.Assert; - -/** - * more string tests - */ -public class Main { - public static void main(String args[]) { - String test = "0123456789"; - String test1 = new String("0123456789"); // different object - String test2 = new String("0123456780"); // different value - String offset = new String("xxx0123456789yyy"); - String sub = offset.substring(3, 13); - Object blah = new Object(); - - Assert.assertTrue(test.equals(test)); - Assert.assertTrue(test.equals(test1)); - Assert.assertFalse(test.equals(test2)); - - Assert.assertEquals(test.compareTo(test1), 0); - Assert.assertTrue(test1.compareTo(test2) > 0); - Assert.assertTrue(test2.compareTo(test1) < 0); - - /* compare string with a nonzero offset, in left/right side */ - Assert.assertEquals(test.compareTo(sub), 0); - Assert.assertEquals(sub.compareTo(test), 0); - Assert.assertTrue(test.equals(sub)); - Assert.assertTrue(sub.equals(test)); - /* same base, one is a substring */ - Assert.assertFalse(offset.equals(sub)); - Assert.assertFalse(sub.equals(offset)); - /* wrong class */ - Assert.assertFalse(test.equals(blah)); - - /* null ptr - throw */ - try { - test.compareTo(null); - Assert.fail("didn't get expected npe"); - } catch (NullPointerException npe) { - System.out.println("Got expected npe"); - } - /* null ptr - ok */ - Assert.assertFalse(test.equals(null)); - - test = test.substring(1); - Assert.assertTrue(test.equals("123456789")); - Assert.assertFalse(test.equals(test1)); - - test = test.substring(1); - Assert.assertTrue(test.equals("23456789")); - - test = test.substring(1); - Assert.assertTrue(test.equals("3456789")); - - test = test.substring(1); - Assert.assertTrue(test.equals("456789")); - - test = test.substring(3,5); - Assert.assertTrue(test.equals("78")); - - test = "this/is/a/path"; - String[] strings = test.split("/"); - Assert.assertEquals(4, strings.length); - - Assert.assertEquals("this is a path", test.replaceAll("/", " ")); - Assert.assertEquals("this is a path", test.replace("/", " ")); - } -} diff --git a/tests/021-string2/src/junit/framework/Assert.java b/tests/021-string2/src/junit/framework/Assert.java deleted file mode 100644 index c1bc7b2cd..000000000 --- a/tests/021-string2/src/junit/framework/Assert.java +++ /dev/null @@ -1,291 +0,0 @@ -package junit.framework; - -/** - * A set of assert methods. Messages are only displayed when an assert fails. - */ - -public class Assert { - /** - * Protect constructor since it is a static only class - */ - protected Assert() { - } - - /** - * Asserts that a condition is true. If it isn't it throws - * an AssertionFailedError with the given message. - */ - static public void assertTrue(String message, boolean condition) { - if (!condition) - fail(message); - } - /** - * Asserts that a condition is true. If it isn't it throws - * an AssertionFailedError. - */ - static public void assertTrue(boolean condition) { - assertTrue(null, condition); - } - /** - * Asserts that a condition is false. If it isn't it throws - * an AssertionFailedError with the given message. - */ - static public void assertFalse(String message, boolean condition) { - assertTrue(message, !condition); - } - /** - * Asserts that a condition is false. If it isn't it throws - * an AssertionFailedError. - */ - static public void assertFalse(boolean condition) { - assertFalse(null, condition); - } - /** - * Fails a test with the given message. - */ - static public void fail(String message) { - throw new AssertionFailedError(message); - } - /** - * Fails a test with no message. - */ - static public void fail() { - fail(null); - } - /** - * Asserts that two objects are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, Object expected, Object actual) { - if (expected == null && actual == null) - return; - if (expected != null && expected.equals(actual)) - return; - failNotEquals(message, expected, actual); - } - /** - * Asserts that two objects are equal. If they are not - * an AssertionFailedError is thrown. - */ - static public void assertEquals(Object expected, Object actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two Strings are equal. - */ - static public void assertEquals(String message, String expected, String actual) { - if (expected == null && actual == null) - return; - if (expected != null && expected.equals(actual)) - return; - throw new ComparisonFailure(message, expected, actual); - } - /** - * Asserts that two Strings are equal. - */ - static public void assertEquals(String expected, String actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two doubles are equal concerning a delta. If they are not - * an AssertionFailedError is thrown with the given message. If the expected - * value is infinity then the delta value is ignored. - */ - static public void assertEquals(String message, double expected, double actual, double delta) { - // handle infinity specially since subtracting to infinite values gives NaN and the - // the following test fails - if (Double.isInfinite(expected)) { - if (!(expected == actual)) - failNotEquals(message, new Double(expected), new Double(actual)); - } else if (!(Math.abs(expected-actual) <= delta)) // Because comparison with NaN always returns false - failNotEquals(message, new Double(expected), new Double(actual)); - } - /** - * Asserts that two doubles are equal concerning a delta. If the expected - * value is infinity then the delta value is ignored. - */ - static public void assertEquals(double expected, double actual, double delta) { - assertEquals(null, expected, actual, delta); - } - /** - * Asserts that two floats are equal concerning a delta. If they are not - * an AssertionFailedError is thrown with the given message. If the expected - * value is infinity then the delta value is ignored. - */ - static public void assertEquals(String message, float expected, float actual, float delta) { - // handle infinity specially since subtracting to infinite values gives NaN and the - // the following test fails - if (Float.isInfinite(expected)) { - if (!(expected == actual)) - failNotEquals(message, new Float(expected), new Float(actual)); - } else if (!(Math.abs(expected-actual) <= delta)) - failNotEquals(message, new Float(expected), new Float(actual)); - } - /** - * Asserts that two floats are equal concerning a delta. If the expected - * value is infinity then the delta value is ignored. - */ - static public void assertEquals(float expected, float actual, float delta) { - assertEquals(null, expected, actual, delta); - } - /** - * Asserts that two longs are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, long expected, long actual) { - assertEquals(message, new Long(expected), new Long(actual)); - } - /** - * Asserts that two longs are equal. - */ - static public void assertEquals(long expected, long actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two booleans are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, boolean expected, boolean actual) { - assertEquals(message, new Boolean(expected), new Boolean(actual)); - } - /** - * Asserts that two booleans are equal. - */ - static public void assertEquals(boolean expected, boolean actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two bytes are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, byte expected, byte actual) { - assertEquals(message, new Byte(expected), new Byte(actual)); - } - /** - * Asserts that two bytes are equal. - */ - static public void assertEquals(byte expected, byte actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two chars are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, char expected, char actual) { - assertEquals(message, new Character(expected), new Character(actual)); - } - /** - * Asserts that two chars are equal. - */ - static public void assertEquals(char expected, char actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two shorts are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, short expected, short actual) { - assertEquals(message, new Short(expected), new Short(actual)); - } - /** - * Asserts that two shorts are equal. - */ - static public void assertEquals(short expected, short actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that two ints are equal. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertEquals(String message, int expected, int actual) { - assertEquals(message, new Integer(expected), new Integer(actual)); - } - /** - * Asserts that two ints are equal. - */ - static public void assertEquals(int expected, int actual) { - assertEquals(null, expected, actual); - } - /** - * Asserts that an object isn't null. - */ - static public void assertNotNull(Object object) { - assertNotNull(null, object); - } - /** - * Asserts that an object isn't null. If it is - * an AssertionFailedError is thrown with the given message. - */ - static public void assertNotNull(String message, Object object) { - assertTrue(message, object != null); - } - /** - * Asserts that an object is null. - */ - static public void assertNull(Object object) { - assertNull(null, object); - } - /** - * Asserts that an object is null. If it is not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertNull(String message, Object object) { - assertTrue(message, object == null); - } - /** - * Asserts that two objects refer to the same object. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertSame(String message, Object expected, Object actual) { - if (expected == actual) - return; - failNotSame(message, expected, actual); - } - /** - * Asserts that two objects refer to the same object. If they are not - * the same an AssertionFailedError is thrown. - */ - static public void assertSame(Object expected, Object actual) { - assertSame(null, expected, actual); - } - /** - * Asserts that two objects refer to the same object. If they are not - * an AssertionFailedError is thrown with the given message. - */ - static public void assertNotSame(String message, Object expected, Object actual) { - if (expected == actual) - failSame(message); - } - /** - * Asserts that two objects refer to the same object. If they are not - * the same an AssertionFailedError is thrown. - */ - static public void assertNotSame(Object expected, Object actual) { - assertNotSame(null, expected, actual); - } - - static private void failSame(String message) { - String formatted= ""; - if (message != null) - formatted= message+" "; - fail(formatted+"expected not same"); - } - - static private void failNotSame(String message, Object expected, Object actual) { - String formatted= ""; - if (message != null) - formatted= message+" "; - fail(formatted+"expected same:<"+expected+"> was not:<"+actual+">"); - } - - static private void failNotEquals(String message, Object expected, Object actual) { - fail(format(message, expected, actual)); - } - - static String format(String message, Object expected, Object actual) { - String formatted= ""; - if (message != null) - formatted= message+" "; - return formatted+"expected:<"+expected+"> but was:<"+actual+">"; - } -} diff --git a/tests/021-string2/src/junit/framework/AssertionFailedError.java b/tests/021-string2/src/junit/framework/AssertionFailedError.java deleted file mode 100644 index e9cb3a385..000000000 --- a/tests/021-string2/src/junit/framework/AssertionFailedError.java +++ /dev/null @@ -1,13 +0,0 @@ -package junit.framework; - -/** - * Thrown when an assertion failed. - */ -public class AssertionFailedError extends Error { - - public AssertionFailedError () { - } - public AssertionFailedError (String message) { - super (message); - } -} diff --git a/tests/021-string2/src/junit/framework/ComparisonFailure.java b/tests/021-string2/src/junit/framework/ComparisonFailure.java deleted file mode 100644 index a0ad17611..000000000 --- a/tests/021-string2/src/junit/framework/ComparisonFailure.java +++ /dev/null @@ -1,68 +0,0 @@ -package junit.framework; - -/** - * Thrown when an assert equals for Strings failed. - * - * Inspired by a patch from Alex Chaffee mailto:alex@purpletech.com - */ -public class ComparisonFailure extends AssertionFailedError { - private String fExpected; - private String fActual; - - /** - * Constructs a comparison failure. - * @param message the identifying message or null - * @param expected the expected string value - * @param actual the actual string value - */ - public ComparisonFailure (String message, String expected, String actual) { - super (message); - fExpected= expected; - fActual= actual; - } - - /** - * Returns "..." in place of common prefix and "..." in - * place of common suffix between expected and actual. - * - * @see java.lang.Throwable#getMessage() - */ - public String getMessage() { - if (fExpected == null || fActual == null) - return Assert.format(super.getMessage(), fExpected, fActual); - - int end= Math.min(fExpected.length(), fActual.length()); - - int i= 0; - for(; i < end; i++) { - if (fExpected.charAt(i) != fActual.charAt(i)) - break; - } - int j= fExpected.length()-1; - int k= fActual.length()-1; - for (; k >= i && j >= i; k--,j--) { - if (fExpected.charAt(j) != fActual.charAt(k)) - break; - } - String actual, expected; - - // equal strings - if (j < i && k < i) { - expected= fExpected; - actual= fActual; - } else { - expected= fExpected.substring(i, j+1); - actual= fActual.substring(i, k+1); - if (i <= end && i > 0) { - expected= "..."+expected; - actual= "..."+actual; - } - - if (j < fExpected.length()-1) - expected= expected+"..."; - if (k < fActual.length()-1) - actual= actual+"..."; - } - return Assert.format(super.getMessage(), expected, actual); - } -} diff --git a/tests/022-interface/expected.txt b/tests/022-interface/expected.txt deleted file mode 100644 index 121266345..000000000 --- a/tests/022-interface/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -ImplBSub intf: 205 -ImplA: 7 diff --git a/tests/022-interface/info.txt b/tests/022-interface/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/022-interface/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/022-interface/src/Iface1.java b/tests/022-interface/src/Iface1.java deleted file mode 100644 index 12dcfe78b..000000000 --- a/tests/022-interface/src/Iface1.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2005 The Android Open Source Project - -/** - * Test stuff. - */ -public interface Iface1 { - - public int iFunc1(int ii); - - public float mFloaty = 5.0f; - - public String mWahoo = new String("wahoo"); -} - diff --git a/tests/022-interface/src/Iface2.java b/tests/022-interface/src/Iface2.java deleted file mode 100644 index 6f8c2622b..000000000 --- a/tests/022-interface/src/Iface2.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2 { - - public int iFunc2(int ii); -} - diff --git a/tests/022-interface/src/Iface2Sub1.java b/tests/022-interface/src/Iface2Sub1.java deleted file mode 100644 index 83c879102..000000000 --- a/tests/022-interface/src/Iface2Sub1.java +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Another interface. - */ -public interface Iface2Sub1 extends Iface2, Cloneable { - - //public int iFunc2(int ii); -} - diff --git a/tests/022-interface/src/ImplA.java b/tests/022-interface/src/ImplA.java deleted file mode 100644 index 9949d010f..000000000 --- a/tests/022-interface/src/ImplA.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplA implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+1; - } - public int iFunc2(int ii) { - return ii+2; - } -} - diff --git a/tests/022-interface/src/ImplB.java b/tests/022-interface/src/ImplB.java deleted file mode 100644 index b3a0c896c..000000000 --- a/tests/022-interface/src/ImplB.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Blah. - */ -public class ImplB implements Iface1, Iface2 { - - public int iFunc1(int ii) { - return ii+10; - } - public int iFunc2(int ii) { - return ii+20; - } - - public static String mWhoami = new String("ImplB!"); -} - diff --git a/tests/022-interface/src/ImplBSub.java b/tests/022-interface/src/ImplBSub.java deleted file mode 100644 index f3a771442..000000000 --- a/tests/022-interface/src/ImplBSub.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Interface test. - */ -public class ImplBSub extends ImplB implements /*Iface2,*/ Iface2Sub1 { - - public int iFunc1(int ii) { - return ii+100; - } - public int iFunc2(int ii) { - return ii+200; - } -} diff --git a/tests/022-interface/src/Main.java b/tests/022-interface/src/Main.java deleted file mode 100644 index 9151e89d1..000000000 --- a/tests/022-interface/src/Main.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * test calling through an interface - */ -public class Main { - public static void main(String args[]) { - int result = 0; - Iface2Sub1 faceObj; - ImplA faceObj2; - - faceObj = new ImplBSub(); - - result = faceObj.iFunc2(5); - System.out.print("ImplBSub intf: "); - System.out.println(result); - - faceObj2 = new ImplA(); - result = faceObj2.iFunc2(5); - System.out.print("ImplA: "); - System.out.println(result); - } -} diff --git a/tests/023-many-interfaces/build b/tests/023-many-interfaces/build deleted file mode 100644 index fc81d62d8..000000000 --- a/tests/023-many-interfaces/build +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Stop if something fails. -set -e - -# Write out a bunch of interface source files. -gcc -o iface-gen iface-gen.c -./iface-gen - -mkdir classes -${JAVAC} -d classes src/*.java - -dx --debug --dex --dump-to=classes.lst --output=classes.dex classes -zip test.jar classes.dex diff --git a/tests/023-many-interfaces/expected.txt b/tests/023-many-interfaces/expected.txt deleted file mode 100644 index c6a0c6179..000000000 --- a/tests/023-many-interfaces/expected.txt +++ /dev/null @@ -1,9 +0,0 @@ -testIface001: done -testIface049: done -testIface099: done -testVirt001: done -testVirt049: done -testVirt099: done -testInst001: done -testInst049: done -testInst099: done diff --git a/tests/023-many-interfaces/iface-gen.c b/tests/023-many-interfaces/iface-gen.c deleted file mode 100644 index 313de698d..000000000 --- a/tests/023-many-interfaces/iface-gen.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2006 The Android Open Source Project - * - * Generate a big pile of interface classes. - */ -#include <stdio.h> - -/* - * Create N interface files. - */ -static int createFiles(int count) -{ - FILE* fp; - int i; - - for (i = 0; i < count; i++) { - char nameBuf[32]; - - sprintf(nameBuf, "src/Interface%03d.java", i); - fp = fopen(nameBuf, "w"); - if (fp == NULL) { - fprintf(stderr, "ERROR: unable to open %s\n", nameBuf); - return -1; - } - - fprintf(fp, "interface Interface%03d {\n", i); - if ((i & 0x01) != 0) - fprintf(fp, " int func%03d();\n", i); - fprintf(fp, "}\n"); - fclose(fp); - } - - fp = fopen("func-decl", "w"); - fprintf(fp, " implements\n"); - for (i = 0; i < count; i++) { - fprintf(fp, " Interface%03d%s\n", i, (i == count-1) ? "" : ","); - } - fprintf(fp, "\n"); - for (i = 1; i < count; i += 2) { - fprintf(fp, " public int func%03d() { return %d; }\n", i, i); - } - fclose(fp); - - return 0; -} - -int main() -{ - int result; - - result = createFiles(100); - - return (result != 0); -} - diff --git a/tests/023-many-interfaces/info.txt b/tests/023-many-interfaces/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/023-many-interfaces/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/023-many-interfaces/src/Main.java b/tests/023-many-interfaces/src/Main.java deleted file mode 100644 index 666a41c9f..000000000 --- a/tests/023-many-interfaces/src/Main.java +++ /dev/null @@ -1,6 +0,0 @@ -public class Main { - static public void main(String[] args) throws Exception { - boolean timing = (args.length >= 1) && args[0].equals("--timing"); - ManyInterfaces.run(timing); - } -} diff --git a/tests/023-many-interfaces/src/ManyInterfaces.java b/tests/023-many-interfaces/src/ManyInterfaces.java deleted file mode 100644 index 3c67f1fcd..000000000 --- a/tests/023-many-interfaces/src/ManyInterfaces.java +++ /dev/null @@ -1,414 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/* -Initial: -test001: 2039901us (4079ns per call) -test049: 3346619us (6693ns per call) -test099: 4687402us (9374ns per call) -testInst001: 1327216us (2654ns per use) -testInst049: 1326995us (2653ns per use) -testInst099: 1327735us (2655ns per use) - -After refactoring cache code: 2871ns per use -After re-refactoring cache code: 2797ns per use - -After de-inlining invoke-interface: -test001: 2164873us (4329ns per call) -test049: 3303884us (6607ns per call) -test099: 4656718us (9313ns per call) -testInst001: 1401731us (2803ns per use) -testInst049: 1401120us (2802ns per use) -testInst099: 1401298us (2802ns per use) - -After adding caching for invoke-interface: -testIface001: 1909330us (3818ns per call) -testIface049: 1905204us (3810ns per call) -testIface099: 1899012us (3798ns per call) -testVirt001: 1825001us (3650ns per call) -testVirt049: 1826161us (3652ns per call) -testVirt099: 1823915us (3647ns per call) -testInst001: 1393963us (2787ns per use) -testInst049: 1393163us (2786ns per use) -testInst099: 1390496us (2780ns per use) - -After repeating each operation 16 times inside the inner loop: -testIface001: 1429472us (2726ns per call) * 2382ns -testIface049: 1427847us (2723ns per call) * 2396ns -testIface099: 1423707us (2715ns per call) * 2387ns -testVirt001: 1277790us (2437ns per call) * 2118ns -testVirt049: 1280276us (2441ns per call) * 2119ns -testVirt099: 1272640us (2427ns per call) * 2118ns -testInst001: 844694us (1611ns per use) * 1396ns -testInst049: 845619us (1612ns per use) * 1395ns -testInst099: 845526us (1612ns per use) * 1394ns -('*' is with dx optimizations enabled) -*/ - -/** - * Semi-generated class with many interfaces. - */ -public class ManyInterfaces - implements - Interface000, - Interface001, - Interface002, - Interface003, - Interface004, - Interface005, - Interface006, - Interface007, - Interface008, - Interface009, - Interface010, - Interface011, - Interface012, - Interface013, - Interface014, - Interface015, - Interface016, - Interface017, - Interface018, - Interface019, - Interface020, - Interface021, - Interface022, - Interface023, - Interface024, - Interface025, - Interface026, - Interface027, - Interface028, - Interface029, - Interface030, - Interface031, - Interface032, - Interface033, - Interface034, - Interface035, - Interface036, - Interface037, - Interface038, - Interface039, - Interface040, - Interface041, - Interface042, - Interface043, - Interface044, - Interface045, - Interface046, - Interface047, - Interface048, - Interface049, - Interface050, - Interface051, - Interface052, - Interface053, - Interface054, - Interface055, - Interface056, - Interface057, - Interface058, - Interface059, - Interface060, - Interface061, - Interface062, - Interface063, - Interface064, - Interface065, - Interface066, - Interface067, - Interface068, - Interface069, - Interface070, - Interface071, - Interface072, - Interface073, - Interface074, - Interface075, - Interface076, - Interface077, - Interface078, - Interface079, - Interface080, - Interface081, - Interface082, - Interface083, - Interface084, - Interface085, - Interface086, - Interface087, - Interface088, - Interface089, - Interface090, - Interface091, - Interface092, - Interface093, - Interface094, - Interface095, - Interface096, - Interface097, - Interface098, - Interface099 -{ - /** whether to report timing information */ - private static boolean timing = false; - - /** - * Report on a section. - */ - private static void report(String label, long start, long end, int iter, - int rept) { - if (timing) { - System.out.println(label + ": " + (end - start) / 1000 + "us" - + " (" + (end - start) / (iter*rept) + "ns per call)"); - } else { - System.out.println(label + ": done"); - } - } - - /** - * Run tests. - * - * @param timing whether to print out timing info - */ - public static void run(boolean timing) { - ManyInterfaces.timing = timing; - ManyInterfaces obj = new ManyInterfaces(); - Interface001 one; - Interface049 forty; - Interface099 ninety; - long start, end; - int iter = 32768; - int rept = 16; - int i; - - /* - * Clear the heap. The various classes involved should already - * be loaded and ready as a result of instantiating ManyInterfaces. - */ - System.gc(); - - start = System.nanoTime(); - testIface001(obj, iter); - end = System.nanoTime(); - report("testIface001", start, end, iter, rept); - - start = System.nanoTime(); - testIface049(obj, iter); - end = System.nanoTime(); - report("testIface049", start, end, iter, rept); - - start = System.nanoTime(); - testIface099(obj, iter); - end = System.nanoTime(); - report("testIface099", start, end, iter, rept); - - start = System.nanoTime(); - testVirt001(obj, iter); - end = System.nanoTime(); - report("testVirt001", start, end, iter, rept); - - start = System.nanoTime(); - testVirt049(obj, iter); - end = System.nanoTime(); - report("testVirt049", start, end, iter, rept); - - start = System.nanoTime(); - testVirt099(obj, iter); - end = System.nanoTime(); - report("testVirt099", start, end, iter, rept); - - start = System.nanoTime(); - testInstance001(obj, iter); - end = System.nanoTime(); - report("testInst001", start, end, iter, rept); - - start = System.nanoTime(); - testInstance049(obj, iter); - end = System.nanoTime(); - report("testInst049", start, end, iter, rept); - - start = System.nanoTime(); - testInstance099(obj, iter); - end = System.nanoTime(); - report("testInst099", start, end, iter, rept); - } - - public int func001() { return 1; } - public int func003() { return 3; } - public int func005() { return 5; } - public int func007() { return 7; } - public int func009() { return 9; } - public int func011() { return 11; } - public int func013() { return 13; } - public int func015() { return 15; } - public int func017() { return 17; } - public int func019() { return 19; } - public int func021() { return 21; } - public int func023() { return 23; } - public int func025() { return 25; } - public int func027() { return 27; } - public int func029() { return 29; } - public int func031() { return 31; } - public int func033() { return 33; } - public int func035() { return 35; } - public int func037() { return 37; } - public int func039() { return 39; } - public int func041() { return 41; } - public int func043() { return 43; } - public int func045() { return 45; } - public int func047() { return 47; } - public int func049() { return 49; } - public int func051() { return 51; } - public int func053() { return 53; } - public int func055() { return 55; } - public int func057() { return 57; } - public int func059() { return 59; } - public int func061() { return 61; } - public int func063() { return 63; } - public int func065() { return 65; } - public int func067() { return 67; } - public int func069() { return 69; } - public int func071() { return 71; } - public int func073() { return 73; } - public int func075() { return 75; } - public int func077() { return 77; } - public int func079() { return 79; } - public int func081() { return 81; } - public int func083() { return 83; } - public int func085() { return 85; } - public int func087() { return 87; } - public int func089() { return 89; } - public int func091() { return 91; } - public int func093() { return 93; } - public int func095() { return 95; } - public int func097() { return 97; } - public int func099() { return 99; } - - static void testIface001(Interface001 iface, int count) { - while (count-- != 0) { - iface.func001(); iface.func001(); iface.func001(); iface.func001(); - iface.func001(); iface.func001(); iface.func001(); iface.func001(); - iface.func001(); iface.func001(); iface.func001(); iface.func001(); - iface.func001(); iface.func001(); iface.func001(); iface.func001(); - } - } - - static void testIface049(Interface049 iface, int count) { - while (count-- != 0) { - iface.func049(); iface.func049(); iface.func049(); iface.func049(); - iface.func049(); iface.func049(); iface.func049(); iface.func049(); - iface.func049(); iface.func049(); iface.func049(); iface.func049(); - iface.func049(); iface.func049(); iface.func049(); iface.func049(); - } - } - - static void testIface099(Interface099 iface, int count) { - while (count-- != 0) { - iface.func099(); iface.func099(); iface.func099(); iface.func099(); - iface.func099(); iface.func099(); iface.func099(); iface.func099(); - iface.func099(); iface.func099(); iface.func099(); iface.func099(); - iface.func099(); iface.func099(); iface.func099(); iface.func099(); - } - } - - static void testVirt001(ManyInterfaces obj, int count) { - while (count-- != 0) { - obj.func001(); obj.func001(); obj.func001(); obj.func001(); - obj.func001(); obj.func001(); obj.func001(); obj.func001(); - obj.func001(); obj.func001(); obj.func001(); obj.func001(); - obj.func001(); obj.func001(); obj.func001(); obj.func001(); - } - } - - static void testVirt049(ManyInterfaces obj, int count) { - while (count-- != 0) { - obj.func049(); obj.func049(); obj.func049(); obj.func049(); - obj.func049(); obj.func049(); obj.func049(); obj.func049(); - obj.func049(); obj.func049(); obj.func049(); obj.func049(); - obj.func049(); obj.func049(); obj.func049(); obj.func049(); - } - } - - static void testVirt099(ManyInterfaces obj, int count) { - while (count-- != 0) { - obj.func099(); obj.func099(); obj.func099(); obj.func099(); - obj.func099(); obj.func099(); obj.func099(); obj.func099(); - obj.func099(); obj.func099(); obj.func099(); obj.func099(); - obj.func099(); obj.func099(); obj.func099(); obj.func099(); - } - } - - static void testInstance001(Object obj, int count) { - if (!(obj instanceof Interface001)) - System.err.println("BAD"); - while (count-- != 0) { - boolean is; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - is = obj instanceof Interface001; - } - } - - static void testInstance049(Object obj, int count) { - if (!(obj instanceof Interface049)) - System.err.println("BAD"); - while (count-- != 0) { - boolean is; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - is = obj instanceof Interface049; - } - } - - static void testInstance099(Object obj, int count) { - if (!(obj instanceof Interface099)) - System.err.println("BAD"); - while (count-- != 0) { - boolean is; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - is = obj instanceof Interface099; - } - } -} - diff --git a/tests/024-illegal-access/expected.txt b/tests/024-illegal-access/expected.txt deleted file mode 100644 index 5f951f493..000000000 --- a/tests/024-illegal-access/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -Got expected failure 1 -Got expected failure 2 diff --git a/tests/024-illegal-access/info.txt b/tests/024-illegal-access/info.txt deleted file mode 100644 index 16a284dac..000000000 --- a/tests/024-illegal-access/info.txt +++ /dev/null @@ -1,3 +0,0 @@ -Test that an attempt to access a private field results in a verification -error. Also try to access a non-public class in a different package with -"instanceof". diff --git a/tests/024-illegal-access/src/CheckInstanceof.java b/tests/024-illegal-access/src/CheckInstanceof.java deleted file mode 100644 index de48cd2d2..000000000 --- a/tests/024-illegal-access/src/CheckInstanceof.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Make sure we're performing access checks on classes used in "instanceof". - */ -public class CheckInstanceof { - public static void main(Object obj) { - if (obj instanceof otherpkg.Package) - System.out.println("yes!"); - else - System.out.println("no!"); - } -} diff --git a/tests/024-illegal-access/src/Main.java b/tests/024-illegal-access/src/Main.java deleted file mode 100644 index bde73e945..000000000 --- a/tests/024-illegal-access/src/Main.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class Main { - static public void main(String[] args) { - try { - PublicAccess.main(); - System.err.println("ERROR: call 1 not expected to succeed"); - } catch (VerifyError ve) { - // dalvik - System.out.println("Got expected failure 1"); - } catch (IllegalAccessError iae) { - // reference - System.out.println("Got expected failure 1"); - } - - try { - CheckInstanceof.main(new Object()); - System.err.println("ERROR: call 2 not expected to succeed"); - } catch (VerifyError ve) { - // dalvik - System.out.println("Got expected failure 2"); - } catch (IllegalAccessError iae) { - // reference - System.out.println("Got expected failure 2"); - } - } -} diff --git a/tests/024-illegal-access/src/PublicAccess.java b/tests/024-illegal-access/src/PublicAccess.java deleted file mode 100644 index fdc0e9e70..000000000 --- a/tests/024-illegal-access/src/PublicAccess.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Some stuff for access checks. - */ -public class PublicAccess { - public static void main() { - String shouldFail = SemiPrivate.mPrivvy; - System.out.println("Got " + shouldFail); - } -} diff --git a/tests/024-illegal-access/src/SemiPrivate.java b/tests/024-illegal-access/src/SemiPrivate.java deleted file mode 100644 index cc7f2d8b3..000000000 --- a/tests/024-illegal-access/src/SemiPrivate.java +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Version with package scope access. - */ -public class SemiPrivate { - /* not private */ static String mPrivvy = "stuff"; -} - diff --git a/tests/024-illegal-access/src/otherpkg/Package.java b/tests/024-illegal-access/src/otherpkg/Package.java deleted file mode 100644 index a82b32149..000000000 --- a/tests/024-illegal-access/src/otherpkg/Package.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package otherpkg; - -/* - * Package-scope class (public here). - */ -public class Package { -} - diff --git a/tests/024-illegal-access/src2/SemiPrivate.java b/tests/024-illegal-access/src2/SemiPrivate.java deleted file mode 100644 index 6bdf61026..000000000 --- a/tests/024-illegal-access/src2/SemiPrivate.java +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Version with private access. - */ -public class SemiPrivate { - private static String mPrivvy = "stuff"; -} - diff --git a/tests/024-illegal-access/src2/otherpkg/Package.java b/tests/024-illegal-access/src2/otherpkg/Package.java deleted file mode 100644 index 7f740d4c5..000000000 --- a/tests/024-illegal-access/src2/otherpkg/Package.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package otherpkg; - -/* - * Package-scope class. - */ -class Package { -} - diff --git a/tests/025-access-controller/expected.txt b/tests/025-access-controller/expected.txt deleted file mode 100644 index 75cfc9971..000000000 --- a/tests/025-access-controller/expected.txt +++ /dev/null @@ -1 +0,0 @@ -AccessControllerTest: got 39 diff --git a/tests/025-access-controller/info.txt b/tests/025-access-controller/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/025-access-controller/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/025-access-controller/src/Main.java b/tests/025-access-controller/src/Main.java deleted file mode 100644 index 84dc05771..000000000 --- a/tests/025-access-controller/src/Main.java +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.security.AccessController; - -/** - * Test java.security.AccessController. - */ -public class Main { - public static void main(String[] args) { - Privvy priv = new Privvy(38); - Integer result = AccessController.doPrivileged(priv); - System.out.println("AccessControllerTest: got " + result); - } -} diff --git a/tests/025-access-controller/src/Privvy.java b/tests/025-access-controller/src/Privvy.java deleted file mode 100644 index d8027a183..000000000 --- a/tests/025-access-controller/src/Privvy.java +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.ProtectionDomain; - -class Privvy implements PrivilegedAction<Integer> { - - private Integer mValue; - - public Privvy(int val) { - mValue = new Integer(val + 1); - } - - public Integer run() { - return mValue; - } -} - diff --git a/tests/026-access/expected.txt b/tests/026-access/expected.txt deleted file mode 100644 index dabfb37aa..000000000 --- a/tests/026-access/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -access test -Blort. diff --git a/tests/026-access/info.txt b/tests/026-access/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/026-access/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/026-access/src/Main.java b/tests/026-access/src/Main.java deleted file mode 100644 index 96282598f..000000000 --- a/tests/026-access/src/Main.java +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -import otherpackage.PublicAccess; - -public class Main { - public static void main(String[] args) { - System.out.println("access test"); - - PublicAccess pa = new PublicAccess(); - pa.main(); - } -} diff --git a/tests/026-access/src/otherpackage/PublicAccess.java b/tests/026-access/src/otherpackage/PublicAccess.java deleted file mode 100644 index 996fa769e..000000000 --- a/tests/026-access/src/otherpackage/PublicAccess.java +++ /dev/null @@ -1,7 +0,0 @@ -package otherpackage; - -public class PublicAccess { - static public void main() { - System.out.println("Blort."); - } -} diff --git a/tests/027-arithmetic/expected.txt b/tests/027-arithmetic/expected.txt deleted file mode 100644 index 2dadf10d9..000000000 --- a/tests/027-arithmetic/expected.txt +++ /dev/null @@ -1,18 +0,0 @@ -f=1234.5677 --> i=1234 -f=-1234.5677 --> i=-1234 -d=1234.5678 --> i=1234 -d=-1234.5678 --> i=-1234 -d=5.6789567890123E9 --> l=5678956789 -d=-5.6789567890123E9 --> l=-5678956789 -i=7654 --> l=7654 -i=-7654 --> l=-7654 -l=5678956789 --> i=1383989493 -l=-5678956789 --> i=-1383989493 -i=1234 --> f=1234.0 -i=-1234 --> f=-1234.0 -values are 44332211 and bbaa9988 -First l is bbaa998844332211 -Second l is bbaa998844332211 -shiftTest2 l is 1122334455667788 -b=-1, s=-1, c=4095, i=268435455 -b=0xffffffff, s=0xffffffff, c=0xfff, i=0xfffffff diff --git a/tests/027-arithmetic/info.txt b/tests/027-arithmetic/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/027-arithmetic/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/027-arithmetic/src/Main.java b/tests/027-arithmetic/src/Main.java deleted file mode 100644 index 6299eedbb..000000000 --- a/tests/027-arithmetic/src/Main.java +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test arithmetic operations. - */ -public class Main { - - static void shiftTest1() - { - final int[] mBytes = { - 0x11, 0x22, 0x33, 0x44, 0x88, 0x99, 0xaa, 0xbb - }; - long l; - int i1, i2; - - i1 = mBytes[0] | mBytes[1] << 8 | mBytes[2] << 16 | mBytes[3] << 24; - i2 = mBytes[4] | mBytes[5] << 8 | mBytes[6] << 16 | mBytes[7] << 24; - l = i1 | ((long)i2 << 32); - - System.out.println("values are " + Integer.toHexString(i1) - + " and " + Integer.toHexString(i2)); - - System.out.println("First l is " + Long.toHexString(l)); - - l = (long)mBytes[0] - | (long)mBytes[1] << 8 - | (long)mBytes[2] << 16 - | (long)mBytes[3] << 24 - | (long)mBytes[4] << 32 - | (long)mBytes[5] << 40 - | (long)mBytes[6] << 48 - | (long)mBytes[7] << 56; - - System.out.println("Second l is " + Long.toHexString(l)); - } - - static void shiftTest2() - { - long a = 0x11; - long b = 0x22; - long c = 0x33; - long d = 0x44; - long e = 0x55; - long f = 0x66; - long g = 0x77; - long h = 0x88; - - long result = ((a << 56) | (b << 48) | (c << 40) | (d << 32) | - (e << 24) | (f << 16) | (g << 8) | h); - - System.out.println("shiftTest2 l is " + Long.toHexString(result)); - } - - static void convTest() - { - float f; - double d; - int i; - long l; - - /* float --> int */ - f = 1234.5678f; - i = (int) f; - System.out.println("f=" + f + " --> i=" + i); - - f = -1234.5678f; - i = (int) f; - System.out.println("f=" + f + " --> i=" + i); - - /* double --> int */ - d = 1234.5678; - i = (int) d; - System.out.println("d=" + d + " --> i=" + i); - - d = -1234.5678; - i = (int) d; - System.out.println("d=" + d + " --> i=" + i); - - /* double --> long */ - d = 5678956789.0123; - l = (long) d; - System.out.println("d=" + d + " --> l=" + l); - - d = -5678956789.0123; - l = (long) d; - System.out.println("d=" + d + " --> l=" + l); - - /* int --> long */ - i = 7654; - l = (long) i; - System.out.println("i=" + i + " --> l=" + l); - - i = -7654; - l = (long) i; - System.out.println("i=" + i + " --> l=" + l); - - /* long --> int (with truncation) */ - l = 5678956789L; - i = (int) l; - System.out.println("l=" + l + " --> i=" + i); - - l = -5678956789L; - i = (int) l; - System.out.println("l=" + l + " --> i=" + i); - - /* int --> float */ - i = 1234; - f = (float) i; - System.out.println("i=" + i + " --> f=" + f); - - i = -1234; - f = (float) i; - System.out.println("i=" + i + " --> f=" + f); - } - - static void unsignedShiftTest() - { - byte b = -4; - short s = -4; - char c = 0xfffc; - int i = -4; - - b >>>= 4; - s >>>= 4; - c >>>= 4; - i >>>= 4; - - System.out.println("b=" + b + ", s=" + s + ", c=" + (int)c + ", i=" +i); - System.out.println("b=0x" + Integer.toHexString((int)b) - + ", s=0x" + Integer.toHexString((int)s) - + ", c=0x" + Integer.toHexString((int)c) - + ", i=0x" + Integer.toHexString(i)); - } - - public static void main(String[] args) { - convTest(); - shiftTest1(); - shiftTest2(); - unsignedShiftTest(); - } -} - diff --git a/tests/028-array-write/expected.txt b/tests/028-array-write/expected.txt deleted file mode 100644 index 85986b5eb..000000000 --- a/tests/028-array-write/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Running writeTest... -Running copyTest... -Done! diff --git a/tests/028-array-write/info.txt b/tests/028-array-write/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/028-array-write/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/028-array-write/src/Main.java b/tests/028-array-write/src/Main.java deleted file mode 100644 index c9181f1e9..000000000 --- a/tests/028-array-write/src/Main.java +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Array write speed test. - */ -public class Main { - /** whether to report times */ - static boolean timing = false; - - static final int STORAGE_SIZE = 128*1024; - static int[] mStorage = new int[STORAGE_SIZE]; - - static public void report(long start, long end) { - if (! timing) { - return; - } - - System.out.println("Finished in " + ((end - start) / 1000000.0) - + " msec"); - } - - static void writeArray(int val) { - for (int i = STORAGE_SIZE-1; i >= 0; i--) - mStorage[i] = val; - } - - static void writeTest() { - long start, end; - - writeArray(0); // touch all the memory - - System.out.println("Running writeTest..."); - start = System.nanoTime(); - for (int i = 1; i < 20; i++) - writeArray(i); - end = System.nanoTime(); - - report(start, end); - } - - static void copyTest() { - long start, end; - - // touch once - System.arraycopy(mStorage, 0, mStorage, - STORAGE_SIZE/2, STORAGE_SIZE/2); - - System.out.println("Running copyTest..."); - start = System.nanoTime(); - for (int i = 1; i < 35; i++) { - System.arraycopy(mStorage, 0, mStorage, - STORAGE_SIZE/2, STORAGE_SIZE/2); - } - end = System.nanoTime(); - - report(start, end); - } - - public static void main(String[] args) { - if ((args.length >= 1) && args[0].equals("--timing")) { - timing = true; - } - - writeTest(); - copyTest(); - System.out.println("Done!"); - } -} - diff --git a/tests/029-assert/expected.txt b/tests/029-assert/expected.txt deleted file mode 100644 index bf0efeccf..000000000 --- a/tests/029-assert/expected.txt +++ /dev/null @@ -1 +0,0 @@ -caught expected assert exception diff --git a/tests/029-assert/info.txt b/tests/029-assert/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/029-assert/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/029-assert/src/Main.java b/tests/029-assert/src/Main.java deleted file mode 100644 index efa10f72d..000000000 --- a/tests/029-assert/src/Main.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Test Java language asserts. - */ -public class Main { - public static void main(String[] args) { - assert true; - try { - assert false; - System.out.println("GLITCH: didn't assert (is '-ea' set?)"); - } catch (AssertionError ae) { - System.out.println("caught expected assert exception"); - } - } -} - diff --git a/tests/030-bad-finalizer/expected.txt b/tests/030-bad-finalizer/expected.txt deleted file mode 100644 index 6e91dcc94..000000000 --- a/tests/030-bad-finalizer/expected.txt +++ /dev/null @@ -1,8 +0,0 @@ -Constructed object. -Nulled. Requestion gc. -Finalizer started and spinning... -Finalizer done spinning. -Finalizer sleeping forever now. -Requesting another GC. -Requesting another GC. -(segfault) diff --git a/tests/030-bad-finalizer/info.txt b/tests/030-bad-finalizer/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/030-bad-finalizer/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/030-bad-finalizer/run b/tests/030-bad-finalizer/run deleted file mode 100644 index 6e029466c..000000000 --- a/tests/030-bad-finalizer/run +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -${RUN} "$@" > original-output.txt - -cat original-output.txt | awk ' -/Segmentation fault/ { - # ignore the details of the line - print "(segfault)" - next; -} -{ - print; -}' diff --git a/tests/030-bad-finalizer/src/BadFinalizer.java b/tests/030-bad-finalizer/src/BadFinalizer.java deleted file mode 100644 index 25aee3f4f..000000000 --- a/tests/030-bad-finalizer/src/BadFinalizer.java +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Class with a bad finalizer. - */ -public class BadFinalizer { - public static void snooze(int ms) { - try { - Thread.sleep(ms); - } catch (InterruptedException ie) { - System.out.println("Snooze: " + ie.getMessage()); - } - } - - protected void finalize() { - System.out.println("Finalizer started and spinning..."); - int j = 0; - - /* spin for a bit */ - long start, end; - start = System.nanoTime(); - for (int i = 0; i < 1000000; i++) - j++; - end = System.nanoTime(); - System.out.println("Finalizer done spinning."); - - System.out.println("Finalizer sleeping forever now."); - while (true) { - snooze(10000); - } - } -} - diff --git a/tests/030-bad-finalizer/src/Main.java b/tests/030-bad-finalizer/src/Main.java deleted file mode 100644 index 542020ec5..000000000 --- a/tests/030-bad-finalizer/src/Main.java +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Test a class with a bad finalizer. - */ -public class Main { - public static void main(String[] args) { - BadFinalizer bf = new BadFinalizer(); - - System.out.println("Constructed object."); - bf = null; - - System.out.println("Nulled. Requestion gc."); - System.gc(); - - for (int i = 0; i < 8; i++) { - BadFinalizer.snooze(5000); - System.out.println("Requesting another GC."); - System.gc(); - } - - System.out.println("Done waiting."); - System.exit(0); - } -} - diff --git a/tests/031-class-attributes/expected.txt b/tests/031-class-attributes/expected.txt deleted file mode 100644 index 47eaeeec2..000000000 --- a/tests/031-class-attributes/expected.txt +++ /dev/null @@ -1,164 +0,0 @@ -***** class ClassAttrs: - name: ClassAttrs - canonical: ClassAttrs - simple: ClassAttrs - genericSignature: null - super: class java.lang.Object - declaring: null - enclosing: null - enclosingCon: null - enclosingMeth: null - modifiers: 1 - package: null - declaredClasses: [2] class ClassAttrs$PublicMemberClass, class ClassAttrs$MemberClass - member classes: [1] class ClassAttrs$PublicMemberClass - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: false - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class OtherClass: - name: OtherClass - canonical: OtherClass - simple: OtherClass - genericSignature: null - super: class java.lang.Object - declaring: null - enclosing: null - enclosingCon: null - enclosingMeth: null - modifiers: 0 - package: null - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: false - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class otherpackage.OtherPackageClass: - name: otherpackage.OtherPackageClass - canonical: otherpackage.OtherPackageClass - simple: OtherPackageClass - genericSignature: null - super: class java.lang.Object - declaring: null - enclosing: null - enclosingCon: null - enclosingMeth: null - modifiers: 1 - package: package otherpackage - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: false - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class ClassAttrs$1InnerNamed: - name: ClassAttrs$1InnerNamed - canonical: null - simple: InnerNamed - genericSignature: null - super: class java.lang.Object - declaring: null - enclosing: class ClassAttrs - enclosingCon: null - enclosingMeth: public static void ClassAttrs.main() - modifiers: 0 - package: null - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: true - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class ClassAttrs$1ConsInnerNamed: - name: ClassAttrs$1ConsInnerNamed - canonical: null - simple: ConsInnerNamed - genericSignature: null - super: class java.lang.Object - declaring: null - enclosing: class ClassAttrs - enclosingCon: ClassAttrs() - enclosingMeth: null - modifiers: 0 - package: null - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: true - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class ClassAttrs$1: - name: ClassAttrs$1 - canonical: null - simple: - genericSignature: null - super: class OtherClass - declaring: null - enclosing: class ClassAttrs - enclosingCon: null - enclosingMeth: public static void ClassAttrs.main() - modifiers: 8 - package: null - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: true - isArray: false - isEnum: false - isInterface: false - isLocalClass: false - isMemberClass: false - isPrimitive: false - isSynthetic: false -***** class ClassAttrs$MemberClass: - name: ClassAttrs$MemberClass - canonical: ClassAttrs.MemberClass - simple: MemberClass - genericSignature: <XYZ:Ljava/lang/Object;>Ljava/lang/Object; - super: class java.lang.Object - declaring: class ClassAttrs - enclosing: class ClassAttrs - enclosingCon: null - enclosingMeth: null - modifiers: 8 - package: null - declaredClasses: [0] - member classes: [0] - isAnnotation: false - isAnonymous: false - isArray: false - isEnum: false - isInterface: false - isLocalClass: false - isMemberClass: true - isPrimitive: false - isSynthetic: false -constructor signature: (LClassAttrs$MemberClass<TXYZ;>;)V -method signature: ()Ljava/lang/Class<TXYZ;>; -field signature: LClassAttrs$MemberClass<TXYZ;>; diff --git a/tests/031-class-attributes/info.txt b/tests/031-class-attributes/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/031-class-attributes/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/031-class-attributes/src/ClassAttrs.java b/tests/031-class-attributes/src/ClassAttrs.java deleted file mode 100644 index 35bd5506d..000000000 --- a/tests/031-class-attributes/src/ClassAttrs.java +++ /dev/null @@ -1,201 +0,0 @@ -import otherpackage.OtherPackageClass; - -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Type; - -public class ClassAttrs { - ClassAttrs() { - /* local, not anonymous, not member */ - class ConsInnerNamed { - public void showMe() { - printClassAttrs(this.getClass()); - } - } - - ConsInnerNamed cinner = new ConsInnerNamed(); - cinner.showMe(); - } - - public static void main() { - printClassAttrs(ClassAttrs.class); - printClassAttrs(OtherClass.class); - printClassAttrs(OtherPackageClass.class); - - /* local, not anonymous, not member */ - class InnerNamed { - public void showMe() { - printClassAttrs(this.getClass()); - } - } - InnerNamed inner = new InnerNamed(); - inner.showMe(); - - ClassAttrs attrs = new ClassAttrs(); - - /* anonymous, not local, not member */ - printClassAttrs((new OtherClass() { int i = 5; }).getClass()); - - /* member, not anonymous, not local */ - printClassAttrs(MemberClass.class); - - try { - Constructor cons; - cons = MemberClass.class.getConstructor( - new Class[] { MemberClass.class }); - System.out.println("constructor signature: " - + getSignatureAttribute(cons)); - - Method meth; - meth = MemberClass.class.getMethod("foo", (Class[]) null); - System.out.println("method signature: " - + getSignatureAttribute(meth)); - - Field field; - field = MemberClass.class.getField("mWha"); - System.out.println("field signature: " - + getSignatureAttribute(field)); - } catch (NoSuchMethodException nsme) { - System.err.println("FAILED: " + nsme); - } catch (NoSuchFieldException nsfe) { - System.err.println("FAILED: " + nsfe); - } catch (RuntimeException re) { - System.err.println("FAILED: " + re); - re.printStackTrace(); - } - } - - /* to call the (out-of-scope) <code>getSignatureAttribute</code> methods */ - public static String getSignatureAttribute(Object obj) { - Method method; - try { - if (obj instanceof AccessibleObject) { - method = AccessibleObject.class.getDeclaredMethod( - "getSignatureAttribute"); - } else { - // Should be a Class. - method = Class.class.getDeclaredMethod( - "getSignatureAttribute"); - } - method.setAccessible(true); - } catch (NoSuchMethodException ex) { - System.err.println("getSignatureAttribute() not defined."); - ex.printStackTrace(); - return "<unknown>"; - } - - try { - return (String) method.invoke(obj); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex); - } catch (InvocationTargetException ex) { - throw new RuntimeException(ex); - } - } - - /* for reflection testing */ - static class MemberClass<XYZ> { - public MemberClass<XYZ> mWha; - - public MemberClass(MemberClass<XYZ> memb) { - mWha = memb; - } - - public Class<XYZ> foo() throws NoSuchMethodException { - return null; - } - } - - /* for reflection testing (getClasses vs getDeclaredClasses) */ - static public class PublicMemberClass { - float mBlah; - } - - /* - * Dump a variety of class attributes. - */ - public static void printClassAttrs(Class clazz) { - final boolean WORKING = false; - Class clazz2; - - System.out.println("***** " + clazz + ":"); - - System.out.println(" name: " - + clazz.getName()); - System.out.println(" canonical: " - + clazz.getCanonicalName()); - System.out.println(" simple: " - + clazz.getSimpleName()); - System.out.println(" genericSignature: " - + getSignatureAttribute(clazz)); - - System.out.println(" super: " - + clazz.getSuperclass()); - if (WORKING) System.out.println(" genericSuperclass: " - + clazz.getGenericSuperclass()); - System.out.println(" declaring: " - + clazz.getDeclaringClass()); - System.out.println(" enclosing: " - + clazz.getEnclosingClass()); - System.out.println(" enclosingCon: " - + clazz.getEnclosingConstructor()); - System.out.println(" enclosingMeth: " - + clazz.getEnclosingMethod()); - System.out.println(" modifiers: " - + clazz.getModifiers()); - System.out.println(" package: " - + clazz.getPackage()); - - System.out.println(" declaredClasses: " - + stringifyTypeArray(clazz.getDeclaredClasses())); - System.out.println(" member classes: " - + stringifyTypeArray(clazz.getClasses())); - - System.out.println(" isAnnotation: " - + clazz.isAnnotation()); - System.out.println(" isAnonymous: " - + clazz.isAnonymousClass()); - System.out.println(" isArray: " - + clazz.isArray()); - System.out.println(" isEnum: " - + clazz.isEnum()); - System.out.println(" isInterface: " - + clazz.isInterface()); - System.out.println(" isLocalClass: " - + clazz.isLocalClass()); - System.out.println(" isMemberClass: " - + clazz.isMemberClass()); - System.out.println(" isPrimitive: " - + clazz.isPrimitive()); - System.out.println(" isSynthetic: " - + clazz.isSynthetic()); - - if (WORKING) System.out.println(" genericInterfaces: " - + stringifyTypeArray(clazz.getGenericInterfaces())); - } - - /* - * Convert an array of Type into a string. Start with an array count. - */ - private static String stringifyTypeArray(Type[] types) { - StringBuilder stb = new StringBuilder(); - boolean first = true; - - stb.append("[" + types.length + "]"); - - for (Type t: types) { - if (first) { - stb.append(" "); - first = false; - } else { - stb.append(", "); - } - stb.append(t.toString()); - } - - return stb.toString(); - } -} diff --git a/tests/031-class-attributes/src/Main.java b/tests/031-class-attributes/src/Main.java deleted file mode 100644 index bc6b74987..000000000 --- a/tests/031-class-attributes/src/Main.java +++ /dev/null @@ -1,5 +0,0 @@ -public class Main { - public static void main(String[] args) { - ClassAttrs.main(); - } -} diff --git a/tests/031-class-attributes/src/OtherClass.java b/tests/031-class-attributes/src/OtherClass.java deleted file mode 100644 index 0b4526e56..000000000 --- a/tests/031-class-attributes/src/OtherClass.java +++ /dev/null @@ -1,2 +0,0 @@ -class OtherClass { -} diff --git a/tests/031-class-attributes/src/otherpackage/OtherPackageClass.java b/tests/031-class-attributes/src/otherpackage/OtherPackageClass.java deleted file mode 100644 index 9652b776a..000000000 --- a/tests/031-class-attributes/src/otherpackage/OtherPackageClass.java +++ /dev/null @@ -1,4 +0,0 @@ -package otherpackage; - -public class OtherPackageClass { -} diff --git a/tests/032-concrete-sub/expected.txt b/tests/032-concrete-sub/expected.txt deleted file mode 100644 index 56f25bb09..000000000 --- a/tests/032-concrete-sub/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -calling abs.doStuff() -In AbstractBase.doStuff (src2) -Got expected exception from abs.doStuff(). -class modifiers=1025 -meth modifiers=1025 -Got expected failure diff --git a/tests/032-concrete-sub/info.txt b/tests/032-concrete-sub/info.txt deleted file mode 100644 index 195699412..000000000 --- a/tests/032-concrete-sub/info.txt +++ /dev/null @@ -1,3 +0,0 @@ -This tests some facets of abstract method handling, notably situations -where a concrete class and its abstract superclass were compiled with -different notions about which methods are abstract. diff --git a/tests/032-concrete-sub/src/AbstractBase.java b/tests/032-concrete-sub/src/AbstractBase.java deleted file mode 100644 index 875303ea0..000000000 --- a/tests/032-concrete-sub/src/AbstractBase.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Abstract base class. - */ -public abstract class AbstractBase { - public void doStuff() { - System.out.println("In AbstractBase.doStuff"); - } - - public void abstractOrNot() {} -} - diff --git a/tests/032-concrete-sub/src/ConcreteSub.java b/tests/032-concrete-sub/src/ConcreteSub.java deleted file mode 100644 index fbaeb1b10..000000000 --- a/tests/032-concrete-sub/src/ConcreteSub.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.Method; - -/** - * Test insertion of an abstract method in a superclass. - */ -public class ConcreteSub extends AbstractBase { - private static void callBase(AbstractBase abs) { - System.out.println("calling abs.doStuff()"); - abs.doStuff(); - } - - public static void main() { - ConcreteSub sub = new ConcreteSub(); - - try { - callBase(sub); - } catch (AbstractMethodError ame) { - System.out.println("Got expected exception from abs.doStuff()."); - } - - /* - * Check reflection stuff. - */ - Class absClass = AbstractBase.class; - Method meth; - - System.out.println("class modifiers=" + absClass.getModifiers()); - - try { - meth = absClass.getMethod("redefineMe", (Class[]) null); - } catch (NoSuchMethodException nsme) { - nsme.printStackTrace(); - return; - } - System.out.println("meth modifiers=" + meth.getModifiers()); - } -} - diff --git a/tests/032-concrete-sub/src/ConcreteSub2.java b/tests/032-concrete-sub/src/ConcreteSub2.java deleted file mode 100644 index 0b8fbf507..000000000 --- a/tests/032-concrete-sub/src/ConcreteSub2.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test conversion of a concrete method to an abstract method. This class - * will fail verification because there is no implementation of the - * abstractOrNot() method. - */ -public class ConcreteSub2 extends AbstractBase { - public void doStuff() { - abstractOrNot(); - } -} - diff --git a/tests/032-concrete-sub/src/Main.java b/tests/032-concrete-sub/src/Main.java deleted file mode 100644 index a3aa2b8ec..000000000 --- a/tests/032-concrete-sub/src/Main.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test insertion of an abstract method in a superclass. - */ -public class Main { - public static void main(String[] args) { - ConcreteSub.main(); - - try { - // Dalvik verifier stops here (VerifyError) - ConcreteSub2 blah = new ConcreteSub2(); - // other VMs fail here (AbstractMethodError) - blah.doStuff(); - System.err.println("Succeeded unexpectedly"); - } catch (VerifyError ve) { - System.out.println("Got expected failure"); - } catch (AbstractMethodError ame) { - System.out.println("Got expected failure"); - } - } -} - diff --git a/tests/032-concrete-sub/src2/AbstractBase.java b/tests/032-concrete-sub/src2/AbstractBase.java deleted file mode 100644 index 78ec4b1de..000000000 --- a/tests/032-concrete-sub/src2/AbstractBase.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Abstract base class. - */ -public abstract class AbstractBase { - public void doStuff() { - System.out.println("In AbstractBase.doStuff (src2)"); - redefineMe(); - } - - public abstract void redefineMe(); - - public abstract void abstractOrNot(); -} - diff --git a/tests/033-class-init-deadlock/expected.txt b/tests/033-class-init-deadlock/expected.txt deleted file mode 100644 index 387a4264c..000000000 --- a/tests/033-class-init-deadlock/expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -Deadlock test starting. -A initializing... -B initializing... -Deadlock test interupting threads. -Deadlock test main thread bailing. -A initialized: false -B initialized: false diff --git a/tests/033-class-init-deadlock/info.txt b/tests/033-class-init-deadlock/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/033-class-init-deadlock/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/033-class-init-deadlock/src/Main.java b/tests/033-class-init-deadlock/src/Main.java deleted file mode 100644 index df13c2659..000000000 --- a/tests/033-class-init-deadlock/src/Main.java +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * This causes most VMs to lock up. - * - * Interrupting threads in class initialization should NOT work. - */ -public class Main { - public static boolean aInitialized = false; - public static boolean bInitialized = false; - - static public void main(String[] args) { - Thread thread1, thread2; - - System.out.println("Deadlock test starting."); - thread1 = new Thread() { public void run() { new A(); } }; - thread2 = new Thread() { public void run() { new B(); } }; - thread1.start(); - thread2.start(); - - try { Thread.sleep(6000); } catch (InterruptedException ie) { } - - System.out.println("Deadlock test interupting threads."); - thread1.interrupt(); - thread2.interrupt(); - System.out.println("Deadlock test main thread bailing."); - System.out.println("A initialized: " + aInitialized); - System.out.println("B initialized: " + bInitialized); - System.exit(0); - } -} - -class A { - static { - System.out.println("A initializing..."); - try { Thread.sleep(3000); } catch (InterruptedException ie) { } - new B(); - System.out.println("A initialized"); - Main.aInitialized = true; - } -} - -class B { - static { - System.out.println("B initializing..."); - try { Thread.sleep(3000); } catch (InterruptedException ie) { } - new A(); - System.out.println("B initialized"); - Main.bInitialized = true; - } -} - diff --git a/tests/034-call-null/expected.txt b/tests/034-call-null/expected.txt deleted file mode 100644 index 5ffbe052a..000000000 --- a/tests/034-call-null/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -java.lang.NullPointerException - at Main.main(Main.java:12) - at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/034-call-null/info.txt b/tests/034-call-null/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/034-call-null/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/034-call-null/src/Main.java b/tests/034-call-null/src/Main.java deleted file mode 100644 index 6b5c28c2f..000000000 --- a/tests/034-call-null/src/Main.java +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public class Main { - int mFoo = 27; - - private void doStuff() { - System.out.println("mFoo is " + mFoo); - } - - public static void main(String[] args) { - Main instance = null; - instance.doStuff(); - } -} - diff --git a/tests/035-enum/expected.txt b/tests/035-enum/expected.txt deleted file mode 100644 index 50f2791b0..000000000 --- a/tests/035-enum/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -found field CRAWLING - synthetic? false - enum? true diff --git a/tests/035-enum/info.txt b/tests/035-enum/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/035-enum/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/035-enum/src/Main.java b/tests/035-enum/src/Main.java deleted file mode 100644 index c0915d4a9..000000000 --- a/tests/035-enum/src/Main.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.lang.reflect.Field; - -/** - * Try some stuff with enumerations. - */ -public class Main { - public enum Shubbery { GROUND, CRAWLING, HANGING } - - public static void main(String[] args) { - Field field; - try { - field = Shubbery.class.getDeclaredField("CRAWLING"); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe); - } - - System.out.println("found field " + field.getName()); - System.out.println(" synthetic? " + field.isSynthetic()); - System.out.println(" enum? " + field.isEnumConstant()); - } -} - diff --git a/tests/036-finalizer/expected.txt b/tests/036-finalizer/expected.txt deleted file mode 100644 index f9b29b0d5..000000000 --- a/tests/036-finalizer/expected.txt +++ /dev/null @@ -1,14 +0,0 @@ -wimp: wahoo -gc -finalizer executed: wahoo -wimp: null -finalize -wimp: null -sleep -reborn: wahoo -wimp: null -reset reborn -gc + finalize -sleep -reborn: nothing -wimp: null diff --git a/tests/036-finalizer/info.txt b/tests/036-finalizer/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/036-finalizer/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/036-finalizer/src/FinalizerTest.java b/tests/036-finalizer/src/FinalizerTest.java deleted file mode 100644 index 7bf289ec7..000000000 --- a/tests/036-finalizer/src/FinalizerTest.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.lang.ref.WeakReference; - -public class FinalizerTest { - public static FinalizerTest mNothing = new FinalizerTest("nothing"); - public static FinalizerTest mReborn = mNothing; - - public String mMsg = "default"; - - public FinalizerTest(String msg) { - mMsg = msg; - } - - public String toString() { - return mMsg; - } - - protected void finalize() { - System.out.println("finalizer executed: " + mMsg); - mReborn = this; - } -} - diff --git a/tests/036-finalizer/src/Main.java b/tests/036-finalizer/src/Main.java deleted file mode 100644 index a8623f859..000000000 --- a/tests/036-finalizer/src/Main.java +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.lang.ref.WeakReference; - -/** - * Some finalizer tests. - * - * This only works if System.runFinalization() causes finalizers to run - * immediately or very soon. - */ -public class Main { - private static void snooze(int ms) { - try { - Thread.sleep(ms); - } catch (InterruptedException ie) { - System.out.println("Snooze: " + ie.getMessage()); - } - } - - public static WeakReference makeRef() { - /* - * Make ft in another thread, so there is no danger of - * a conservative reference leaking onto the main thread's - * stack. - */ - - final WeakReference[] wimp = new WeakReference[1]; - Thread t = new Thread() { - public void run() { - FinalizerTest ft = new FinalizerTest("wahoo"); - wimp[0] = new WeakReference(ft); - ft = null; - } - }; - - t.start(); - - try { - t.join(); - } catch (InterruptedException ie) { - throw new RuntimeException(ie); - } - - return wimp[0]; - } - - public static String wimpString(final WeakReference wimp) { - /* - * Do the work in another thread, so there is no danger of a - * conservative reference to ft leaking onto the main thread's - * stack. - */ - - final String[] s = new String[1]; - Thread t = new Thread() { - public void run() { - Object ref = wimp.get(); - if (ref != null) { - s[0] = ref.toString(); - } - } - }; - - t.start(); - - try { - t.join(); - } catch (InterruptedException ie) { - throw new RuntimeException(ie); - } - - return s[0]; - } - - public static void main(String[] args) { - WeakReference wimp = makeRef(); - - System.out.println("wimp: " + wimpString(wimp)); - - /* this will try to collect and finalize ft */ - System.out.println("gc"); - System.gc(); - - System.out.println("wimp: " + wimpString(wimp)); - System.out.println("finalize"); - System.runFinalization(); - System.out.println("wimp: " + wimpString(wimp)); - - System.out.println("sleep"); - snooze(1000); - - System.out.println("reborn: " + FinalizerTest.mReborn); - System.out.println("wimp: " + wimpString(wimp)); - System.out.println("reset reborn"); - System.gc(); - FinalizerTest.mReborn = FinalizerTest.mNothing; - System.out.println("gc + finalize"); - System.gc(); - System.runFinalization(); - - System.out.println("sleep"); - snooze(1000); - - System.out.println("reborn: " + FinalizerTest.mReborn); - System.out.println("wimp: " + wimpString(wimp)); - } -} - diff --git a/tests/037-inherit/expected.txt b/tests/037-inherit/expected.txt deleted file mode 100644 index 1fb9912e3..000000000 --- a/tests/037-inherit/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -magic is 64.0 - 0: 64.0 - 1: 64.0 diff --git a/tests/037-inherit/info.txt b/tests/037-inherit/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/037-inherit/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/037-inherit/src/Main.java b/tests/037-inherit/src/Main.java deleted file mode 100644 index e0b36c7be..000000000 --- a/tests/037-inherit/src/Main.java +++ /dev/null @@ -1,38 +0,0 @@ -public class Main { - static void arrayCluster(IMagic[] magicArray) { - int i; - - for (i = 0; i < magicArray.length; i++) - System.out.println(" " + i + ": " + magicArray[i].getSomeData()); - } - - public static void main(String args[]) { - MagicClass magic = new MagicClass(); - - System.out.print("magic is "); - System.out.println(magic.getSomeData()); - - MagicClass magicArray[] = new MagicClass[2]; - magicArray[0] = new MagicClass(); - magicArray[1] = new MagicClass(); - arrayCluster(magicArray); - } -} - -class IntSource { - public int getMagicInt() { return 64; } -} - -interface IMagic { - public double getSomeData(); - - IntSource mIntSource = new IntSource(); - public int MAGIC_INT = mIntSource.getMagicInt(); -} - -class MagicClass implements IMagic { - public double getSomeData() { - return this.MAGIC_INT; - } -} - diff --git a/tests/038-inner-null/expected.txt b/tests/038-inner-null/expected.txt deleted file mode 100644 index 0be8ffdc4..000000000 --- a/tests/038-inner-null/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -new Special() -java.lang.NullPointerException - at Main$Special.callInner(Main.java:17) - at Main.main(Main.java:6) - at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/038-inner-null/info.txt b/tests/038-inner-null/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/038-inner-null/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/038-inner-null/src/Main.java b/tests/038-inner-null/src/Main.java deleted file mode 100644 index acc87640b..000000000 --- a/tests/038-inner-null/src/Main.java +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public class Main { - public static void main(String[] args) { - Special special = new Special(); - special.callInner(); - } - - public static class Special { - Blort mBlort = null; - - Special() { - System.out.println("new Special()"); - } - - public void callInner() { - mBlort.repaint(); - } - } - - private class Blort { - public void repaint() { - System.out.println("shouldn't see this"); - } - } - -} diff --git a/tests/039-join-main/expected.txt b/tests/039-join-main/expected.txt deleted file mode 100644 index 37e6d777b..000000000 --- a/tests/039-join-main/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Starting thread 'Joiner' -@ JoinMainSub running -JoinMain starter returning -@ JoinMainSub successfully joined main -@ JoinMainSub bailing diff --git a/tests/039-join-main/info.txt b/tests/039-join-main/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/039-join-main/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/039-join-main/src/Main.java b/tests/039-join-main/src/Main.java deleted file mode 100644 index 8d66b5859..000000000 --- a/tests/039-join-main/src/Main.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Make sure that a sub-thread can join the main thread. - */ -public class Main { - public static void main(String[] args) { - Thread t; - - t = new Thread(new JoinMainSub(Thread.currentThread()), "Joiner"); - System.out.print("Starting thread '" + t.getName() + "'\n"); - t.start(); - - try { Thread.sleep(1000); } - catch (InterruptedException ie) {} - - System.out.print("JoinMain starter returning\n"); - } -} - -class JoinMainSub implements Runnable { - private Thread mJoinMe; - - public JoinMainSub(Thread joinMe) { - mJoinMe = joinMe; - } - - public void run() { - System.out.print("@ JoinMainSub running\n"); - - try { - mJoinMe.join(); - System.out.print("@ JoinMainSub successfully joined main\n"); - } catch (InterruptedException ie) { - System.out.print("@ JoinMainSub interrupted!\n"); - } - finally { - System.out.print("@ JoinMainSub bailing\n"); - } - } -} - diff --git a/tests/040-miranda/expected.txt b/tests/040-miranda/expected.txt deleted file mode 100644 index e22bbd974..000000000 --- a/tests/040-miranda/expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -MirandaClass: - inInterface: true - inInterface2: 27 - inAbstract: false -MirandaAbstract / MirandaClass: - inInterface: true - inInterface2: 27 - inAbstract: false -MirandaAbstract / MirandaClass2: - inInterface: true - inInterface2: 28 - inAbstract: true diff --git a/tests/040-miranda/info.txt b/tests/040-miranda/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/040-miranda/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/040-miranda/src/Main.java b/tests/040-miranda/src/Main.java deleted file mode 100644 index 558806ac7..000000000 --- a/tests/040-miranda/src/Main.java +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Miranda testing. - */ -public class Main { - public static void main(String[] args) { - MirandaClass mir = new MirandaClass(); - System.out.println("MirandaClass:"); - System.out.println(" inInterface: " + mir.inInterface()); - System.out.println(" inInterface2: " + mir.inInterface2()); - System.out.println(" inAbstract: " + mir.inAbstract()); - - /* try again through abstract class; results should be identical */ - MirandaAbstract mira = mir; - System.out.println("MirandaAbstract / MirandaClass:"); - System.out.println(" inInterface: " + mira.inInterface()); - System.out.println(" inInterface2: " + mira.inInterface2()); - System.out.println(" inAbstract: " + mira.inAbstract()); - - MirandaAbstract mira2 = new MirandaClass2(); - System.out.println("MirandaAbstract / MirandaClass2:"); - System.out.println(" inInterface: " + mira2.inInterface()); - System.out.println(" inInterface2: " + mira2.inInterface2()); - System.out.println(" inAbstract: " + mira2.inAbstract()); - } -} diff --git a/tests/040-miranda/src/MirandaAbstract.java b/tests/040-miranda/src/MirandaAbstract.java deleted file mode 100644 index 1ce97c37f..000000000 --- a/tests/040-miranda/src/MirandaAbstract.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Miranda testing. - */ -public abstract class MirandaAbstract implements MirandaInterface, MirandaInterface2 -{ - protected MirandaAbstract() { } - - //public abstract boolean inInterface(); - //public abstract int inInterface2(); - - public boolean inAbstract() { - return true; - } -} - diff --git a/tests/040-miranda/src/MirandaClass.java b/tests/040-miranda/src/MirandaClass.java deleted file mode 100644 index 835752dc1..000000000 --- a/tests/040-miranda/src/MirandaClass.java +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Miranda testing. - */ -public class MirandaClass extends MirandaAbstract { - - public MirandaClass() {} - - public boolean inInterface() { - //System.out.println(" MirandaClass inInterface"); - return true; - } - - public int inInterface2() { - //System.out.println(" MirandaClass inInterface2"); - return 27; - } - - public boolean inAbstract() { - //System.out.println(" MirandaClass inAbstract"); - return false; - } -} - diff --git a/tests/040-miranda/src/MirandaClass2.java b/tests/040-miranda/src/MirandaClass2.java deleted file mode 100644 index 4c07bd961..000000000 --- a/tests/040-miranda/src/MirandaClass2.java +++ /dev/null @@ -1,10 +0,0 @@ -class MirandaClass2 extends MirandaAbstract { - public boolean inInterface() { - return true; - } - - public int inInterface2() { - return 28; - } -} - diff --git a/tests/040-miranda/src/MirandaInterface.java b/tests/040-miranda/src/MirandaInterface.java deleted file mode 100644 index a7c89fdc3..000000000 --- a/tests/040-miranda/src/MirandaInterface.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Miranda testing. - */ -public interface MirandaInterface { - - public boolean inInterface(); - -} - diff --git a/tests/040-miranda/src/MirandaInterface2.java b/tests/040-miranda/src/MirandaInterface2.java deleted file mode 100644 index f0187c62a..000000000 --- a/tests/040-miranda/src/MirandaInterface2.java +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Miranda testing. - */ -public interface MirandaInterface2 { - - public boolean inInterface(); - - public int inInterface2(); - -} - diff --git a/tests/041-narrowing/expected.txt b/tests/041-narrowing/expected.txt deleted file mode 100644 index 93b85901c..000000000 --- a/tests/041-narrowing/expected.txt +++ /dev/null @@ -1,38 +0,0 @@ - -Double.POSITIVE_INFINITY = 7ff0000000000000 -Double.NEGATIVE_INFINITY = fff0000000000000 -Float.POSITIVE_INFINITY = 7ff0000000000000 -Float.NEGATIVE_INFINITY = fff0000000000000 -Double.NaN = 7ff8000000000000 -Float.NaN = 7ff8000000000000 - -(byte) Double.NaN = 00 expected: 00 -(short) Double.NaN = 0000 expected: 0000 -(int) Double.NaN = 00000000 expected: 00000000 -(long) Double.NaN = 0000000000000000 expected: 0000000000000000 - -(byte) Float.NaN = 00 expected: 00 -(short) Float.NaN = 0000 expected: 0000 -(int) Float.NaN = 00000000 expected: 00000000 -(long) Float.NaN = 0000000000000000 expected: 0000000000000000 - -(byte) Double.POSITIVE_INFINITY = ff expected: ff -(short) Double.POSITIVE_INFINITY = ffff expected: ffff -(int) Double.POSITIVE_INFINITY = 7fffffff expected: 7fffffff -(long) Double.POSITIVE_INFINITY = 7fffffffffffffff expected: 7fffffffffffffff - -(byte) Double.NEGATIVE_INFINITY = 00 expected: 00 -(short) Double.NEGATIVE_INFINITY = 0000 expected: 0000 -(int) Double.NEGATIVE_INFINITY = 80000000 expected: 80000000 -(long) Double.NEGATIVE_INFINITY = 8000000000000000 expected: 8000000000000000 - -(byte) Float.POSITIVE_INFINITY = ff expected: ff -(short) Float.POSITIVE_INFINITY = ffff expected: ffff -(int) Float.POSITIVE_INFINITY = 7fffffff expected: 7fffffff -(long) Float.POSITIVE_INFINITY = 7fffffffffffffff expected: 7fffffffffffffff - -(byte) Float.NEGATIVE_INFINITY = 00 expected: 00 -(short) Float.NEGATIVE_INFINITY = 0000 expected: 0000 -(int) Float.NEGATIVE_INFINITY = 80000000 expected: 80000000 -(long) Float.NEGATIVE_INFINITY = 8000000000000000 expected: 8000000000000000 - diff --git a/tests/041-narrowing/info.txt b/tests/041-narrowing/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/041-narrowing/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/041-narrowing/src/Main.java b/tests/041-narrowing/src/Main.java deleted file mode 100644 index eb9d64a33..000000000 --- a/tests/041-narrowing/src/Main.java +++ /dev/null @@ -1,99 +0,0 @@ -public class Main { - public static void main(String[] args) { - test_printNarrowing(); - } - - public static void test_printNarrowing() { - - System.out.println(); - System.out.println("Double.POSITIVE_INFINITY = " - + Long.toHexString(Double.doubleToRawLongBits(Double.POSITIVE_INFINITY))); - System.out.println("Double.NEGATIVE_INFINITY = " - + Long.toHexString(Double.doubleToRawLongBits(Double.NEGATIVE_INFINITY))); - System.out.println("Float.POSITIVE_INFINITY = " - + Long.toHexString(Double.doubleToRawLongBits(Float.POSITIVE_INFINITY))); - System.out.println("Float.NEGATIVE_INFINITY = " - + Long.toHexString(Double.doubleToRawLongBits(Float.NEGATIVE_INFINITY))); - System.out.println("Double.NaN = " - + Long.toHexString(Double.doubleToRawLongBits(Double.NaN))); - System.out.println("Float.NaN = " - + Long.toHexString(Double.doubleToRawLongBits(Float.NaN))); - double dbl2 = Double.NaN; - System.out.println(); - System.out.println("(byte) Double.NaN = " - + (Long.toHexString((byte)dbl2).equals("0") ? "00" : Long.toHexString((byte)dbl2) - .substring(6)) + " expected: 00"); - System.out.println("(short) Double.NaN = " - + (Integer.toHexString((short)dbl2).equals("0") ? "0000" : Integer.toHexString( - (short)dbl2).substring(4)) + " expected: 0000"); - System.out.println("(int) Double.NaN = " - + (Integer.toHexString((int)dbl2).equals("0") ? "00000000" : Integer - .toHexString((int)dbl2)) + " expected: 00000000"); - System.out.println("(long) Double.NaN = " - + (Long.toHexString((long)dbl2).equals("0") ? "0000000000000000" : Long - .toHexString((long)dbl2)) + " expected: 0000000000000000"); - float fl2 = Float.NaN; - System.out.println(); - System.out.println("(byte) Float.NaN = " - + (Long.toHexString((byte)fl2).equals("0") ? "00" : Long.toHexString((byte)fl2) - .substring(6)) + " expected: 00"); - System.out.println("(short) Float.NaN = " - + (Integer.toHexString((short)fl2).equals("0") ? "0000" : Integer.toHexString( - (short)fl2).substring(4)) + " expected: 0000"); - System.out.println("(int) Float.NaN = " - + (Integer.toHexString((int)fl2).equals("0") ? "00000000" : Integer - .toHexString((int)fl2)) + " expected: 00000000"); - System.out.println("(long) Float.NaN = " - + (Long.toHexString((long)fl2).equals("0") ? "0000000000000000" : Long - .toHexString((long)fl2)) + " expected: 0000000000000000"); - double dbl3 = Double.POSITIVE_INFINITY; - System.out.println(); - System.out.println("(byte) Double.POSITIVE_INFINITY = " - + (Integer.toHexString((byte)dbl3).equals("0") ? "00" : Integer.toHexString( - (byte)dbl3).substring(6)) + " expected: ff"); - System.out.println("(short) Double.POSITIVE_INFINITY = " - + (Integer.toHexString((short)dbl3).equals("0") ? "0000" : Integer.toHexString( - (short)dbl3).substring(4)) + " expected: ffff"); - System.out.println("(int) Double.POSITIVE_INFINITY = " - + Integer.toHexString((int)dbl3) + " expected: 7fffffff"); - System.out.println("(long) Double.POSITIVE_INFINITY = " + Long.toHexString((long)dbl3) - + " expected: 7fffffffffffffff"); - double dbl4 = Double.NEGATIVE_INFINITY; - System.out.println(); - System.out.println("(byte) Double.NEGATIVE_INFINITY = " - + (Long.toHexString((byte)dbl4).equals("0") ? " 00" : Long - .toHexString((byte)dbl4)) + " expected: 00"); - System.out.println("(short) Double.NEGATIVE_INFINITY = " - + (Integer.toHexString((short)dbl4).equals("0") ? " 0000" : Long - .toHexString((short)dbl4)) + " expected: 0000"); - System.out.println("(int) Double.NEGATIVE_INFINITY = " - + Integer.toHexString((int)dbl4) + " expected: 80000000"); - System.out.println("(long) Double.NEGATIVE_INFINITY = " + Long.toHexString((long)dbl4) - + " expected: 8000000000000000"); - float fl3 = Float.POSITIVE_INFINITY; - System.out.println(); - System.out.println("(byte) Float.POSITIVE_INFINITY = " - + (Integer.toHexString((byte)fl3).equals("0") ? "00" : Integer.toHexString( - (byte)fl3).substring(6)) + " expected: ff"); - System.out.println("(short) Float.POSITIVE_INFINITY = " - + (Integer.toHexString((short)fl3).equals("0") ? "0000" : Integer.toHexString( - (short)fl3).substring(4)) + " expected: ffff"); - System.out.println("(int) Float.POSITIVE_INFINITY = " - + Integer.toHexString((int)fl3) + " expected: 7fffffff"); - System.out.println("(long) Float.POSITIVE_INFINITY = " + Long.toHexString((long)fl3) - + " expected: 7fffffffffffffff"); - float fl4 = Float.NEGATIVE_INFINITY; - System.out.println(); - System.out.println("(byte) Float.NEGATIVE_INFINITY = " - + (Long.toHexString((byte)fl4).equals("0") ? " 00" : Long - .toHexString((byte)fl4)) + " expected: 00"); - System.out.println("(short) Float.NEGATIVE_INFINITY = " - + (Integer.toHexString((short)fl4).equals("0") ? " 0000" : Long - .toHexString((short)fl4)) + " expected: 0000"); - System.out.println("(int) Float.NEGATIVE_INFINITY = " - + Integer.toHexString((int)fl4) + " expected: 80000000"); - System.out.println("(long) Float.NEGATIVE_INFINITY = " + Long.toHexString((long)fl4) - + " expected: 8000000000000000"); - System.out.println(); - } -} diff --git a/tests/042-new-instance/expected.txt b/tests/042-new-instance/expected.txt deleted file mode 100644 index 1ae2d3bd6..000000000 --- a/tests/042-new-instance/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -LocalClass succeeded -Got expected PackageAccess complaint -LocalClass2 succeeded diff --git a/tests/042-new-instance/info.txt b/tests/042-new-instance/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/042-new-instance/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/042-new-instance/src/Main.java b/tests/042-new-instance/src/Main.java deleted file mode 100644 index c77eb4801..000000000 --- a/tests/042-new-instance/src/Main.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Test instance creation. - */ -public class Main { - public static void main(String[] args) { - // should succeed - try { - Class c = Class.forName("LocalClass"); - Object obj = c.newInstance(); - System.out.println("LocalClass succeeded"); - } catch (Exception ex) { - System.err.println("LocalClass failed"); - ex.printStackTrace(); - } - - // should fail - try { - Class c = Class.forName("otherpackage.PackageAccess"); - Object obj = c.newInstance(); - System.out.println("ERROR: PackageAccess succeeded unexpectedly"); - } catch (IllegalAccessException iae) { - System.out.println("Got expected PackageAccess complaint"); - } catch (Exception ex) { - System.err.println("Got unexpected PackageAccess failure"); - ex.printStackTrace(); - } - - LocalClass2.main(); - } -} - -class LocalClass { - // this class has a default constructor with package visibility -} - - -class LocalClass2 { - public static void main() { - try { - CC.newInstance(); - System.out.println("LocalClass2 succeeded"); - } catch (Exception ex) { - System.err.println("Got unexpected LocalClass2 failure"); - ex.printStackTrace(); - } - } - - static class CC { - private CC() {} - - static Object newInstance() { - try { - Class c = CC.class; - return c.newInstance(); - } catch (Exception ex) { - ex.printStackTrace(); - return null; - } - } - } -} - diff --git a/tests/042-new-instance/src/otherpackage/PackageAccess.java b/tests/042-new-instance/src/otherpackage/PackageAccess.java deleted file mode 100644 index 0749d6792..000000000 --- a/tests/042-new-instance/src/otherpackage/PackageAccess.java +++ /dev/null @@ -1,6 +0,0 @@ -package otherpackage; - -class PackageAccess { - /*package*/ PackageAccess() { - } -} diff --git a/tests/043-privates/expected.txt b/tests/043-privates/expected.txt deleted file mode 100644 index 2779ec746..000000000 --- a/tests/043-privates/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -PrivatePackage --> PrivatePackage! -PrivatePackage --> PrivatePackage! -PrivatePackage --> PrivatePackage! -PrivatePackageSub --> PrivatePackageSub! -PrivatePackage --> PrivatePackage! -PrivatePackage --> PrivatePackage! diff --git a/tests/043-privates/info.txt b/tests/043-privates/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/043-privates/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/043-privates/src/Main.java b/tests/043-privates/src/Main.java deleted file mode 100644 index 9c4d357c6..000000000 --- a/tests/043-privates/src/Main.java +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Make sure private methods don't inherit. - */ -public class Main { - public static void main(String args[]) { - PrivatePackage inst1 = new PrivatePackage(); - PrivatePackage inst2 = new PrivatePackageSub(); - PrivatePackageSub inst3 = new PrivatePackageSub(); - - System.out.println("PrivatePackage --> " + inst1.getStr()); - System.out.println("PrivatePackage --> " + inst2.getStr()); - System.out.println("PrivatePackage --> " + inst3.getStr()); - System.out.println("PrivatePackageSub --> " + inst3.getStrSub()); - - inst1.stretchTest(); - } -} - -class PrivatePackage { - public String getStr() { - return privGetStr(); - } - - private String privGetStr() { - return "PrivatePackage!"; - } - - public void stretchTest() { - PrivatePackage inst = new PrivatePackageSub(); - System.out.println("PrivatePackage --> " + inst.getStr()); - System.out.println("PrivatePackage --> " + inst.privGetStr()); - } -} - -class PrivatePackageSub extends PrivatePackage { - public String getStrSub() { - return privGetStr(); - } - - private String privGetStr() { - return "PrivatePackageSub!"; - } -} - diff --git a/tests/044-proxy/expected.txt b/tests/044-proxy/expected.txt deleted file mode 100644 index 255cf996a..000000000 --- a/tests/044-proxy/expected.txt +++ /dev/null @@ -1,80 +0,0 @@ -Invoke public abstract void Shapes.circle(int) - 0: 3 ---- circle 3 -Success: method circle res=null -Invoke public abstract int Quads.rectangle(int,int) - 0: 10 - 1: 20 ---- rectangle 10,20 -Success: method rectangle res=4 -Invoke public abstract java.lang.String Shapes.blob() - (no args) ---- blob -Success: method blob res=mix -Invoke public abstract int Quads.rectangle(int,int) - 0: 15 - 1: 25 ---- rectangle 15,25 -Success: method rectangle res=4 -Invoke public abstract int Quads.trapezoid(int,double,int) - 0: 6 - 1: 81.18 - 2: 4 ---- trap 6,4,81.18 -Success: method trapezoid res=8 -Invoke public abstract int Colors.red(float) - 0: 1.0 ---- red 1.0 -Success: method red res=0 -Invoke public abstract double Colors.blue(int) - 0: 777 ---- blue 777 -Success: method blue res=2.54 -Invoke public abstract int Colors.mauve(java.lang.String) - 0: sorry ---- mauve sorry -Success: method mauve res=3 -Invoke public abstract java.lang.String Shapes.blob() - (no args) ---- blob -Success: method blob res=mix -Invoke public abstract void Shapes.upChuck() - (no args) -Got expected ioobe -Invoke public abstract void Shapes.upCheck() throws java.lang.InterruptedException - (no args) -Got expected ie - -Proxy methods: [public native boolean .$Proxy0.equals(java.lang.Object), public native int .$Proxy0.hashCode(), public native java.lang.String .$Proxy0.toString(), public native int .$Proxy0.rectangle(int,int), public native int .$Proxy0.square(int,int), public native int .$Proxy0.trapezoid(int,double,int), public native java.lang.String .$Proxy0.blob(), public native void .$Proxy0.circle(int), public native void .$Proxy0.upCheck(), public native void .$Proxy0.upChuck(), public native double .$Proxy0.blue(int), public native R0aa .$Proxy0.checkMe(), public native int .$Proxy0.green(double), public native int .$Proxy0.mauve(java.lang.String), public native int .$Proxy0.red(float)] -Decl annos: [] -Param annos (1) : [[]] -Proxy fields: [private static [[Ljava.lang.Throwable; .$Proxy0.throws] -Dupe threw expected exception -Clash threw expected exception -Clash2 threw expected exception -Clash3 threw expected exception -Clash4 threw expected exception -Invoke public abstract void InterfaceW1.throwFunky() - (no args) -Got expected UTE -Invoke public abstract void InterfaceW1.throwFunky2() throws BaseException,java.lang.NoSuchMethodException,java.io.IOException - (no args) -Got expected IOE -Invoke public abstract void InterfaceW1.throwFunky2() throws BaseException,java.lang.NoSuchMethodException,java.io.IOException - (no args) -Got expected IOE -Invoke public abstract void InterfaceW1.throwException() throws BaseException - (no args) -Got expected UTE -Invoke public abstract void InterfaceW1.throwBase() throws BaseException - (no args) -Got expected UTE -Invoke public abstract void InterfaceW1.throwSub() throws BaseException - (no args) -Got expected exception -Invoke public abstract void InterfaceW1.throwSubSub() throws BaseException - (no args) -Got expected exception -Invoke public abstract void InterfaceW1.bothThrowBase() throws BaseException,SubException,SubSubException - (no args) -Got expected exception diff --git a/tests/044-proxy/info.txt b/tests/044-proxy/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/044-proxy/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/044-proxy/src/BasicTest.java b/tests/044-proxy/src/BasicTest.java deleted file mode 100644 index 163381232..000000000 --- a/tests/044-proxy/src/BasicTest.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.Arrays; - -/** - * Do some basic tests. - */ -public class BasicTest { - - public static void main(String[] args) { - Mix proxyMe = new Mix(); - Object proxy = createProxy(proxyMe); - - if (!Proxy.isProxyClass(proxy.getClass())) - System.err.println("not a proxy class?"); - if (Proxy.getInvocationHandler(proxy) == null) - System.err.println("ERROR: Proxy.getInvocationHandler is null"); - - /* take it for a spin; verifies instanceof constraint */ - Shapes shapes = (Shapes) proxy; - shapes.circle(3); - shapes.rectangle(10, 20); - shapes.blob(); - Quads quads = (Quads) proxy; - quads.rectangle(15, 25); - quads.trapezoid(6, 81.18, 4); - Colors colors = (Colors) proxy; - colors.red(1.0f); - colors.blue(777); - colors.mauve("sorry"); - colors.blob(); - - try { - shapes.upChuck(); - System.out.println("Didn't get expected exception"); - } catch (IndexOutOfBoundsException ioobe) { - System.out.println("Got expected ioobe"); - } - try { - shapes.upCheck(); - System.out.println("Didn't get expected exception"); - } catch (InterruptedException ie) { - System.out.println("Got expected ie"); - } - - /* - * Exercise annotations on Proxy classes. This is mostly to ensure - * that annotation calls work correctly on generated classes. - */ - System.out.println(""); - Method[] methods = proxy.getClass().getDeclaredMethods(); - System.out.println("Proxy methods: " + Arrays.deepToString(methods)); - Method meth = methods[methods.length -1]; - System.out.println("Decl annos: " + Arrays.deepToString(meth.getDeclaredAnnotations())); - Annotation[][] paramAnnos = meth.getParameterAnnotations(); - System.out.println("Param annos (" + paramAnnos.length + ") : " - + Arrays.deepToString(paramAnnos)); - Field[] fields = proxy.getClass().getDeclaredFields(); - System.out.println("Proxy fields: " + Arrays.deepToString(fields)); - } - - static Object createProxy(Object proxyMe) { - /* declare an object that will handle the method calls */ - InvocationHandler handler = new MyInvocationHandler(proxyMe); - - /* create the proxy class */ - Class proxyClass = Proxy.getProxyClass(Shapes.class.getClassLoader(), - new Class[] { Quads.class, Colors.class }); - - /* create a proxy object, passing the handler object in */ - Object proxy = null; - try { - Constructor<Class> cons; - cons = proxyClass.getConstructor( - new Class[] { InvocationHandler.class }); - //System.out.println("Constructor is " + cons); - proxy = cons.newInstance(new Object[] { handler }); - } catch (NoSuchMethodException nsme) { - System.err.println("failed: " + nsme); - } catch (InstantiationException ie) { - System.err.println("failed: " + ie); - } catch (IllegalAccessException ie) { - System.err.println("failed: " + ie); - } catch (InvocationTargetException ite) { - System.err.println("failed: " + ite); - } - - return proxy; - } -} - -/* - * Some interfaces. - */ -interface Shapes { - public void circle(int r); - public int rectangle(int x, int y); - - public String blob(); - - public R0base checkMe(); - public void upChuck(); - public void upCheck() throws InterruptedException; -} - -interface Quads extends Shapes { - public int rectangle(int x, int y); - public int square(int x, int y); - public int trapezoid(int x, double off, int y); - - public R0a checkMe(); -} - -/* - * More interfaces. - */ -interface Colors { - public int red(float howRed); - public int green(double howGreen); - public double blue(int howBlue); - public int mauve(String apology); - - public String blob(); - - public R0aa checkMe(); -} - -/* - * Some return types. - */ -class R0base { int mBlah; } -class R0a extends R0base { int mBlah_a; } -class R0aa extends R0a { int mBlah_aa; } - - -/* - * A class that implements them all. - */ -class Mix implements Quads, Colors { - public void circle(int r) { - System.out.println("--- circle " + r); - } - public int rectangle(int x, int y) { - System.out.println("--- rectangle " + x + "," + y); - return 4; - } - public int square(int x, int y) { - System.out.println("--- square " + x + "," + y); - return 4; - } - public int trapezoid(int x, double off, int y) { - System.out.println("--- trap " + x + "," + y + "," + off); - return 8; - } - public String blob() { - System.out.println("--- blob"); - return "mix"; - } - - public int red(float howRed) { - System.out.println("--- red " + howRed); - return 0; - } - public int green(double howGreen) { - System.out.println("--- green " + howGreen); - return 1; - } - public double blue(int howBlue) { - System.out.println("--- blue " + howBlue); - return 2.54; - } - public int mauve(String apology) { - System.out.println("--- mauve " + apology); - return 3; - } - - public R0aa checkMe() { - return null; - } - public void upChuck() { - throw new IndexOutOfBoundsException("upchuck"); - } - public void upCheck() throws InterruptedException { - throw new InterruptedException("upcheck"); - } -} - -/* - * Invocation handler, defining the implementation of the proxy functions. - */ -class MyInvocationHandler implements InvocationHandler { - Object mObj; - - public MyInvocationHandler(Object obj) { - mObj = obj; - } - - /* - * This is called when anything gets invoked in the proxy object. - */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - Object result = null; - - // Trap Object calls. This is important here to avoid a recursive - // invocation of toString() in the print statements below. - if (method.getDeclaringClass() == java.lang.Object.class) { - //System.out.println("!!! object " + method.getName()); - if (method.getName().equals("toString")) - return super.toString(); - else if (method.getName().equals("hashCode")) - return Integer.valueOf(super.hashCode()); - else if (method.getName().equals("equals")) - return Boolean.valueOf(super.equals(args[0])); - else - throw new RuntimeException("huh?"); - } - - System.out.println("Invoke " + method); - if (args == null || args.length == 0) { - System.out.println(" (no args)"); - } else { - for (int i = 0; i < args.length; i++) - System.out.println(" " + i + ": " + args[i]); - } - - try { - if (true) - result = method.invoke(mObj, args); - else - result = -1; - System.out.println("Success: method " + method.getName() - + " res=" + result); - } catch (InvocationTargetException ite) { - throw ite.getTargetException(); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae); - } - return result; - } -} - diff --git a/tests/044-proxy/src/Clash.java b/tests/044-proxy/src/Clash.java deleted file mode 100644 index 31a9d2fc8..000000000 --- a/tests/044-proxy/src/Clash.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -/* - * Try to instantiate a proxy class with interfaces that have conflicting - * duplicate methods (primitive vs. object). - */ -public class Clash { - public static void main(String[] args) { - InvocationHandler handler = new ClashInvocationHandler(); - - /* try passing in the same interface twice */ - try { - Proxy.newProxyInstance(Clash.class.getClassLoader(), - new Class[] { Interface1A.class, Interface1A.class }, - handler); - System.err.println("Dupe did not throw expected exception"); - } catch (IllegalArgumentException iae) { - System.out.println("Dupe threw expected exception"); - } - - try { - Proxy.newProxyInstance(Clash.class.getClassLoader(), - new Class[] { Interface1A.class, Interface1B.class }, - handler); - System.err.println("Clash did not throw expected exception"); - } catch (IllegalArgumentException iae) { - System.out.println("Clash threw expected exception"); - } - } -} - -interface Interface1A { - public int thisIsOkay(); - - public float thisIsTrouble(); -} - -interface Interface1B { - public int thisIsOkay(); - - public Object thisIsTrouble(); -} - -class ClashInvocationHandler implements InvocationHandler { - /* don't really need to do anything -- should never get this far */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - return null; - } -} - diff --git a/tests/044-proxy/src/Clash2.java b/tests/044-proxy/src/Clash2.java deleted file mode 100644 index 44ffe4776..000000000 --- a/tests/044-proxy/src/Clash2.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -/* - * Try to instantiate a proxy class with interfaces that have conflicting - * duplicate methods (primitive types). - */ -public class Clash2 { - public static void main(String[] args) { - InvocationHandler handler = new Clash2InvocationHandler(); - - try { - Proxy.newProxyInstance(Clash.class.getClassLoader(), - new Class[] { Interface2A.class, Interface2B.class }, - handler); - System.err.println("Clash2 did not throw expected exception"); - } catch (IllegalArgumentException iae) { - System.out.println("Clash2 threw expected exception"); - } - } -} - -interface Interface2A { - public int thisIsOkay(); - - public int thisIsTrouble(); -} - -interface Interface2B { - public int thisIsOkay(); - - public short thisIsTrouble(); -} - -class Clash2InvocationHandler implements InvocationHandler { - /* don't really need to do anything -- should never get this far */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - return null; - } -} - diff --git a/tests/044-proxy/src/Clash3.java b/tests/044-proxy/src/Clash3.java deleted file mode 100644 index ce323dacb..000000000 --- a/tests/044-proxy/src/Clash3.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -/* - * Try to instantiate a proxy class with interfaces that have conflicting - * duplicate methods (type tree with interface). - */ -public class Clash3 { - public static void main(String[] args) { - InvocationHandler handler = new Clash3InvocationHandler(); - - try { - Proxy.newProxyInstance(Clash.class.getClassLoader(), - new Class[] { - Interface3a.class, - Interface3base.class, - Interface3aa.class, - Interface3b.class }, - handler); - System.err.println("Clash3 did not throw expected exception"); - } catch (IllegalArgumentException iae) { - System.out.println("Clash3 threw expected exception"); - } - } -} - -class R3base implements I3 { int mBlah; public void x() {} } -class R3a extends R3base { int mBlah_a; } -class R3aa extends R3a { int mBlah_aa; } -class R3b implements I3 { int mBlah_b; public void x() {} } - -interface I3 { - void x(); -} - -interface Interface3base { - public R3base thisIsTrouble(); -} - -interface Interface3a { - public R3a thisIsTrouble(); -} -interface Interface3aa { - public R3aa thisIsTrouble(); -} -interface Interface3b { - public R3b thisIsTrouble(); -} - -class Clash3InvocationHandler implements InvocationHandler { - /* don't really need to do anything -- should never get this far */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - return null; - } -} - diff --git a/tests/044-proxy/src/Clash4.java b/tests/044-proxy/src/Clash4.java deleted file mode 100644 index f200573ce..000000000 --- a/tests/044-proxy/src/Clash4.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -/* - * Try to instantiate a proxy class with interfaces that have conflicting - * duplicate methods (tree of types). - */ -public class Clash4 { - public static void main(String[] args) { - InvocationHandler handler = new Clash4InvocationHandler(); - - try { - Proxy.newProxyInstance(Clash.class.getClassLoader(), - new Class[] { - Interface4a.class, - Interface4aa.class, - Interface4base.class, - Interface4b.class, - Interface4bb.class }, - handler); - System.err.println("Clash4 did not throw expected exception"); - } catch (IllegalArgumentException iae) { - System.out.println("Clash4 threw expected exception"); - //System.out.println(iae); - } - } -} - -class R4base { int mBlah; } -class R4a extends R4base { int mBlah_a; } -class R4aa extends R4a { int mBlah_aa; } -class R4b extends R4base { int mBlah_b; } -class R4bb extends R4b { int mBlah_bb; } - -interface Interface4base { - public R4base thisIsTrouble(); -} - -interface Interface4a { - public R4a thisIsTrouble(); -} -interface Interface4aa { - public R4aa thisIsTrouble(); -} -interface Interface4b { - public R4b thisIsTrouble(); -} -interface Interface4bb { - public R4bb thisIsTrouble(); -} - -class Clash4InvocationHandler implements InvocationHandler { - /* don't really need to do anything -- should never get this far */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - return null; - } -} - diff --git a/tests/044-proxy/src/Main.java b/tests/044-proxy/src/Main.java deleted file mode 100644 index 64ba9b849..000000000 --- a/tests/044-proxy/src/Main.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test java.lang.reflect.Proxy - */ -public class Main { - public static void main(String[] args) { - BasicTest.main(null); - Clash.main(null); - Clash2.main(null); - Clash3.main(null); - Clash4.main(null); - WrappedThrow.main(null); - } -} - diff --git a/tests/044-proxy/src/WrappedThrow.java b/tests/044-proxy/src/WrappedThrow.java deleted file mode 100644 index ea4af2452..000000000 --- a/tests/044-proxy/src/WrappedThrow.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.io.IOException; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.lang.reflect.UndeclaredThrowableException; - -/* - * Create a Proxy class that blah. - */ -public class WrappedThrow { - public static void main(String[] args) { - WTMix mix = new WTMix(); - InvocationHandler handler = new WTInvocationHandler(mix); - Object proxy; - - try { - proxy = Proxy.newProxyInstance(WrappedThrow.class.getClassLoader(), - new Class[] { InterfaceW1.class, InterfaceW2.class }, - handler); - } catch (IllegalArgumentException iae) { - System.out.println("WT init failed"); - return; - } - - InterfaceW1 if1 = (InterfaceW1) proxy; - InterfaceW2 if2 = (InterfaceW2) proxy; - try { - if1.throwFunky(); - System.err.println("No exception thrown"); - } catch (UndeclaredThrowableException ute) { - System.out.println("Got expected UTE"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - try { - if1.throwFunky2(); - System.err.println("No exception thrown"); - } catch (IOException ioe) { - System.out.println("Got expected IOE"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - try { - if2.throwFunky2(); - System.err.println("No exception thrown"); - } catch (IOException ioe) { - System.out.println("Got expected IOE"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - /* - * Throw exceptions, walking down the hierarchy. - */ - try { - if1.throwException(); - System.err.println("No exception thrown"); - } catch (UndeclaredThrowableException ute) { - System.out.println("Got expected UTE"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - try { - if1.throwBase(); - System.err.println("No exception thrown"); - } catch (UndeclaredThrowableException ute) { - System.out.println("Got expected UTE"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - try { - if2.throwSub(); - System.err.println("No exception thrown"); - } catch (SubException se) { - System.out.println("Got expected exception"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - try { - if2.throwSubSub(); - System.err.println("No exception thrown"); - } catch (SubException se) { - System.out.println("Got expected exception"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - - /* - * Make sure that, if the class explicitly allows the base - * class of an exception, that we still allow it. - */ - try { - if1.bothThrowBase(); - System.err.println("No exception thrown"); - } catch (BaseException se) { - System.out.println("Got expected exception"); - } catch (Throwable t) { - System.err.println("Got unexpected exception: " + t); - } - } -} - -class BaseException extends Exception {} -class SubException extends BaseException {} -class SubSubException extends SubException {} - -interface InterfaceW1 { - public void throwFunky(); - - public void throwFunky2() throws BaseException, - NoSuchMethodException, IOException; - - public void throwException() throws BaseException; - public void throwBase() throws BaseException; - public void throwSub() throws BaseException; - public void throwSubSub() throws BaseException; - - public void bothThrowBase() throws BaseException, SubException, SubSubException; -} - -interface InterfaceW2 { - public void throwFunky2() throws InterruptedException, - NoSuchMethodException, IOException; - - public void throwException() throws SubException; - public void throwBase() throws SubException; - public void throwSub() throws SubException; - public void throwSubSub() throws SubException; - - public void bothThrowBase() throws SubException, BaseException, SubSubException; -} - -/** - * Implement all of the proxied interfaces. - */ -class WTMix implements InterfaceW1, InterfaceW2 { - public int dastardlyDeed() throws SubException { - System.out.println("Throwing SubException"); - throw new SubException(); - } - - /* these don't actually get called; they just cause exceptions */ - public void throwFunky() {} - public void throwFunky2() {} - public void throwException() throws SubException {} - public void throwBase() throws SubException {} - public void throwSub() throws SubException {} - public void throwSubSub() throws SubException {} - - public void bothThrowBase() throws BaseException, SubException {} -} - -/** - * Invocation handler for our proxy class. - */ -class WTInvocationHandler implements InvocationHandler { - private Object mObj; - - public WTInvocationHandler(Object obj) { - mObj = obj; - } - - /* - * This is called when anything gets invoked in the proxy object. - */ - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - - Object result = null; - - // Trap Object calls. This is important here to avoid a recursive - // invocation of toString() in the print statements below. - if (method.getDeclaringClass() == java.lang.Object.class) { - //System.out.println("!!! object " + method.getName()); - if (method.getName().equals("toString")) - return super.toString(); - else if (method.getName().equals("hashCode")) - return Integer.valueOf(super.hashCode()); - else if (method.getName().equals("equals")) - return Boolean.valueOf(super.equals(args[0])); - else - throw new RuntimeException("huh?"); - } - - System.out.println("Invoke " + method); - if (args == null || args.length == 0) { - System.out.println(" (no args)"); - } else { - for (int i = 0; i < args.length; i++) - System.out.println(" " + i + ": " + args[i]); - } - - try { - if (method.getName().equals("throwFunky")) - throw new InterruptedException("fake"); - if (method.getName().equals("throwFunky2")) - throw new IOException("fake2"); - if (method.getName().equals("throwException")) - throw new Exception(); - if (method.getName().equals("throwBase")) - throw new BaseException(); - if (method.getName().equals("throwSub")) - throw new SubException(); - if (method.getName().equals("throwSubSub")) - throw new SubSubException(); - if (method.getName().equals("bothThrowBase")) - throw new BaseException(); - - if (true) - result = method.invoke(mObj, args); - else - result = -1; - System.out.println("Success: method " + method.getName() - + " res=" + result); - } catch (InvocationTargetException ite) { - throw ite.getTargetException(); - } catch (IllegalAccessException iae) { - throw new RuntimeException(iae); - } - return result; - } -} - diff --git a/tests/045-reflect-array/expected.txt b/tests/045-reflect-array/expected.txt deleted file mode 100644 index 5c609b5c1..000000000 --- a/tests/045-reflect-array/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -ReflectArrayTest.testSingleInt passed -ReflectArrayTest.testSingle passed -ReflectArrayTest.testMultiInt passed -zero one two ++ -ReflectArrayTest.testMulti passed -ReflectArrayTest passed diff --git a/tests/045-reflect-array/info.txt b/tests/045-reflect-array/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/045-reflect-array/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/045-reflect-array/src/Main.java b/tests/045-reflect-array/src/Main.java deleted file mode 100644 index 1be05dd78..000000000 --- a/tests/045-reflect-array/src/Main.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2006 The Android Open Source Project - */ - -import java.lang.reflect.Array; - -/** - * Test java.lang.reflect.Array. - */ -public class Main { - public static void main(String[] args) { - testSingleInt(); - testSingle(); - testMultiInt(); - testMulti(); - - System.out.println("ReflectArrayTest passed"); - } - - static void testSingleInt() { - Object intArray; - - intArray = Array.newInstance(Integer.TYPE, 2); - - int[] array = (int[]) intArray; - array[0] = 5; - Array.setInt(intArray, 1, 6); - - if (Array.getInt(intArray, 0) != 5) - throw new RuntimeException(); - if (array[1] != 6) - throw new RuntimeException(); - try { - array[2] = 27; - throw new RuntimeException("store should have failed"); - } - catch (ArrayIndexOutOfBoundsException abe) { - } - if (array.length != Array.getLength(intArray) || - array.length != 2) - { - throw new RuntimeException("bad len"); - } - - int[][] wrongArray; - try { - wrongArray = (int[][]) intArray; - throw new RuntimeException("cast should have failed"); - } - catch (ClassCastException cce) { - } - - intArray = Array.newInstance(Integer.TYPE, 0); - if (Array.getLength(intArray) != 0) - throw new RuntimeException(); - System.out.println("ReflectArrayTest.testSingleInt passed"); - } - - static void testSingle() { - Object strArray; - - strArray = Array.newInstance(String.class, 2); - - String[] array = (String[]) strArray; - array[0] = "entry zero"; - Array.set(strArray, 1, "entry one"); - - //System.out.println("array: " + array); - - if (!"entry zero".equals(Array.get(strArray, 0))) - throw new RuntimeException(); - if (!"entry one".equals(array[1])) - throw new RuntimeException(); - - if (array.length != Array.getLength(strArray) || - array.length != 2) - { - throw new RuntimeException("bad len"); - } - System.out.println("ReflectArrayTest.testSingle passed"); - } - - static void testMultiInt() { - Object intIntIntArray; - int[] dimensions = { 3, 2, 1 }; - - intIntIntArray = Array.newInstance(Integer.TYPE, dimensions); - int[][][] array3 = (int[][][]) intIntIntArray; - - array3[0][0][0] = 123; // trouble - array3[2][1][0] = 456; - - try { - array3[2][1][1] = 768; - throw new RuntimeException("store should have failed"); - } - catch (ArrayIndexOutOfBoundsException abe) { - } - System.out.println("ReflectArrayTest.testMultiInt passed"); - } - - static void testMulti() { - Object strStrStrArray; - int[] dimensions = { 1, 2, 3 }; - - strStrStrArray = Array.newInstance(String.class, dimensions); - String[][][] array3 = (String[][][]) strStrStrArray; - - array3[0][0][0] = "zero zero zero"; - array3[0][1][2] = "zero one two"; - - try { - array3[1][0][0] = "bad store"; - throw new RuntimeException("store should have failed"); - } - catch (ArrayIndexOutOfBoundsException abe) { - } - - try { - String[][] array2 = (String[][]) strStrStrArray; - throw new RuntimeException("expecting bad cast"); - } - catch (ClassCastException cce) { - } - - String[] strar = new String[4]; - strar[2] = "zero one two ++"; - array3[0][1] = strar; - System.out.println(array3[0][1][2]); - //System.out.println("array3: " + array3); - - - int[] dimensions2 = { 1, 2 }; - strStrStrArray = Array.newInstance(String[].class, dimensions2); - array3 = (String[][][]) strStrStrArray; - - array3[0][1] = new String[3]; - array3[0][1][2] = "zero one two"; - try { - array3[1][0][0] = "bad store"; - throw new RuntimeException("store should have failed"); - } - catch (ArrayIndexOutOfBoundsException abe) { - } - System.out.println("ReflectArrayTest.testMulti passed"); - } -} - diff --git a/tests/046-reflect/expected.txt b/tests/046-reflect/expected.txt deleted file mode 100644 index eefa44857..000000000 --- a/tests/046-reflect/expected.txt +++ /dev/null @@ -1,94 +0,0 @@ -Method name is myMethod - Declaring class is Target - Arg 0: int - Exc 0: java.lang.NullPointerException - Exc 1: java.io.IOException - Return type is int - Access flags are 0x1 -Method name is myMethod - Declaring class is SuperTarget - Arg 0: float - Return type is int - Access flags are 0x1 -Method name is myNoargMethod - Declaring class is Target - Return type is void - Access flags are 0x9 -Method name is myMethod - Declaring class is Target - Arg 0: [Ljava.lang.String; - Arg 1: float - Arg 2: char - Return type is int - Access flags are 0x1 -SuperTarget constructor ()V -Target constructor ()V -Before, float is 3.1415925 -myMethod: hi there 3.1415925 Q ! -Result of invoke: 7 -Calling no-arg void-return method -myNoargMethod ()V -throwingMethod -Invoke got expected exception: -java.lang.reflect.InvocationTargetException -java.lang.NullPointerException: gratuitous throw! - -Field name is string1 - Declaring class is Target - Field type is java.lang.String - Access flags are 0x1 - string1 value is 'hey' - ::: hey:yo:there - string1 value is now 'a new string' - ::: a new string:yo:there - got expected illegal obj store exc - got the other expected access exc - got expected arg exc -pubLong initial value is 1122334455667788 -pubLong new value is 9988776655443322 -Field name is superInt - Declaring class is SuperTarget - Field type is int - Access flags are 0x1 - superInt value is 1010101 - superInt boxed is 1010101 - superInt value is now 20202 - superInt value (from short) is now 30303 - superInt value is now 40404 - got expected long->int failure - got expected long->int failure - got expected string->int failure - got expected int->short failure -Field name is superClassInt - Declaring class is SuperTarget - Field type is int - Access flags are 0x9 - superClassInt value is 1010102 -Field name is staticDouble - Declaring class is Target - Field type is double - Access flags are 0x9 - staticDoubleVal value is 3.3 - got expected double->long failure -as expected: aPrivateInt not found -Field name is constantString - Declaring class is Target - Field type is java.lang.String - Access flags are 0x19 - Constant test value is a constant string -Field name is cantTouchThis - Declaring class is Target - Field type is int - Access flags are 0x11 - cantTouchThis is 77 - got expected set-final failure - - cantTouchThis is now 77 -cons modifiers=1 -SuperTarget constructor ()V -Target constructor (IF)V : ii=7 ff=3.3333 -myMethod (I)I - arg=17 anInt=7 -ReflectTest done! -checkType invoking null -checkType got expected exception diff --git a/tests/046-reflect/info.txt b/tests/046-reflect/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/046-reflect/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/046-reflect/src/Main.java b/tests/046-reflect/src/Main.java deleted file mode 100644 index 1ec63d84c..000000000 --- a/tests/046-reflect/src/Main.java +++ /dev/null @@ -1,409 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -import java.lang.reflect.*; -import java.io.IOException; -import java.util.Collections; - -/** - * Reflection test. - */ -public class Main { - void printMethodInfo(Method meth) { - Class[] params, exceptions; - int i; - - System.out.println("Method name is " + meth.getName()); - System.out.println(" Declaring class is " - + meth.getDeclaringClass().getName()); - params = meth.getParameterTypes(); - for (i = 0; i < params.length; i++) - System.out.println(" Arg " + i + ": " + params[i].getName()); - exceptions = meth.getExceptionTypes(); - for (i = 0; i < exceptions.length; i++) - System.out.println(" Exc " + i + ": " + exceptions[i].getName()); - System.out.println(" Return type is " + meth.getReturnType().getName()); - System.out.println(" Access flags are 0x" - + Integer.toHexString(meth.getModifiers())); - //System.out.println(" GenericStr is " + meth.toGenericString()); - } - - void printFieldInfo(Field field) { - System.out.println("Field name is " + field.getName()); - System.out.println(" Declaring class is " - + field.getDeclaringClass().getName()); - System.out.println(" Field type is " + field.getType().getName()); - System.out.println(" Access flags are 0x" - + Integer.toHexString(field.getModifiers())); - } - - private void showStrings(Target instance) - throws NoSuchFieldException, IllegalAccessException { - - Class target = Target.class; - String one, two, three, four; - Field field = null; - - field = target.getField("string1"); - one = (String) field.get(instance); - - field = target.getField("string2"); - two = (String) field.get(instance); - - field = target.getField("string3"); - three = (String) field.get(instance); - - System.out.println(" ::: " + one + ":" + two + ":" + three); - } - - public void run() { - Class target = Target.class; - Method meth = null; - Field field = null; - boolean excep; - - try { - meth = target.getMethod("myMethod", new Class[] { int.class }); - - if (meth.getDeclaringClass() != target) - throw new RuntimeException(); - printMethodInfo(meth); - - meth = target.getMethod("myMethod", new Class[] { float.class }); - printMethodInfo(meth); - - meth = target.getMethod("myNoargMethod", (Class[]) null); - printMethodInfo(meth); - - meth = target.getMethod("myMethod", - new Class[] { String[].class, float.class, char.class }); - printMethodInfo(meth); - - Target instance = new Target(); - Object[] argList = new Object[] { - new String[] { "hi there" }, - new Float(3.1415926f), - new Character('Q') - }; - System.out.println("Before, float is " - + ((Float)argList[1]).floatValue()); - - Integer boxval; - boxval = (Integer) meth.invoke(instance, argList); - System.out.println("Result of invoke: " + boxval.intValue()); - - System.out.println("Calling no-arg void-return method"); - meth = target.getMethod("myNoargMethod", (Class[]) null); - meth.invoke(instance, (Object[]) null); - - /* try invoking a method that throws an exception */ - meth = target.getMethod("throwingMethod", (Class[]) null); - try { - meth.invoke(instance, (Object[]) null); - System.out.println("GLITCH: didn't throw"); - } catch (InvocationTargetException ite) { - System.out.println("Invoke got expected exception:"); - System.out.println(ite.getClass().getName()); - System.out.println(ite.getCause()); - } - catch (Exception ex) { - System.out.println("GLITCH: invoke got wrong exception:"); - ex.printStackTrace(); - } - System.out.println(""); - - - field = target.getField("string1"); - if (field.getDeclaringClass() != target) - throw new RuntimeException(); - printFieldInfo(field); - String strVal = (String) field.get(instance); - System.out.println(" string1 value is '" + strVal + "'"); - - showStrings(instance); - - field.set(instance, new String("a new string")); - strVal = (String) field.get(instance); - System.out.println(" string1 value is now '" + strVal + "'"); - - showStrings(instance); - - try { - field.set(instance, new Object()); - System.out.println("WARNING: able to store Object into String"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected illegal obj store exc"); - } - - - try { - String four; - field = target.getField("string4"); - four = (String) field.get(instance); - System.out.println("WARNING: able to access string4: " - + four); - } - catch (IllegalAccessException iae) { - System.out.println(" got expected access exc"); - } - catch (NoSuchFieldException nsfe) { - System.out.println(" got the other expected access exc"); - } - try { - String three; - field = target.getField("string3"); - three = (String) field.get(this); - System.out.println("WARNING: able to get string3 in wrong obj: " - + three); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected arg exc"); - } - - /* - * Try setting a field to null. - */ - String four; - field = target.getDeclaredField("string3"); - field.set(instance, null); - - /* - * Do some stuff with long. - */ - long longVal; - field = target.getField("pubLong"); - longVal = field.getLong(instance); - System.out.println("pubLong initial value is " + - Long.toHexString(longVal)); - field.setLong(instance, 0x9988776655443322L); - longVal = field.getLong(instance); - System.out.println("pubLong new value is " + - Long.toHexString(longVal)); - - - field = target.getField("superInt"); - if (field.getDeclaringClass() == target) - throw new RuntimeException(); - printFieldInfo(field); - int intVal = field.getInt(instance); - System.out.println(" superInt value is " + intVal); - Integer boxedIntVal = (Integer) field.get(instance); - System.out.println(" superInt boxed is " + boxedIntVal); - - field.set(instance, new Integer(20202)); - intVal = field.getInt(instance); - System.out.println(" superInt value is now " + intVal); - field.setShort(instance, (short)30303); - intVal = field.getInt(instance); - System.out.println(" superInt value (from short) is now " +intVal); - field.setInt(instance, 40404); - intVal = field.getInt(instance); - System.out.println(" superInt value is now " + intVal); - try { - field.set(instance, new Long(123)); - System.out.println("FAIL: expected exception not thrown"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected long->int failure"); - } - try { - field.setLong(instance, 123); - System.out.println("FAIL: expected exception not thrown"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected long->int failure"); - } - try { - field.set(instance, new String("abc")); - System.out.println("FAIL: expected exception not thrown"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected string->int failure"); - } - - try { - field.getShort(instance); - System.out.println("FAIL: expected exception not thrown"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected int->short failure"); - } - - field = target.getField("superClassInt"); - printFieldInfo(field); - int superClassIntVal = field.getInt(instance); - System.out.println(" superClassInt value is " + superClassIntVal); - - field = target.getField("staticDouble"); - printFieldInfo(field); - double staticDoubleVal = field.getDouble(null); - System.out.println(" staticDoubleVal value is " + staticDoubleVal); - - try { - field.getLong(instance); - System.out.println("FAIL: expected exception not thrown"); - } - catch (IllegalArgumentException iae) { - System.out.println(" got expected double->long failure"); - } - - excep = false; - try { - field = target.getField("aPrivateInt"); - printFieldInfo(field); - } - catch (NoSuchFieldException nsfe) { - System.out.println("as expected: aPrivateInt not found"); - excep = true; - } - if (!excep) - System.out.println("BUG: got aPrivateInt"); - - - field = target.getField("constantString"); - printFieldInfo(field); - String val = (String) field.get(instance); - System.out.println(" Constant test value is " + val); - - - field = target.getField("cantTouchThis"); - printFieldInfo(field); - intVal = field.getInt(instance); - System.out.println(" cantTouchThis is " + intVal); - try { - field.setInt(instance, 99); - System.out.println("ERROR: set-final succeeded\n"); - } catch (IllegalAccessException iae) { - System.out.println(" got expected set-final failure\n"); - } - intVal = field.getInt(instance); - System.out.println(" cantTouchThis is now " + intVal); - - Constructor<Target> cons; - Target targ; - Object[] args; - - cons = target.getConstructor(new Class[] { int.class,float.class }); - args = new Object[] { new Integer(7), new Float(3.3333) }; - System.out.println("cons modifiers=" + cons.getModifiers()); - targ = cons.newInstance(args); - targ.myMethod(17); - - } - catch (Exception ex) { - System.out.println("----- unexpected exception -----"); - ex.printStackTrace(); - } - - System.out.println("ReflectTest done!"); - } - - public static void checkType() { - Method m; - - try { - m = Collections.class.getDeclaredMethod("checkType", - Object.class, Class.class); - } catch (NoSuchMethodException nsme) { - nsme.printStackTrace(); - return; - } - - m.setAccessible(true); - try { - m.invoke(null, new Object(), Object.class); - } catch (IllegalAccessException iae) { - iae.printStackTrace(); - return; - } catch (InvocationTargetException ite) { - ite.printStackTrace(); - return; - } - - try { - System.out.println("checkType invoking null"); - m.invoke(null, new Object(), int.class); - System.out.println("ERROR: should throw InvocationTargetException"); - } catch (InvocationTargetException ite) { - System.out.println("checkType got expected exception"); - } catch (IllegalAccessException iae) { - iae.printStackTrace(); - return; - } - } - - public static void main(String[] args) { - Main test = new Main(); - test.run(); - - checkType(); - } -} - - -class SuperTarget { - public SuperTarget() { - System.out.println("SuperTarget constructor ()V"); - superInt = 1010101; - superClassInt = 1010102; - } - - public int myMethod(float floatArg) { - System.out.println("myMethod (F)I " + floatArg); - return 6; - } - - public int superInt; - public static int superClassInt; -} - -class Target extends SuperTarget { - public Target() { - System.out.println("Target constructor ()V"); - } - - public Target(int ii, float ff) { - System.out.println("Target constructor (IF)V : ii=" - + ii + " ff=" + ff); - anInt = ii; - } - - public int myMethod(int intarg) throws NullPointerException, IOException { - System.out.println("myMethod (I)I"); - System.out.println(" arg=" + intarg + " anInt=" + anInt); - return 5; - } - - public int myMethod(String[] strarg, float f, char c) { - System.out.println("myMethod: " + strarg[0] + " " + f + " " + c + " !"); - return 7; - } - - public static void myNoargMethod() { - System.out.println("myNoargMethod ()V"); - } - - public void throwingMethod() { - System.out.println("throwingMethod"); - throw new NullPointerException("gratuitous throw!"); - } - - public void misc() { - System.out.println("misc"); - } - - public int anInt; - public String string1 = "hey"; - public String string2 = "yo"; - public String string3 = "there"; - private String string4 = "naughty"; - public static final String constantString = "a constant string"; - private int aPrivateInt; - - public final int cantTouchThis = 77; - - public long pubLong = 0x1122334455667788L; - - public static double staticDouble = 3.3; -} - diff --git a/tests/047-returns/expected.txt b/tests/047-returns/expected.txt deleted file mode 100644 index 160f69c23..000000000 --- a/tests/047-returns/expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -pick 1 -one running -one -1 -pick 2 -two running -two -2 -pick 3 -three running diff --git a/tests/047-returns/info.txt b/tests/047-returns/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/047-returns/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/047-returns/src/Main.java b/tests/047-returns/src/Main.java deleted file mode 100644 index dc8ed7615..000000000 --- a/tests/047-returns/src/Main.java +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Return stuff. - */ -public class Main { - public static void main(String[] args) { - - System.out.println("pick 1"); - pickOne(1).run(); - System.out.println(((CommonInterface)pickOne(1)).doStuff()); - - System.out.println("pick 2"); - pickOne(2).run(); - System.out.println(((CommonInterface)pickOne(2)).doStuff()); - - System.out.println("pick 3"); - pickOne(3).run(); - } - - public static Runnable pickOne(int which) { - Runnable runme; - - if (which == 1) - runme = new ClassOne(); - else if (which == 2) - runme = new ClassTwo(); - else if (which == 3) - runme = new ClassThree(); - else - runme = null; - - return runme; - } -} - -class ClassOne implements CommonInterface, Runnable { - public void run() { - System.out.println("one running"); - } - public int doStuff() { - System.out.println("one"); - return 1; - } -} - -class ClassTwo implements CommonInterface, Runnable { - public void run() { - System.out.println("two running"); - } - public int doStuff() { - System.out.println("two"); - return 2; - } -} - -class ClassThree implements Runnable { - public void run() { - System.out.println("three running"); - } -} - -interface CommonInterface { - int doStuff(); -} - diff --git a/tests/048-server-socket/expected.txt b/tests/048-server-socket/expected.txt deleted file mode 100644 index 23c3e8494..000000000 --- a/tests/048-server-socket/expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -opened! -closed! -reopened! -done diff --git a/tests/048-server-socket/info.txt b/tests/048-server-socket/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/048-server-socket/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/048-server-socket/src/Main.java b/tests/048-server-socket/src/Main.java deleted file mode 100644 index b21210a7e..000000000 --- a/tests/048-server-socket/src/Main.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.net.ServerSocket; -import java.io.IOException; - - -/** - * Quick server socket test. - */ -public class Main { - private static void snooze(int sec) { - try { - Thread.sleep(sec * 1000); - } catch (InterruptedException ie) { - ie.printStackTrace(); - } - } - - public static void main(String[] args) { - ServerSocket socket; - - try { - socket = new ServerSocket(7890); - } catch (IOException ioe) { - System.out.println("couldn't open socket " + ioe.getMessage()); - return; - } - - System.out.println("opened!"); - snooze(1); - - try { - socket.close(); - } catch (IOException ioe) { - System.out.println("couldn't close socket " + ioe.getMessage()); - return; - } - - System.out.println("closed!"); - snooze(1); - - try { - socket = new ServerSocket(7890); - } catch (IOException ioe) { - System.out.println("couldn't reopen socket " + ioe.getMessage()); - return; - } - - System.out.println("reopened!"); - System.out.println("done"); - } -} - diff --git a/tests/049-show-object/expected.txt b/tests/049-show-object/expected.txt deleted file mode 100644 index 4613c39e7..000000000 --- a/tests/049-show-object/expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -d is 3.1415 -class: class [Ljava.lang.Object; -0: null -1: null -2: null -3: null -4: null -class: class [Ljava.lang.String; -0: hey -1: you -2: there diff --git a/tests/049-show-object/info.txt b/tests/049-show-object/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/049-show-object/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/049-show-object/src/Main.java b/tests/049-show-object/src/Main.java deleted file mode 100644 index 60a4cef05..000000000 --- a/tests/049-show-object/src/Main.java +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/* - * Some basic operations for testing the debugger. - */ -public class Main { - long mLong = 0x1122334455667788L; - - public Main() { - double d = 3.1415; - System.out.println("d is " + d); - } - - public static void showObject(Object[] foo) { - int xyz = 27; - System.out.println("class: " + foo.getClass()); - - for (int i = 0; i < foo.length; i++) { - System.out.println(i + ": " + foo[i]); - } - } - - public static void main(String[] args) { - int x = 5; - Main testObj = new Main(); - - Object[] array = new Object[5]; - showObject(array); - - String[] niftyStrings = new String[] { "hey", "you", "there" }; - array = niftyStrings; - showObject(array); - } -} - diff --git a/tests/050-sync-test/expected.txt b/tests/050-sync-test/expected.txt deleted file mode 100644 index c2a70318b..000000000 --- a/tests/050-sync-test/expected.txt +++ /dev/null @@ -1,34 +0,0 @@ -Sleep Test -GOING -GONE - -Count Test -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -going: 1 -Final result: 10 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -going: 2 -Final result: 20 -main: all done - -Interrupt Test -SleepyThread.run starting -SleepyThread.run starting -interrupting other (isAlive=true) -thread#0 interrupted, flag=false diff --git a/tests/050-sync-test/info.txt b/tests/050-sync-test/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/050-sync-test/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/050-sync-test/src/Main.java b/tests/050-sync-test/src/Main.java deleted file mode 100644 index 620e899ea..000000000 --- a/tests/050-sync-test/src/Main.java +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test synchronization primitives. - * - * TODO: this should be re-written to be a little more rigorous and/or - * useful. Also, the ThreadDeathHandler stuff should be exposed or - * split out. - */ -public class Main { - public static void main(String[] args) { - System.out.println("Sleep Test"); - sleepTest(); - - System.out.println("\nCount Test"); - countTest(); - - System.out.println("\nInterrupt Test"); - interruptTest(); - } - - static void sleepTest() { - System.out.println("GOING"); - try { - Thread.sleep(1000); - } - catch (InterruptedException ie) { - System.out.println("INTERRUPT!"); - ie.printStackTrace(); - } - System.out.println("GONE"); - } - - static void countTest() { - CpuThread one, two; - - one = new CpuThread(1); - two = new CpuThread(2); - - one.start(); - two.start(); - - try { - Thread.sleep(100); - } - catch (InterruptedException ie) { - System.out.println("INTERRUPT!"); - ie.printStackTrace(); - } - - //System.out.println("main: off and running"); - - try { - one.join(); - two.join(); - } - catch (InterruptedException ie) { - System.out.println("INTERRUPT!"); - ie.printStackTrace(); - } - System.out.println("main: all done"); - } - - static void interruptTest() { - SleepyThread sleepy, pesky; - - sleepy = new SleepyThread(null); - pesky = new SleepyThread(sleepy); - - sleepy.setPriority(4); - sleepy.start(); - pesky.start(); - pesky.setPriority(3); - } -} - -class CpuThread extends Thread { - static Object mSyncable = new Object(); - static int mCount = 0; - int mNumber; - - CpuThread(int num) { - super("CpuThread " + num); - mNumber = num; - } - - public void run() { - //System.out.print("thread running -- "); - //System.out.println(Thread.currentThread().getName()); - - for (int i = 0; i < 10; i++) { - output(mNumber); - } - - System.out.print("Final result: "); - System.out.println(mCount); - } - - void output(int num) { - /* - * Delete the next line; last "final result" should != 20. - */ - synchronized (mSyncable) - { - int i, count; - - count = mCount; - - System.out.print("going: "); - System.out.println(num); - - /* burn CPU; adjust end value so we exceed scheduler quantum */ - for (int j = 0; j < 5000; j++) - ; - - count++; - mCount = count; - } - } -} - -class SleepyThread extends Thread { - private SleepyThread mOther; - private Integer[] mWaitOnMe; // any type of object will do - - private static int count = 0; - - SleepyThread(SleepyThread other) { - mOther = other; - mWaitOnMe = new Integer[] { 1, 2 }; - - setName("thread#" + count); - count++; - } - - public void run() { - System.out.println("SleepyThread.run starting"); - - if (false) { - ThreadDeathHandler threadHandler = - new ThreadDeathHandler("SYNC THREAD"); - Thread.currentThread().setUncaughtExceptionHandler(threadHandler); - throw new NullPointerException("die"); - } - - if (mOther == null) { - boolean intr = false; - - try { - synchronized (mWaitOnMe) { - mWaitOnMe.wait(9000); - } - } - catch (InterruptedException ie) { - // Expecting this; interrupted should be false. - System.out.println(Thread.currentThread().getName() + - " interrupted, flag=" + Thread.interrupted()); - intr = true; - } - catch (Exception ex) { - ex.printStackTrace(); - } - - if (!intr) - System.out.println("NOT INTERRUPTED"); - } else { - try { - Thread.sleep(2000); - } - catch (InterruptedException ie) { - System.out.println("PESKY INTERRUPTED?"); - } - - System.out.println("interrupting other (isAlive=" - + mOther.isAlive() + ")"); - mOther.interrupt(); - } - } -} - diff --git a/tests/050-sync-test/src/ThreadDeathHandler.java b/tests/050-sync-test/src/ThreadDeathHandler.java deleted file mode 100644 index 3f42f4d71..000000000 --- a/tests/050-sync-test/src/ThreadDeathHandler.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.lang.Thread.UncaughtExceptionHandler; - -/** - * Report death-by-uncaught-exception. - */ -public class ThreadDeathHandler implements Thread.UncaughtExceptionHandler { - private String mMyMessage; - - public ThreadDeathHandler(String msg) { - mMyMessage = msg; - } - - public void uncaughtException(Thread t, Throwable e) { - System.err.println("Uncaught exception " + mMyMessage + "!"); - e.printStackTrace(); - } -} - diff --git a/tests/051-thread/expected.txt b/tests/051-thread/expected.txt deleted file mode 100644 index fbe32f61e..000000000 --- a/tests/051-thread/expected.txt +++ /dev/null @@ -1,518 +0,0 @@ -running 0 -running 1 -running 2 -running 3 -running 4 -running 5 -running 6 -running 7 -running 8 -running 9 -running 10 -running 11 -running 12 -running 13 -running 14 -running 15 -running 16 -running 17 -running 18 -running 19 -running 20 -running 21 -running 22 -running 23 -running 24 -running 25 -running 26 -running 27 -running 28 -running 29 -running 30 -running 31 -running 32 -running 33 -running 34 -running 35 -running 36 -running 37 -running 38 -running 39 -running 40 -running 41 -running 42 -running 43 -running 44 -running 45 -running 46 -running 47 -running 48 -running 49 -running 50 -running 51 -running 52 -running 53 -running 54 -running 55 -running 56 -running 57 -running 58 -running 59 -running 60 -running 61 -running 62 -running 63 -running 64 -running 65 -running 66 -running 67 -running 68 -running 69 -running 70 -running 71 -running 72 -running 73 -running 74 -running 75 -running 76 -running 77 -running 78 -running 79 -running 80 -running 81 -running 82 -running 83 -running 84 -running 85 -running 86 -running 87 -running 88 -running 89 -running 90 -running 91 -running 92 -running 93 -running 94 -running 95 -running 96 -running 97 -running 98 -running 99 -running 100 -running 101 -running 102 -running 103 -running 104 -running 105 -running 106 -running 107 -running 108 -running 109 -running 110 -running 111 -running 112 -running 113 -running 114 -running 115 -running 116 -running 117 -running 118 -running 119 -running 120 -running 121 -running 122 -running 123 -running 124 -running 125 -running 126 -running 127 -running 128 -running 129 -running 130 -running 131 -running 132 -running 133 -running 134 -running 135 -running 136 -running 137 -running 138 -running 139 -running 140 -running 141 -running 142 -running 143 -running 144 -running 145 -running 146 -running 147 -running 148 -running 149 -running 150 -running 151 -running 152 -running 153 -running 154 -running 155 -running 156 -running 157 -running 158 -running 159 -running 160 -running 161 -running 162 -running 163 -running 164 -running 165 -running 166 -running 167 -running 168 -running 169 -running 170 -running 171 -running 172 -running 173 -running 174 -running 175 -running 176 -running 177 -running 178 -running 179 -running 180 -running 181 -running 182 -running 183 -running 184 -running 185 -running 186 -running 187 -running 188 -running 189 -running 190 -running 191 -running 192 -running 193 -running 194 -running 195 -running 196 -running 197 -running 198 -running 199 -running 200 -running 201 -running 202 -running 203 -running 204 -running 205 -running 206 -running 207 -running 208 -running 209 -running 210 -running 211 -running 212 -running 213 -running 214 -running 215 -running 216 -running 217 -running 218 -running 219 -running 220 -running 221 -running 222 -running 223 -running 224 -running 225 -running 226 -running 227 -running 228 -running 229 -running 230 -running 231 -running 232 -running 233 -running 234 -running 235 -running 236 -running 237 -running 238 -running 239 -running 240 -running 241 -running 242 -running 243 -running 244 -running 245 -running 246 -running 247 -running 248 -running 249 -running 250 -running 251 -running 252 -running 253 -running 254 -running 255 -running 256 -running 257 -running 258 -running 259 -running 260 -running 261 -running 262 -running 263 -running 264 -running 265 -running 266 -running 267 -running 268 -running 269 -running 270 -running 271 -running 272 -running 273 -running 274 -running 275 -running 276 -running 277 -running 278 -running 279 -running 280 -running 281 -running 282 -running 283 -running 284 -running 285 -running 286 -running 287 -running 288 -running 289 -running 290 -running 291 -running 292 -running 293 -running 294 -running 295 -running 296 -running 297 -running 298 -running 299 -running 300 -running 301 -running 302 -running 303 -running 304 -running 305 -running 306 -running 307 -running 308 -running 309 -running 310 -running 311 -running 312 -running 313 -running 314 -running 315 -running 316 -running 317 -running 318 -running 319 -running 320 -running 321 -running 322 -running 323 -running 324 -running 325 -running 326 -running 327 -running 328 -running 329 -running 330 -running 331 -running 332 -running 333 -running 334 -running 335 -running 336 -running 337 -running 338 -running 339 -running 340 -running 341 -running 342 -running 343 -running 344 -running 345 -running 346 -running 347 -running 348 -running 349 -running 350 -running 351 -running 352 -running 353 -running 354 -running 355 -running 356 -running 357 -running 358 -running 359 -running 360 -running 361 -running 362 -running 363 -running 364 -running 365 -running 366 -running 367 -running 368 -running 369 -running 370 -running 371 -running 372 -running 373 -running 374 -running 375 -running 376 -running 377 -running 378 -running 379 -running 380 -running 381 -running 382 -running 383 -running 384 -running 385 -running 386 -running 387 -running 388 -running 389 -running 390 -running 391 -running 392 -running 393 -running 394 -running 395 -running 396 -running 397 -running 398 -running 399 -running 400 -running 401 -running 402 -running 403 -running 404 -running 405 -running 406 -running 407 -running 408 -running 409 -running 410 -running 411 -running 412 -running 413 -running 414 -running 415 -running 416 -running 417 -running 418 -running 419 -running 420 -running 421 -running 422 -running 423 -running 424 -running 425 -running 426 -running 427 -running 428 -running 429 -running 430 -running 431 -running 432 -running 433 -running 434 -running 435 -running 436 -running 437 -running 438 -running 439 -running 440 -running 441 -running 442 -running 443 -running 444 -running 445 -running 446 -running 447 -running 448 -running 449 -running 450 -running 451 -running 452 -running 453 -running 454 -running 455 -running 456 -running 457 -running 458 -running 459 -running 460 -running 461 -running 462 -running 463 -running 464 -running 465 -running 466 -running 467 -running 468 -running 469 -running 470 -running 471 -running 472 -running 473 -running 474 -running 475 -running 476 -running 477 -running 478 -running 479 -running 480 -running 481 -running 482 -running 483 -running 484 -running 485 -running 486 -running 487 -running 488 -running 489 -running 490 -running 491 -running 492 -running 493 -running 494 -running 495 -running 496 -running 497 -running 498 -running 499 -running 500 -running 501 -running 502 -running 503 -running 504 -running 505 -running 506 -running 507 -running 508 -running 509 -running 510 -running 511 -Starting thread 'Thready' -@ Thread running -@ Got expected setDaemon exception -@ Thread bailing -Thread starter returning -thread test done diff --git a/tests/051-thread/info.txt b/tests/051-thread/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/051-thread/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/051-thread/src/Main.java b/tests/051-thread/src/Main.java deleted file mode 100644 index ff1b1813c..000000000 --- a/tests/051-thread/src/Main.java +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test some basic thread stuff. - */ -public class Main { - public static void main(String[] args) { - for (int i = 0; i < 512; i++) { - MyThread myThread = new MyThread(); - myThread.start(); - try { - Thread.sleep(1); - } catch (InterruptedException ie) { - ie.printStackTrace(); - } - } - - go(); - System.out.println("thread test done"); - } - - public static void go() { - Thread t = new Thread(null, new ThreadTestSub(), "Thready", 7168); - - t.setDaemon(false); - - System.out.print("Starting thread '" + t.getName() + "'\n"); - t.start(); - - try { - t.join(); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - - System.out.print("Thread starter returning\n"); - } - - /* - * Simple thread capacity test. - */ - static class MyThread extends Thread { - private static int mCount = 0; - public void run() { - System.out.println("running " + (mCount++)); - } - } -} - -class ThreadTestSub implements Runnable { - public void run() { - System.out.print("@ Thread running\n"); - - try { - Thread.currentThread().setDaemon(true); - System.out.print("@ FAILED: setDaemon() succeeded\n"); - } catch (IllegalThreadStateException itse) { - System.out.print("@ Got expected setDaemon exception\n"); - } - - //if (true) - // throw new NullPointerException(); - try { - Thread.sleep(2000); - } - catch (InterruptedException ie) { - System.out.print("@ Interrupted!\n"); - } - finally { - System.out.print("@ Thread bailing\n"); - } - } -} - diff --git a/tests/052-verifier-fun/expected.txt b/tests/052-verifier-fun/expected.txt deleted file mode 100644 index 566267534..000000000 --- a/tests/052-verifier-fun/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -BlahOne -Zorch. diff --git a/tests/052-verifier-fun/info.txt b/tests/052-verifier-fun/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/052-verifier-fun/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/052-verifier-fun/src/Blah.java b/tests/052-verifier-fun/src/Blah.java deleted file mode 100644 index edd6c9d3e..000000000 --- a/tests/052-verifier-fun/src/Blah.java +++ /dev/null @@ -1,4 +0,0 @@ -public abstract class Blah { - public void unrelatedStuff() { - } -} diff --git a/tests/052-verifier-fun/src/BlahFeature.java b/tests/052-verifier-fun/src/BlahFeature.java deleted file mode 100644 index ea0e18aa3..000000000 --- a/tests/052-verifier-fun/src/BlahFeature.java +++ /dev/null @@ -1,3 +0,0 @@ -public interface BlahFeature { - public void doStuff(); -} diff --git a/tests/052-verifier-fun/src/BlahOne.java b/tests/052-verifier-fun/src/BlahOne.java deleted file mode 100644 index ed423cdf3..000000000 --- a/tests/052-verifier-fun/src/BlahOne.java +++ /dev/null @@ -1,5 +0,0 @@ -public class BlahOne extends Blah implements BlahFeature { - public void doStuff() { - System.out.println("BlahOne"); - } -} diff --git a/tests/052-verifier-fun/src/BlahTwo.java b/tests/052-verifier-fun/src/BlahTwo.java deleted file mode 100644 index cff367091..000000000 --- a/tests/052-verifier-fun/src/BlahTwo.java +++ /dev/null @@ -1,5 +0,0 @@ -public class BlahTwo extends Blah implements BlahFeature { - public void doStuff() { - System.out.println("BlahTwo"); - } -} diff --git a/tests/052-verifier-fun/src/Main.java b/tests/052-verifier-fun/src/Main.java deleted file mode 100644 index 81ff654a4..000000000 --- a/tests/052-verifier-fun/src/Main.java +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.lang.reflect.Type; - -/** - * Throw a few things at the verifier, all of which are expected to pass. - */ -public class Main { - static public void main(String[] args) { - tryBlah(1); - - System.out.println("Zorch."); - } - - /* - * Make sure the verifier is handling type merge of arrays of - * references correctly. - */ - static Object[] arrayCheck1(int wanted) { - String[] arrayOne; - Integer[] arrayTwo; - - arrayOne = new String[1]; - arrayTwo = new Integer[1]; - - switch (wanted) { - case 0: return arrayOne; - case 1: return arrayTwo; - default: return null; - } - } - - static Object arrayCheck1b(int wanted) { - String[] arrayOne; - Integer[] arrayTwo; - int[] arrayThree; - - arrayOne = new String[1]; - arrayTwo = new Integer[1]; - arrayThree = new int[1]; - - switch (wanted) { - case 0: return arrayOne; - case 1: return arrayTwo; - case 2: return arrayThree; - default: return null; - } - } - - static Object[] arrayCheck2(int wanted) { - String[][] arrayOne; - String[][] arrayTwo; - Integer[][] arrayThree; - - arrayOne = new String[1][]; - arrayTwo = new String[1][]; - arrayThree = new Integer[1][]; - - switch (wanted) { - case 0: return arrayOne; - case 1: return arrayTwo; - case 2: return arrayThree; - default: return null; - } - } - - static Object[] arrayCheck3(int wanted) { - String[][] arrayTwo; - String[][][][] arrayFour; - - arrayTwo = new String[1][]; - arrayFour = new String[1][][][]; - - switch (wanted) { - case 0: return arrayTwo; - case 1: return arrayFour; - default: return null; - } - } - - /* - * Check return type merge. - */ - private Type[] typeTest() { - if(this == null) { - return (Class<?>[])null; - } - return (Type[])null; - } - - - /* - * Exercise the blahs. - */ - static void tryBlah(int num) { - BlahFeature feature = null; // interface ref - - switch (num) { - case 1: - feature = new BlahOne(); - break; - default: - feature = new BlahTwo(); - break; - } - - feature.doStuff(); - } -} - diff --git a/tests/053-wait-some/expected.txt b/tests/053-wait-some/expected.txt deleted file mode 100644 index 182892cc6..000000000 --- a/tests/053-wait-some/expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -Caught expected exception on neg arg -Waiting for 200ms... -Waiting for 500ms... -Waiting for 1000ms... -Waiting for 2000ms... -Waiting for 3500ms... -Waiting for 8000ms... diff --git a/tests/053-wait-some/info.txt b/tests/053-wait-some/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/053-wait-some/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/053-wait-some/src/Main.java b/tests/053-wait-some/src/Main.java deleted file mode 100644 index 468f9f0f1..000000000 --- a/tests/053-wait-some/src/Main.java +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -/** - * Exercise Object.wait(), comparing results against wall clock time. - */ -public class Main { - /* delays, in milliseconds */ - private final static long[] DELAYS = { - 200, 500, 1000, 2000, 3500, 8000 - }; - - public static void main(String[] args) { - boolean timing = (args.length >= 1) && args[0].equals("--timing"); - doit(timing); - } - - public static void doit(boolean timing) { - Object sleepy = new Object(); - long start, end; - - synchronized (sleepy) { - try { - sleepy.wait(-500); - System.out.println("HEY: didn't throw on negative arg"); - } catch (IllegalArgumentException iae) { - System.out.println("Caught expected exception on neg arg"); - } catch (InterruptedException ie) { - ie.printStackTrace(); - } - - for(long delay : DELAYS) { - System.out.println("Waiting for " + delay + "ms..."); - - start = System.currentTimeMillis(); - try { - sleepy.wait(delay); - } catch (InterruptedException ie) { - ie.printStackTrace(); - } - end = System.currentTimeMillis(); - - long elapsed = end - start; - boolean showTime = timing; - - if (! timing) { - long epsilon = delay / 10; - if (epsilon > 50) { - epsilon = 50; - } - - long min = delay - epsilon; - long max = delay + epsilon; - - if (elapsed < min) { - System.out.println(" Elapsed time was too short"); - showTime = true; - } else if (elapsed > max) { - System.out.println(" Elapsed time was too long: " - + "elapsed=" + elapsed + " max=" + max); - showTime = true; - } - } - - if (showTime) { - System.out.println(" Wall clock elapsed " - + elapsed + "ms"); - } - } - } - } -} - diff --git a/tests/054-uncaught/expected.txt b/tests/054-uncaught/expected.txt deleted file mode 100644 index e7473be8a..000000000 --- a/tests/054-uncaught/expected.txt +++ /dev/null @@ -1,21 +0,0 @@ -Test 1 -Uncaught exception DEFAULT! -java.lang.NullPointerException: Hi diddly-ho, neighborino. - at Main.catchTheUncaught(Main.java:49) - at Main$Helper.run(Main.java:60) -Test 2 -Uncaught exception THREAD! -java.lang.NullPointerException: Hi diddly-ho, neighborino. - at Main.catchTheUncaught(Main.java:49) - at Main$Helper.run(Main.java:60) -Test 3 -Uncaught exception THREAD! -java.lang.NullPointerException: Hi diddly-ho, neighborino. - at Main.catchTheUncaught(Main.java:49) - at Main$Helper.run(Main.java:60) -Test 1 -Uncaught exception DEFAULT! -java.lang.NullPointerException: Hi diddly-ho, neighborino. - at Main.catchTheUncaught(Main.java:49) - at Main.main(Main.java:12) - at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/054-uncaught/info.txt b/tests/054-uncaught/info.txt deleted file mode 100644 index 08127da23..000000000 --- a/tests/054-uncaught/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -This is a miscellaneous test that was imported into the new-at-the-time -runtime test framework. The test is intended to exercise basic features, -and as such cannot be build on top of junit, since failure of such basic -features might disrupt junit. - -TODO: Real description goes here. diff --git a/tests/054-uncaught/src/Main.java b/tests/054-uncaught/src/Main.java deleted file mode 100644 index 68e9b42bf..000000000 --- a/tests/054-uncaught/src/Main.java +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2006 The Android Open Source Project - -/** - * Test the uncaught exception handler. - */ -public class Main { - public static void main(String[] args) { - testThread(1); - testThread(2); - testThread(3); - - catchTheUncaught(1); - } - - private static void testThread(int which) { - Thread t = new Helper(which); - t.start(); - - try { - t.join(); - } catch (InterruptedException ex) { - ex.printStackTrace(); - } - } - - static void catchTheUncaught(int which) { - ThreadDeathHandler defHandler = new ThreadDeathHandler("DEFAULT"); - ThreadDeathHandler threadHandler = new ThreadDeathHandler("THREAD"); - - System.out.println("Test " + which); - switch (which) { - case 1: { - Thread.setDefaultUncaughtExceptionHandler(defHandler); - break; - } - case 2: { - Thread.currentThread().setUncaughtExceptionHandler( - threadHandler); - break; - } - case 3: { - Thread.setDefaultUncaughtExceptionHandler(defHandler); - Thread.currentThread().setUncaughtExceptionHandler( - threadHandler); - break; - } - } - - throw new NullPointerException("Hi diddly-ho, neighborino."); - } - - private static class Helper extends Thread { - private int which; - - public Helper(int which) { - this.which = which; - } - - public void run() { - catchTheUncaught(which); - } - } -} diff --git a/tests/054-uncaught/src/ThreadDeathHandler.java b/tests/054-uncaught/src/ThreadDeathHandler.java deleted file mode 100644 index 3f42f4d71..000000000 --- a/tests/054-uncaught/src/ThreadDeathHandler.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2007 The Android Open Source Project - -import java.lang.Thread.UncaughtExceptionHandler; - -/** - * Report death-by-uncaught-exception. - */ -public class ThreadDeathHandler implements Thread.UncaughtExceptionHandler { - private String mMyMessage; - - public ThreadDeathHandler(String msg) { - mMyMessage = msg; - } - - public void uncaughtException(Thread t, Throwable e) { - System.err.println("Uncaught exception " + mMyMessage + "!"); - e.printStackTrace(); - } -} - diff --git a/tests/055-enum-performance/expected.txt b/tests/055-enum-performance/expected.txt deleted file mode 100644 index d81c19449..000000000 --- a/tests/055-enum-performance/expected.txt +++ /dev/null @@ -1,12 +0,0 @@ -FOUR -ONE -FOURTEEN -NINE -FIVE -TWELVE -SamePackagePublicEnum -basis: performed 40000 iterations -test1: performed 10000 iterations -test2: performed 10000 iterations -test3: performed 10000 iterations -Timing is acceptable. diff --git a/tests/055-enum-performance/info.txt b/tests/055-enum-performance/info.txt deleted file mode 100644 index 2ea1b9d95..000000000 --- a/tests/055-enum-performance/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -This is a performance test of Enum.valueOf(). To see the numbers, invoke -this test with the "--timing" option. diff --git a/tests/055-enum-performance/src/Main.java b/tests/055-enum-performance/src/Main.java deleted file mode 100644 index a576d3a34..000000000 --- a/tests/055-enum-performance/src/Main.java +++ /dev/null @@ -1,199 +0,0 @@ -import otherpackage.OtherPackagePublicEnum; - -public class Main { - /** used by {@link #basisCall} */ - static private int basisTestValue = 12; - - static public void main(String[] args) throws Exception { - boolean timing = (args.length >= 1) && args[0].equals("--timing"); - run(timing); - } - - static public void run(boolean timing) { - preTest(); - - long time0 = System.nanoTime(); - int count1 = test1(500); - long time1 = System.nanoTime(); - int count2 = test2(500); - long time2 = System.nanoTime(); - int count3 = test3(500); - long time3 = System.nanoTime(); - int count4 = basis(2000); - long time4 = System.nanoTime(); - - System.out.println("basis: performed " + count4 + " iterations"); - System.out.println("test1: performed " + count1 + " iterations"); - System.out.println("test2: performed " + count2 + " iterations"); - System.out.println("test3: performed " + count3 + " iterations"); - - double msec1 = (time1 - time0) / (double) count1 / 1000000; - double msec2 = (time2 - time1) / (double) count2 / 1000000; - double msec3 = (time3 - time2) / (double) count3 / 1000000; - double basisMsec = (time4 - time3) / (double) count4 / 1000000; - - double avg = (msec1 + msec2 + msec3) / 3; - if (avg < (basisMsec * 25)) { - System.out.println("Timing is acceptable."); - } else { - System.out.println("Iterations are taking too long!"); - timing = true; - } - - if (timing) { - System.out.printf("basis time: %.3g msec\n", basisMsec); - System.out.printf("test1: %.3g msec per iteration\n", msec1); - System.out.printf("test2: %.3g msec per iteration\n", msec2); - System.out.printf("test3: %.3g msec per iteration\n", msec3); - } - - } - - static public void preTest() { - /* - * This is meant to ensure that the basic enum functionality - * really is working. - */ - - Class<SamePackagePublicEnum> c = SamePackagePublicEnum.class; - - System.out.println(Enum.valueOf(c, "FOUR")); - System.out.println(Enum.valueOf(c, "ONE")); - System.out.println(Enum.valueOf(c, "FOURTEEN")); - System.out.println(Enum.valueOf(c, "NINE")); - System.out.println(Enum.valueOf(c, "FIVE")); - System.out.println(Enum.valueOf(c, "TWELVE")); - - System.out.println(Enum.valueOf(c, "ZERO").getClass().getName()); - } - - static public int basis(int iters) { - /* - * The basis time is the time taken to call a static method - * passing two arguments, which in turn accesses a static - * variable, compares a string, and does a little trivial math - * and a trivial comparison. (That is, this is a mini - * "omnibus" performance metric.) This is clearly going to be - * much faster than Enum.valueOf(), which is why we multiply - * the time before testing. - */ - for (int i = iters; i > 0; i--) { - basisCall(i, "aname"); - basisCall(i, "bname"); - basisCall(i, "cname"); - basisCall(i, "dname"); - basisCall(i, "ename"); - basisCall(i, "fname"); - basisCall(i, "gname"); - basisCall(i, "hname"); - basisCall(i, "iname"); - basisCall(i, "jname"); - basisCall(i, "kname"); - basisCall(i, "lname"); - basisCall(i, "mname"); - basisCall(i, "nname"); - basisCall(i, "oname"); - basisCall(i, "pname"); - basisCall(i, "qname"); - basisCall(i, "rname"); - basisCall(i, "sname"); - basisCall(i, "tname"); - } - - return iters * 20; - } - - static public int basisCall(int i, String name) { - int compare = name.compareTo("fuzzbot"); - - if (i < (basisTestValue * compare)) { - return basisTestValue; - } else { - return i; - } - } - - static public int test1(int iters) { - Class<SamePackagePublicEnum> c = SamePackagePublicEnum.class; - for (int i = iters; i > 0; i--) { - Enum.valueOf(c, "ZERO"); - Enum.valueOf(c, "ONE"); - Enum.valueOf(c, "TWO"); - Enum.valueOf(c, "THREE"); - Enum.valueOf(c, "FOUR"); - Enum.valueOf(c, "FIVE"); - Enum.valueOf(c, "SIX"); - Enum.valueOf(c, "SEVEN"); - Enum.valueOf(c, "EIGHT"); - Enum.valueOf(c, "NINE"); - Enum.valueOf(c, "TEN"); - Enum.valueOf(c, "ELEVEN"); - Enum.valueOf(c, "TWELVE"); - Enum.valueOf(c, "THIRTEEN"); - Enum.valueOf(c, "FOURTEEN"); - Enum.valueOf(c, "FIFTEEN"); - Enum.valueOf(c, "SIXTEEN"); - Enum.valueOf(c, "SEVENTEEN"); - Enum.valueOf(c, "EIGHTEEN"); - Enum.valueOf(c, "NINETEEN"); - } - - return iters * 20; - } - - static public int test2(int iters) { - Class<SamePackagePrivateEnum> c = SamePackagePrivateEnum.class; - for (int i = iters; i > 0; i--) { - Enum.valueOf(c, "ZERO"); - Enum.valueOf(c, "ONE"); - Enum.valueOf(c, "TWO"); - Enum.valueOf(c, "THREE"); - Enum.valueOf(c, "FOUR"); - Enum.valueOf(c, "FIVE"); - Enum.valueOf(c, "SIX"); - Enum.valueOf(c, "SEVEN"); - Enum.valueOf(c, "EIGHT"); - Enum.valueOf(c, "NINE"); - Enum.valueOf(c, "TEN"); - Enum.valueOf(c, "ELEVEN"); - Enum.valueOf(c, "TWELVE"); - Enum.valueOf(c, "THIRTEEN"); - Enum.valueOf(c, "FOURTEEN"); - Enum.valueOf(c, "FIFTEEN"); - Enum.valueOf(c, "SIXTEEN"); - Enum.valueOf(c, "SEVENTEEN"); - Enum.valueOf(c, "EIGHTEEN"); - Enum.valueOf(c, "NINETEEN"); - } - - return iters * 20; - } - - static public int test3(int iters) { - Class<OtherPackagePublicEnum> c = OtherPackagePublicEnum.class; - for (int i = iters; i > 0; i--) { - Enum.valueOf(c, "ZERO"); - Enum.valueOf(c, "ONE"); - Enum.valueOf(c, "TWO"); - Enum.valueOf(c, "THREE"); - Enum.valueOf(c, "FOUR"); - Enum.valueOf(c, "FIVE"); - Enum.valueOf(c, "SIX"); - Enum.valueOf(c, "SEVEN"); - Enum.valueOf(c, "EIGHT"); - Enum.valueOf(c, "NINE"); - Enum.valueOf(c, "TEN"); - Enum.valueOf(c, "ELEVEN"); - Enum.valueOf(c, "TWELVE"); - Enum.valueOf(c, "THIRTEEN"); - Enum.valueOf(c, "FOURTEEN"); - Enum.valueOf(c, "FIFTEEN"); - Enum.valueOf(c, "SIXTEEN"); - Enum.valueOf(c, "SEVENTEEN"); - Enum.valueOf(c, "EIGHTEEN"); - Enum.valueOf(c, "NINETEEN"); - } - - return iters * 20; - } -} diff --git a/tests/055-enum-performance/src/SamePackagePrivateEnum.java b/tests/055-enum-performance/src/SamePackagePrivateEnum.java deleted file mode 100644 index b6759f69f..000000000 --- a/tests/055-enum-performance/src/SamePackagePrivateEnum.java +++ /dev/null @@ -1,5 +0,0 @@ -/*package*/ enum SamePackagePrivateEnum { - ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, - TEN, ELEVEN, TWELVE, THIRTEEN, FOURTEEN, FIFTEEN, SIXTEEN, - SEVENTEEN, EIGHTEEN, NINETEEN; -} diff --git a/tests/055-enum-performance/src/SamePackagePublicEnum.java b/tests/055-enum-performance/src/SamePackagePublicEnum.java deleted file mode 100644 index 3a1c23046..000000000 --- a/tests/055-enum-performance/src/SamePackagePublicEnum.java +++ /dev/null @@ -1,5 +0,0 @@ -public enum SamePackagePublicEnum { - ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, - TEN, ELEVEN, TWELVE, THIRTEEN, FOURTEEN, FIFTEEN, SIXTEEN, - SEVENTEEN, EIGHTEEN, NINETEEN; -} diff --git a/tests/055-enum-performance/src/otherpackage/OtherPackagePublicEnum.java b/tests/055-enum-performance/src/otherpackage/OtherPackagePublicEnum.java deleted file mode 100644 index 4ef4d7878..000000000 --- a/tests/055-enum-performance/src/otherpackage/OtherPackagePublicEnum.java +++ /dev/null @@ -1,7 +0,0 @@ -package otherpackage; - -public enum OtherPackagePublicEnum { - ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, - TEN, ELEVEN, TWELVE, THIRTEEN, FOURTEEN, FIFTEEN, SIXTEEN, - SEVENTEEN, EIGHTEEN, NINETEEN; -} diff --git a/tests/056-const-string-jumbo/build b/tests/056-const-string-jumbo/build deleted file mode 100644 index c5e35dbbc..000000000 --- a/tests/056-const-string-jumbo/build +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Stop if something fails. -set -e - -# Write out files with 32768 total static string declarations, so that -# the reference to "zorch" in the real test file will be guaranteed to -# need a jumbo string reference (it sorts last after all the others). -# Note: Each string reference is stored in a separate static variable, -# and that variable's name is also represented in the strings, which -# is why we can just have 32768 and not 65536 declarations. - -awk ' -BEGIN { - writeFile("Zorch1", 0, 16383); - writeFile("Zorch2", 16384, 32767); -} -function writeFile(name, start, end) { - fileName = "src/" name ".java"; - printf("public class %s {\n", name) > fileName; - for (i = start; i <= end; i++) { - printf(" static public final String s%d = \"%d\";\n", - i, i) > fileName; - } - printf("}\n") > fileName; -}' - -mkdir classes -${JAVAC} -d classes src/*.java - -dx -JXmx500m --debug --dex --no-optimize --positions=none --no-locals \ - --dump-to=classes.lst --output=classes.dex classes -zip test.jar classes.dex diff --git a/tests/056-const-string-jumbo/expected.txt b/tests/056-const-string-jumbo/expected.txt deleted file mode 100644 index bebbf9e7e..000000000 --- a/tests/056-const-string-jumbo/expected.txt +++ /dev/null @@ -1 +0,0 @@ -zorch diff --git a/tests/056-const-string-jumbo/info.txt b/tests/056-const-string-jumbo/info.txt deleted file mode 100644 index c4ba85600..000000000 --- a/tests/056-const-string-jumbo/info.txt +++ /dev/null @@ -1 +0,0 @@ -Test that the opcode const-string/jumbo works. diff --git a/tests/056-const-string-jumbo/src/Main.java b/tests/056-const-string-jumbo/src/Main.java deleted file mode 100644 index 68d6e539e..000000000 --- a/tests/056-const-string-jumbo/src/Main.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class Main { - static public void main(String[] args) { - System.out.println("zorch"); - } -} diff --git a/tests/057-iteration-performance/expected.txt b/tests/057-iteration-performance/expected.txt deleted file mode 100644 index 9d59a5e13..000000000 --- a/tests/057-iteration-performance/expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -Running A... -Running B... -Running C... -Running D... -Running E... -Running F... -Running G... -Running H... -Done with runs. - -All times are within the expected ranges. diff --git a/tests/057-iteration-performance/info.txt b/tests/057-iteration-performance/info.txt deleted file mode 100644 index 36b5adc60..000000000 --- a/tests/057-iteration-performance/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -This is a performance test of various iterator uses. To see the numbers, -invoke this test with the "--timing" option. diff --git a/tests/057-iteration-performance/src/Main.java b/tests/057-iteration-performance/src/Main.java deleted file mode 100644 index defbd7576..000000000 --- a/tests/057-iteration-performance/src/Main.java +++ /dev/null @@ -1,1108 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.ArrayList; - -/** - * The matrix of tests includes the A-E axis for loop body contents and - * the 0-5 axis for iterator style. - * - * <ul> - * <li>A: empty body</li> - * <li>B: array element access and update</li> - * <li>C: instance field access and update</li> - * <li>D: method call to empty method</li> - * <li>E: synch and then method call to empty method</li> - * <li>F: 5 method calls to empty method</li> - * <li>G: one small object allocation (empty constructor)</li> - * <li>H: copy 8k of bytes from one array to another</li> - * </ul> - * - * <ul> - * <li>0: for() loop backward to 0</li> - * <li>1: for() loop forward to local variable</li> - * <li>2: for() loop forward to array length</li> - * <li>3: for(:) loop over array</li> - * <li>4: for() loop forward to instance variable</li> - * <li>5: for() loop forward to trivial method call</li> - * <li>6: for(:) loop over ArrayList</li> - * </ul> - */ -public class Main { - static public final int BODIES = 8; - static public final int LOOPS = 7; - - static public void main(String[] args) throws Exception { - boolean timing = (args.length >= 1) && args[0].equals("--timing"); - - int iters = 100; - double probeSec; - - for (;;) { - long t0 = System.nanoTime(); - runAllTests(iters, false); - long t1 = System.nanoTime(); - - probeSec = (t1 - t0) / 1000000000.0; - if (probeSec > 0.25) { - break; - } - - iters *= 2; - } - - // Attempt to arrange for the real test to take 20 seconds. - iters = (int) ((iters / probeSec) * 20); - - if (timing) { - System.out.println("iters = " + iters); - } - - run(timing, iters); - } - - static private enum Normalization { - NONE, PER_COLUMN, TOP_LEFT; - } - - static public void printTimings(double[][] timings, Normalization norm) { - System.out.println(); - System.out.printf("%-7s A B C D E" + - " F G H\n", - (norm == Normalization.NONE) ? "(usec)" : "(ratio)"); - System.out.println(" -------- -------- -------- -------- " + - "-------- -------- -------- --------"); - - double bases[] = new double[BODIES]; - for (int i = 0; i < BODIES; i++) { - double n; - switch (norm) { - case PER_COLUMN: n = timings[i][0]; break; - case TOP_LEFT: n = timings[0][0]; break; - default /*NONE*/: n = 1.0; break; - } - bases[i] = n; - } - - for (int i = 0; i < LOOPS; i++) { - System.out.printf("%4d: %8.3g %8.3g %8.3g %8.3g %8.3g %8.3g " + - "%8.3g %8.3g\n", - i, - timings[0][i] / bases[0], - timings[1][i] / bases[1], - timings[2][i] / bases[2], - timings[3][i] / bases[3], - timings[4][i] / bases[4], - timings[5][i] / bases[5], - timings[6][i] / bases[6], - timings[7][i] / bases[7]); - } - } - - static public void run(boolean timing, int iters) { - double[][] timings = null; // assign to avoid apparent javac bug - - // Try up to 5 times to get good times. - for (int i = 0; i < 5; i++) { - double[][] newTimings = runAllTests(iters, timing || (i == 0)); - - if (timings == null) { - timings = newTimings; - } else { - combineTimings(timings, newTimings, i); - } - - if (checkTimes(timings, timing)) { - break; - } - } - - System.out.println("Done with runs."); - - boolean goodTimes = checkTimes(timings, true); - - if (! goodTimes) { - timing = true; - } - - if (timing) { - printTimings(timings, Normalization.NONE); - printTimings(timings, Normalization.TOP_LEFT); - printTimings(timings, Normalization.PER_COLUMN); - } else { - System.out.println("\nAll times are within the expected ranges."); - } - } - - static public void combineTimings(double[][] target, double[][] newTimes, - int oldWeight) { - for (int i = 0; i < target.length; i++) { - for (int j = 0; j < target[i].length; j++) { - target[i][j] = - ((target[i][j] * oldWeight) + newTimes[i][j]) - / (oldWeight + 1); - } - } - } - - static public boolean checkTimes(double[][] timings, boolean print) { - // expected increase over A1 - double[][] expected = { - { 1.0, 2.3, 2.4, 3.3, 6.5, 12.0, 57.0, 94.0 }, - { 1.2, 2.4, 2.5, 3.4, 6.6, 12.2, 60.0, 95.0 }, - { 1.5, 2.6, 2.9, 3.5, 6.7, 12.4, 63.0, 96.0 }, - { 1.6, 2.8, 2.9, 3.6, 6.8, 12.6, 63.5, 97.0 }, - { 1.7, 3.0, 2.9, 3.7, 6.9, 12.8, 64.0, 98.0 }, - { 6.0, 6.0, 6.0, 7.0, 10.0, 15.0, 64.5, 105.0 }, - { 31.0, 31.2, 31.5, 34.0, 41.0, 43.0, 91.0, 135.0 }, - }; - - boolean good = true; - - for (int x = 0; x < BODIES; x++) { - for (int y = 0; y < LOOPS; y++) { - double ratio = timings[x][y] / timings[0][0]; - if (ratio > expected[y][x]) { - if (print) { - System.out.printf("%c%d is too slow: %.3g vs. %.3g\n", - (char) (x + 'A'), y, ratio, expected[y][x]); - } - good = false; - } - } - } - - return good; - } - - static public double[][] runAllTests(int iters, boolean print) { - // diters is used to get usec, not nanosec; hence the extra 1000. - double diters = (double) iters * INNER_COUNT * 1000; - - double[][] timings = new double[BODIES][LOOPS]; - long t0, t1, t2, t3, t4, t5, t6, t7; - - // Column A - - if (print) { - System.out.println("Running A..."); - } - - t0 = System.nanoTime(); - testA0(iters); - t1 = System.nanoTime(); - testA1(iters); - t2 = System.nanoTime(); - testA2(iters); - t3 = System.nanoTime(); - testA3(iters); - t4 = System.nanoTime(); - testA4(iters); - t5 = System.nanoTime(); - testA5(iters); - t6 = System.nanoTime(); - testA6(iters); - t7 = System.nanoTime(); - - timings[0][0] = (t1 - t0) / diters; - timings[0][1] = (t2 - t1) / diters; - timings[0][2] = (t3 - t2) / diters; - timings[0][3] = (t4 - t3) / diters; - timings[0][4] = (t5 - t4) / diters; - timings[0][5] = (t6 - t5) / diters; - timings[0][6] = (t7 - t6) / diters; - - // Column B - - if (print) { - System.out.println("Running B..."); - } - - t0 = System.nanoTime(); - testB0(iters); - t1 = System.nanoTime(); - testB1(iters); - t2 = System.nanoTime(); - testB2(iters); - t3 = System.nanoTime(); - testB3(iters); - t4 = System.nanoTime(); - testB4(iters); - t5 = System.nanoTime(); - testB5(iters); - t6 = System.nanoTime(); - testB6(iters); - t7 = System.nanoTime(); - - timings[1][0] = (t1 - t0) / diters; - timings[1][1] = (t2 - t1) / diters; - timings[1][2] = (t3 - t2) / diters; - timings[1][3] = (t4 - t3) / diters; - timings[1][4] = (t5 - t4) / diters; - timings[1][5] = (t6 - t5) / diters; - timings[1][6] = (t7 - t6) / diters; - - // Column C - - if (print) { - System.out.println("Running C..."); - } - - t0 = System.nanoTime(); - testC0(iters); - t1 = System.nanoTime(); - testC1(iters); - t2 = System.nanoTime(); - testC2(iters); - t3 = System.nanoTime(); - testC3(iters); - t4 = System.nanoTime(); - testC4(iters); - t5 = System.nanoTime(); - testC5(iters); - t6 = System.nanoTime(); - testC6(iters); - t7 = System.nanoTime(); - - timings[2][0] = (t1 - t0) / diters; - timings[2][1] = (t2 - t1) / diters; - timings[2][2] = (t3 - t2) / diters; - timings[2][3] = (t4 - t3) / diters; - timings[2][4] = (t5 - t4) / diters; - timings[2][5] = (t6 - t5) / diters; - timings[2][6] = (t7 - t6) / diters; - - // Column D - - if (print) { - System.out.println("Running D..."); - } - - t0 = System.nanoTime(); - testD0(iters); - t1 = System.nanoTime(); - testD1(iters); - t2 = System.nanoTime(); - testD2(iters); - t3 = System.nanoTime(); - testD3(iters); - t4 = System.nanoTime(); - testD4(iters); - t5 = System.nanoTime(); - testD5(iters); - t6 = System.nanoTime(); - testD6(iters); - t7 = System.nanoTime(); - - timings[3][0] = (t1 - t0) / diters; - timings[3][1] = (t2 - t1) / diters; - timings[3][2] = (t3 - t2) / diters; - timings[3][3] = (t4 - t3) / diters; - timings[3][4] = (t5 - t4) / diters; - timings[3][5] = (t6 - t5) / diters; - timings[3][6] = (t7 - t6) / diters; - - // Column E - - if (print) { - System.out.println("Running E..."); - } - - t0 = System.nanoTime(); - testE0(iters); - t1 = System.nanoTime(); - testE1(iters); - t2 = System.nanoTime(); - testE2(iters); - t3 = System.nanoTime(); - testE3(iters); - t4 = System.nanoTime(); - testE4(iters); - t5 = System.nanoTime(); - testE5(iters); - t6 = System.nanoTime(); - testE6(iters); - t7 = System.nanoTime(); - - timings[4][0] = (t1 - t0) / diters; - timings[4][1] = (t2 - t1) / diters; - timings[4][2] = (t3 - t2) / diters; - timings[4][3] = (t4 - t3) / diters; - timings[4][4] = (t5 - t4) / diters; - timings[4][5] = (t6 - t5) / diters; - timings[4][6] = (t7 - t6) / diters; - - // Column F - - if (print) { - System.out.println("Running F..."); - } - - t0 = System.nanoTime(); - testF0(iters); - t1 = System.nanoTime(); - testF1(iters); - t2 = System.nanoTime(); - testF2(iters); - t3 = System.nanoTime(); - testF3(iters); - t4 = System.nanoTime(); - testF4(iters); - t5 = System.nanoTime(); - testF5(iters); - t6 = System.nanoTime(); - testF6(iters); - t7 = System.nanoTime(); - - timings[5][0] = (t1 - t0) / diters; - timings[5][1] = (t2 - t1) / diters; - timings[5][2] = (t3 - t2) / diters; - timings[5][3] = (t4 - t3) / diters; - timings[5][4] = (t5 - t4) / diters; - timings[5][5] = (t6 - t5) / diters; - timings[5][6] = (t7 - t6) / diters; - - // Reduce the iters for the last two, since they're much slower. - - iters /= 5; - diters /= 5; - - // Column G - - if (print) { - System.out.println("Running G..."); - } - - t0 = System.nanoTime(); - testG0(iters); - t1 = System.nanoTime(); - testG1(iters); - t2 = System.nanoTime(); - testG2(iters); - t3 = System.nanoTime(); - testG3(iters); - t4 = System.nanoTime(); - testG4(iters); - t5 = System.nanoTime(); - testG5(iters); - t6 = System.nanoTime(); - testG6(iters); - t7 = System.nanoTime(); - - timings[6][0] = (t1 - t0) / diters; - timings[6][1] = (t2 - t1) / diters; - timings[6][2] = (t3 - t2) / diters; - timings[6][3] = (t4 - t3) / diters; - timings[6][4] = (t5 - t4) / diters; - timings[6][5] = (t6 - t5) / diters; - timings[6][6] = (t7 - t6) / diters; - - // Column H - - if (print) { - System.out.println("Running H..."); - } - - t0 = System.nanoTime(); - testH0(iters); - t1 = System.nanoTime(); - testH1(iters); - t2 = System.nanoTime(); - testH2(iters); - t3 = System.nanoTime(); - testH3(iters); - t4 = System.nanoTime(); - testH4(iters); - t5 = System.nanoTime(); - testH5(iters); - t6 = System.nanoTime(); - testH6(iters); - t7 = System.nanoTime(); - - timings[7][0] = (t1 - t0) / diters; - timings[7][1] = (t2 - t1) / diters; - timings[7][2] = (t3 - t2) / diters; - timings[7][3] = (t4 - t3) / diters; - timings[7][4] = (t5 - t4) / diters; - timings[7][5] = (t6 - t5) / diters; - timings[7][6] = (t7 - t6) / diters; - - return timings; - } - - // Helper bits and pieces - - static private final int INNER_COUNT = 100; - static private final int[] INNER_ARRAY = new int[INNER_COUNT]; - static private final ArrayList<Object> INNER_LIST = - new ArrayList<Object>(INNER_COUNT); - static private final Target TARGET = new Target(); - static private final int ARRAY_BYTES = 8192; - static private final byte[] BYTES_1 = new byte[ARRAY_BYTES]; - static private final byte[] BYTES_2 = new byte[ARRAY_BYTES]; - - static { - for (int i = 0; i < INNER_COUNT; i++) { - INNER_LIST.add(null); - } - } - - public static class Target { - public int value; - public int size = INNER_COUNT; - - public void simple() { - // empty - } - - public int size() { - return size; - } - } - - // The tests themselves - - static public void testA0(int iters) { - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - // empty - } - } - } - - static public void testA1(int iters) { - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - // empty - } - } - } - - static public void testA2(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - // empty - } - } - } - - static public void testA3(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - // empty - } - } - } - - static public void testA4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - // empty - } - } - } - - static public void testA5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - // empty - } - } - } - - static public void testA6(int iters) { - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - // empty - } - } - } - - static public void testB0(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - target.value++; - } - } - } - - static public void testB1(int iters) { - Target target = TARGET; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - target.value++; - } - } - } - - static public void testB2(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - target.value++; - } - } - } - - static public void testB3(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - target.value++; - } - } - } - - static public void testB4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - target.value++; - } - } - } - - static public void testB5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - target.value++; - } - } - } - - static public void testB6(int iters) { - Target target = TARGET; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - target.value++; - } - } - } - - static public void testC0(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT - 1; i >= 0; i--) { - array[i]++; - } - } - } - - static public void testC1(int iters) { - int[] array = INNER_ARRAY; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - array[i]++; - } - } - } - - static public void testC2(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - array[i]++; - } - } - } - - static public void testC3(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - array[0] = i + 1; - } - } - } - - static public void testC4(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - array[i]++; - } - } - } - - static public void testC5(int iters) { - int[] array = INNER_ARRAY; - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - array[i]++; - } - } - } - - static public void testC6(int iters) { - int[] array = INNER_ARRAY; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - array[0]++; - } - } - } - - static public void testD0(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - target.simple(); - } - } - } - - static public void testD1(int iters) { - Target target = TARGET; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - target.simple(); - } - } - } - - static public void testD2(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - target.simple(); - } - } - } - - static public void testD3(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - target.simple(); - } - } - } - - static public void testD4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - target.simple(); - } - } - } - - static public void testD5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - target.simple(); - } - } - } - - static public void testD6(int iters) { - Target target = TARGET; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - target.simple(); - } - } - } - - static public void testE0(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE1(int iters) { - Target target = TARGET; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE2(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE3(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testE6(int iters) { - Target target = TARGET; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - synchronized (target) { - target.simple(); - } - } - } - } - - static public void testF0(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF1(int iters) { - Target target = TARGET; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF2(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF3(int iters) { - Target target = TARGET; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testF6(int iters) { - Target target = TARGET; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - target.simple(); - target.simple(); - target.simple(); - target.simple(); - target.simple(); - } - } - } - - static public void testG0(int iters) { - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - new Target(); - } - } - } - - static public void testG1(int iters) { - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - new Target(); - } - } - } - - static public void testG2(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - new Target(); - } - } - } - - static public void testG3(int iters) { - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - new Target(); - } - } - } - - static public void testG4(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - new Target(); - } - } - } - - static public void testG5(int iters) { - Target target = TARGET; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - new Target(); - } - } - } - - static public void testG6(int iters) { - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - new Target(); - } - } - } - - static public void testH0(int iters) { - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - - for (int outer = iters; outer > 0; outer--) { - for (int i = INNER_COUNT; i > 0; i--) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH1(int iters) { - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - int count = INNER_COUNT; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < count; i++) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH2(int iters) { - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < array.length; i++) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH3(int iters) { - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - int[] array = INNER_ARRAY; - - for (int outer = iters; outer > 0; outer--) { - for (int i : array) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH4(int iters) { - Target target = TARGET; - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size; i++) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH5(int iters) { - Target target = TARGET; - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - - for (int outer = iters; outer > 0; outer--) { - for (int i = 0; i < target.size(); i++) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } - - static public void testH6(int iters) { - byte[] b1 = BYTES_1; - byte[] b2 = BYTES_2; - ArrayList<Object> list = INNER_LIST; - - for (int outer = iters; outer > 0; outer--) { - for (Object o : list) { - System.arraycopy(b1, 0, b2, 0, ARRAY_BYTES); - } - } - } -} diff --git a/tests/058-enum-order/expected.txt b/tests/058-enum-order/expected.txt deleted file mode 100644 index b8124046c..000000000 --- a/tests/058-enum-order/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -0: CORN -1: BLUEBERRY -2: CRANBERRY -3: BRAN -4: BLACKBERRY diff --git a/tests/058-enum-order/info.txt b/tests/058-enum-order/info.txt deleted file mode 100644 index b9809fd59..000000000 --- a/tests/058-enum-order/info.txt +++ /dev/null @@ -1 +0,0 @@ -Test that the ordering of enums is as expected. diff --git a/tests/058-enum-order/src/Main.java b/tests/058-enum-order/src/Main.java deleted file mode 100644 index 74048c65f..000000000 --- a/tests/058-enum-order/src/Main.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Test enum ordering. - */ -public class Main { - public static enum Muffin { - CORN, BLUEBERRY, CRANBERRY, BRAN, BLACKBERRY; - } - - public static void main(String args[]) { - Muffin[] array = Muffin.class.getEnumConstants(); - for (Muffin m : array) { - System.out.println(m.ordinal() + ": " + m); - } - } -} diff --git a/tests/059-finalizer-throw/expected.txt b/tests/059-finalizer-throw/expected.txt deleted file mode 100644 index cbc9ece76..000000000 --- a/tests/059-finalizer-throw/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -In finalizer -done diff --git a/tests/059-finalizer-throw/info.txt b/tests/059-finalizer-throw/info.txt deleted file mode 100644 index 626137208..000000000 --- a/tests/059-finalizer-throw/info.txt +++ /dev/null @@ -1 +0,0 @@ -Verify that exceptions thrown from finalizers are ignored. diff --git a/tests/059-finalizer-throw/src/Main.java b/tests/059-finalizer-throw/src/Main.java deleted file mode 100644 index 0937361c0..000000000 --- a/tests/059-finalizer-throw/src/Main.java +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2008 The Android Open Source Project - - -/* - * Throw an exception from a finalizer and make sure it's harmless. Under - * Dalvik this may also generate a warning in the log file. - */ -public class Main { - static Object waiter = new Object(); - static volatile boolean didFinal = false; - - static void createAndForget() { - Main main = new Main(); - } - - public static void main(String[] args) { - createAndForget(); - - System.gc(); - System.runFinalization(); - - while (!didFinal) { - try { - Thread.sleep(500); - } catch (InterruptedException ie) { - System.err.println(ie); - } - } - - /* give it a chance to cause mayhem */ - try { - Thread.sleep(750); - } catch (InterruptedException ie) { - System.err.println(ie); - } - - System.out.println("done"); - } - - protected void finalize() throws Throwable { - System.out.println("In finalizer"); - - didFinal = true; - - throw new InterruptedException("whee"); - } -} - diff --git a/tests/060-reflection-security/expected.txt b/tests/060-reflection-security/expected.txt deleted file mode 100644 index 69d6da834..000000000 --- a/tests/060-reflection-security/expected.txt +++ /dev/null @@ -1,58 +0,0 @@ -Setting SecurityManager. -checkPermission: (java.security.SecurityPermission getProperty.package.access) -checkPackageAccess: java.lang -Running tests. - -getFields A -checkMemberAccess: other.Blort, PUBLIC -getFields B -checkMemberAccess: other.Blort, PUBLIC -java.lang.SecurityException: Denied! - -getDeclaredFields A -checkMemberAccess: other.Blort, DECLARED -checkPermission: (java.lang.RuntimePermission accessDeclaredMembers) -getDeclaredFields B -checkMemberAccess: other.Blort, DECLARED -java.lang.SecurityException: Denied! - -getMethods A -checkMemberAccess: other.Blort, PUBLIC -getMethods B -checkMemberAccess: other.Blort, PUBLIC -java.lang.SecurityException: Denied! - -getDeclaredMethods A -checkMemberAccess: other.Blort, DECLARED -checkPermission: (java.lang.RuntimePermission accessDeclaredMembers) -getDeclaredMethods B -checkMemberAccess: other.Blort, DECLARED -java.lang.SecurityException: Denied! - -getConstructors A -checkMemberAccess: other.Blort, PUBLIC -getConstructors B -checkMemberAccess: other.Blort, PUBLIC -java.lang.SecurityException: Denied! - -getDeclaredConstructors A -checkMemberAccess: other.Blort, DECLARED -checkPermission: (java.lang.RuntimePermission accessDeclaredMembers) -getDeclaredConstructors B -checkMemberAccess: other.Blort, DECLARED -java.lang.SecurityException: Denied! - -getClasses A -checkMemberAccess: other.Blort, PUBLIC -getClasses B -checkMemberAccess: other.Blort, PUBLIC -java.lang.SecurityException: Denied! - -getDeclaredClasses A -checkMemberAccess: other.Blort, DECLARED -checkPermission: (java.lang.RuntimePermission accessDeclaredMembers) -getDeclaredClasses B -checkMemberAccess: other.Blort, DECLARED -java.lang.SecurityException: Denied! - -Done! diff --git a/tests/060-reflection-security/info.txt b/tests/060-reflection-security/info.txt deleted file mode 100644 index ed0adf580..000000000 --- a/tests/060-reflection-security/info.txt +++ /dev/null @@ -1 +0,0 @@ -This is a basic test of how a SecurityManager can impact reflection calls. diff --git a/tests/060-reflection-security/src/Enforcer.java b/tests/060-reflection-security/src/Enforcer.java deleted file mode 100644 index ad688172c..000000000 --- a/tests/060-reflection-security/src/Enforcer.java +++ /dev/null @@ -1,66 +0,0 @@ -import java.lang.reflect.Member; -import java.security.Permission; - -public class Enforcer extends SecurityManager { - public static final Enforcer THE_ONE = new Enforcer(); - - /** whether to deny the next request */ - private boolean deny; - - /** - * Not publicly constructable. Use {@link #THE_ONE}. - */ - private Enforcer() { - deny = false; - } - - /** - * Deny the next request. - */ - public void denyNext() { - deny = true; - } - - /** - * Throw an exception if the instance had been asked to deny a request. - */ - private void denyIfAppropriate() { - if (deny) { - deny = false; - throw new SecurityException("Denied!"); - } - } - - public void checkPackageAccess(String pkg) { - System.out.println("checkPackageAccess: " + pkg); - denyIfAppropriate(); - super.checkPackageAccess(pkg); - } - - public void checkMemberAccess(Class c, int which) { - String member; - - switch (which) { - case Member.DECLARED: member = "DECLARED"; break; - case Member.PUBLIC: member = "PUBLIC"; break; - default: member = "<" + which + ">?"; break; - } - - System.out.println("checkMemberAccess: " + c.getName() + ", " + - member); - denyIfAppropriate(); - super.checkMemberAccess(c, which); - } - - public void checkPermission(Permission perm) { - System.out.println("checkPermission: " + perm); - denyIfAppropriate(); - super.checkPermission(perm); - } - - public void checkPermission(Permission perm, Object context) { - System.out.println("checkPermission: " + perm + ", " + context); - denyIfAppropriate(); - super.checkPermission(perm, context); - } -} diff --git a/tests/060-reflection-security/src/Main.java b/tests/060-reflection-security/src/Main.java deleted file mode 100644 index 9db0251ec..000000000 --- a/tests/060-reflection-security/src/Main.java +++ /dev/null @@ -1,158 +0,0 @@ -import other.Blort; - -public class Main { - static public boolean VERBOSE = false; - - static public void main(String[] args) { - if (args.length > 0) { - if (args[0].equals("--verbose")) { - VERBOSE = true; - } - } - - System.out.println("Setting SecurityManager."); - System.setSecurityManager(Enforcer.THE_ONE); - System.out.println("Running tests."); - accessStuff(); - System.out.println("\nDone!"); - } - - static public void report(Throwable t) { - if (VERBOSE) { - t.printStackTrace(System.out); - } else { - System.out.println(t); - } - } - - static public void accessStuff() { - Class c = other.Blort.class; - - /* - * Note: We don't use reflection to factor out these tests, - * becuase reflection also calls into the SecurityManager, and - * we don't want to conflate the calls nor assume too much - * in general about what calls reflection will cause. - */ - - System.out.println("\ngetFields A"); - try { - c.getFields(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getFields B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getFields(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetDeclaredFields A"); - try { - c.getDeclaredFields(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getDeclaredFields B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getDeclaredFields(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetMethods A"); - try { - c.getMethods(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getMethods B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getMethods(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetDeclaredMethods A"); - try { - c.getDeclaredMethods(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getDeclaredMethods B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getDeclaredMethods(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetConstructors A"); - try { - c.getConstructors(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getConstructors B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getConstructors(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetDeclaredConstructors A"); - try { - c.getDeclaredConstructors(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getDeclaredConstructors B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getDeclaredConstructors(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetClasses A"); - try { - c.getClasses(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getClasses B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getClasses(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("\ngetDeclaredClasses A"); - try { - c.getDeclaredClasses(); - } catch (Exception ex) { - report(ex); - } - - System.out.println("getDeclaredClasses B"); - Enforcer.THE_ONE.denyNext(); - try { - c.getDeclaredClasses(); - } catch (Exception ex) { - report(ex); - } - } -} diff --git a/tests/060-reflection-security/src/other/Blort.java b/tests/060-reflection-security/src/other/Blort.java deleted file mode 100644 index 033ae6909..000000000 --- a/tests/060-reflection-security/src/other/Blort.java +++ /dev/null @@ -1,24 +0,0 @@ -package other; - -public class Blort { - private int privateField; - /*package*/ int packageField; - protected int protectedField; - public int publicField; - - private void privateMethod() { - // This space intentionally left blank. - } - - /*package*/ void packageMethod() { - // This space intentionally left blank. - } - - protected void protectedMethod() { - // This space intentionally left blank. - } - - public void publicMethod() { - // This space intentionally left blank. - } -} diff --git a/tests/061-out-of-memory/expected.txt b/tests/061-out-of-memory/expected.txt deleted file mode 100644 index e1ed5da64..000000000 --- a/tests/061-out-of-memory/expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -tests beginning -testOomeLarge beginning -testOomeLarge succeeded -testOomeSmall beginning -testOomeSmall succeeded -tests succeeded diff --git a/tests/061-out-of-memory/info.txt b/tests/061-out-of-memory/info.txt deleted file mode 100644 index 523f3a22a..000000000 --- a/tests/061-out-of-memory/info.txt +++ /dev/null @@ -1 +0,0 @@ -Tests the various ways that an OutOfMemoryError can be constructed and thrown. diff --git a/tests/061-out-of-memory/src/Main.java b/tests/061-out-of-memory/src/Main.java deleted file mode 100644 index fcf71362d..000000000 --- a/tests/061-out-of-memory/src/Main.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.util.LinkedList; - -/** - * Exercise the construction and throwing of OutOfMemoryError. - */ -public class Main { - public static void main(String args[]) { - System.out.println("tests beginning"); - testOomeLarge(); - testOomeSmall(); - System.out.println("tests succeeded"); - } - - private static void testOomeLarge() { - System.out.println("testOomeLarge beginning"); - - /* Just shy of the typical max heap size so that it will actually - * try to allocate it instead of short-circuiting. - */ - final int SIXTEEN_MB = (16 * 1024 * 1024 - 32); - - Boolean sawEx = false; - byte a[]; - - try { - a = new byte[SIXTEEN_MB]; - } catch (OutOfMemoryError oom) { - //Log.i(TAG, "HeapTest/OomeLarge caught " + oom); - sawEx = true; - } - - if (!sawEx) { - throw new RuntimeException("Test failed: " + - "OutOfMemoryError not thrown"); - } - - System.out.println("testOomeLarge succeeded"); - } - - /* Do this in another method so that the GC has a chance of freeing the - * list afterwards. Even if we null out list when we're done, the conservative - * GC may see a stale pointer to it in a register. - */ - private static boolean testOomeSmallInternal() { - final int SIXTEEN_MB = (16 * 1024 * 1024); - final int LINK_SIZE = 6 * 4; // estimated size of a LinkedList's node - - LinkedList<Object> list = new LinkedList<Object>(); - - /* Allocate progressively smaller objects to fill up the entire heap. - */ - int objSize = 1 * 1024 * 1024; - while (objSize >= LINK_SIZE) { - boolean sawEx = false; - try { - for (int i = 0; i < SIXTEEN_MB / objSize; i++) { - list.add((Object)new byte[objSize]); - } - } catch (OutOfMemoryError oom) { - sawEx = true; - } - - if (!sawEx) { - return false; - } - - objSize = (objSize * 4) / 5; - } - - return true; - } - - private static void testOomeSmall() { - System.out.println("testOomeSmall beginning"); - if (!testOomeSmallInternal()) { - /* Can't reliably throw this from inside the internal function, because - * we may not be able to allocate the RuntimeException. - */ - throw new RuntimeException("Test failed: " + - "OutOfMemoryError not thrown while filling heap"); - } - System.out.println("testOomeSmall succeeded"); - } -} diff --git a/tests/062-character-encodings/expected.txt b/tests/062-character-encodings/expected.txt deleted file mode 100644 index e82e437df..000000000 --- a/tests/062-character-encodings/expected.txt +++ /dev/null @@ -1,407 +0,0 @@ -Big5 - csBig5 - windows-950 - windows-950-2000 - x-big5 -BOCU-1 - csBOCU-1 - ibm-1214 - ibm-1215 -CESU-8 - ibm-9400 -cp864 - IBM864 - csIBM864 - ibm-864 - ibm-864_X110-1999 -EUC-JP - Extended_UNIX_Code_Packed_Format_for_Japanese - X-EUC-JP - csEUCPkdFmtJapanese - eucjis - ibm-954 - ibm-954_P101-2007 - ujis -GB2312 - 1383 - EUC-CN - cp1383 - csGB2312 - hp15CN - ibm-1383 - ibm-1383_P110-1999 - ibm-1383_VPUA - ibm-eucCN -GBK - CP936 - MS936 - windows-936 - windows-936-2000 -HZ-GB-2312 - HZ -ISO-2022-JP - csISO2022JP -ISO-8859-1 - 819 - 8859_1 - IBM819 - ISO_8859-1:1987 - cp819 - csISOLatin1 - ibm-819 - iso-ir-100 - l1 - latin1 -ISO-8859-10 - ISO_8859-10:1992 - csISOLatin6 - iso-8859_10-1998 - iso-ir-157 - l6 - latin6 -ISO-8859-13 - 8859_13 - 921 - cp921 - ibm-921 - ibm-921_P100-1995 - windows-28603 -ISO-8859-14 - ISO_8859-14:1998 - iso-8859_14-1998 - iso-celtic - iso-ir-199 - l8 - latin8 -ISO-8859-15 - 8859_15 - 923 - Latin-9 - cp923 - csisolatin0 - csisolatin9 - ibm-923 - ibm-923_P100-1998 - iso8859_15_fdis - l9 - latin0 - windows-28605 -ISO-8859-16 - ISO_8859-16:2001 - iso-8859_16-2001 - iso-ir-226 - l10 - latin10 -ISO-8859-2 - 8859_2 - 912 - ISO_8859-2:1987 - cp912 - csISOLatin2 - ibm-912 - ibm-912_P100-1995 - iso-ir-101 - l2 - latin2 - windows-28592 -ISO-8859-3 - 8859_3 - 913 - ISO_8859-3:1988 - cp913 - csISOLatin3 - ibm-913 - ibm-913_P100-2000 - iso-ir-109 - l3 - latin3 - windows-28593 -ISO-8859-4 - 8859_4 - 914 - ISO_8859-4:1988 - cp914 - csISOLatin4 - ibm-914 - ibm-914_P100-1995 - iso-ir-110 - l4 - latin4 - windows-28594 -ISO-8859-5 - 8859_5 - 915 - ISO_8859-5:1988 - cp915 - csISOLatinCyrillic - cyrillic - ibm-915 - ibm-915_P100-1995 - iso-ir-144 - windows-28595 -ISO-8859-6 - 1089 - 8859_6 - ASMO-708 - ECMA-114 - ISO-8859-6-E - ISO-8859-6-I - ISO_8859-6:1987 - arabic - cp1089 - csISOLatinArabic - ibm-1089 - ibm-1089_P100-1995 - iso-ir-127 - windows-28596 -ISO-8859-7 - ECMA-118 - ELOT_928 - ISO_8859-7:1987 - csISOLatinGreek - greek - greek8 - ibm-9005 - ibm-9005_X110-2007 - iso-ir-126 - sun_eu_greek - windows-28597 -ISO-8859-8 - 8859_8 - ISO-8859-8-E - ISO-8859-8-I - ISO_8859-8:1988 - csISOLatinHebrew - hebrew - ibm-5012 - ibm-5012_P100-1999 - iso-ir-138 - windows-28598 -ISO-8859-9 - 8859_9 - 920 - ECMA-128 - ISO_8859-9:1989 - cp920 - csISOLatin5 - ibm-920 - ibm-920_P100-1995 - iso-ir-148 - l5 - latin5 - windows-28599 -KOI8-R - cp878 - csKOI8R - ibm-878 - ibm-878_P100-1996 - koi8 - windows-20866 -macintosh - csMacintosh - mac - macos-0_2-10.2 - windows-10000 -SCSU - ibm-1212 - ibm-1213 -Shift_JIS - IBM-943C - MS_Kanji - cp932 - cp943c - csShiftJIS - csWindows31J - ibm-943 - ibm-943_P15A-2003 - ibm-943_VSUB_VPUA - ms932 - pck - sjis - windows-31j - windows-932 - x-ms-cp932 - x-sjis -TIS-620 - cp874 - eucTH - ibm-874 - ibm-874_P100-1995 - ibm-9066 - tis620.2533 -US-ASCII - 646 - ANSI_X3.4-1968 - ANSI_X3.4-1986 - ASCII - IBM367 - ISO646-US - ISO_646.irv:1991 - ascii7 - cp367 - csASCII - ibm-367 - iso-ir-6 - iso_646.irv:1983 - us - windows-20127 -UTF-16 - ISO-10646-UCS-2 - csUnicode - ibm-1204 - ibm-1205 - ucs-2 - unicode -UTF-16BE - UTF16_BigEndian - cp1200 - cp1201 - ibm-1200 - ibm-1201 - ibm-13488 - ibm-13489 - ibm-17584 - ibm-17585 - ibm-21680 - ibm-21681 - ibm-25776 - ibm-25777 - ibm-61955 - ibm-61956 - windows-1201 - x-utf-16be -UTF-16LE - UTF16_LittleEndian - ibm-1202 - ibm-1203 - ibm-13490 - ibm-13491 - ibm-17586 - ibm-17587 - ibm-21682 - ibm-21683 - ibm-25778 - ibm-25779 - windows-1200 - x-utf-16le -UTF-32 - ISO-10646-UCS-4 - csUCS4 - ibm-1236 - ibm-1237 - ucs-4 -UTF-32BE - UTF32_BigEndian - ibm-1232 - ibm-1233 -UTF-32LE - UTF32_LittleEndian - ibm-1234 - ibm-1235 -UTF-7 - windows-65000 -UTF-8 - cp1208 - ibm-1208 - ibm-1209 - ibm-13496 - ibm-13497 - ibm-17592 - ibm-17593 - ibm-5304 - ibm-5305 - windows-65001 -windows-1250 - cp1250 - ibm-5346 - ibm-5346_P100-1998 -windows-1251 - ANSI1251 - cp1251 - ibm-5347 - ibm-5347_P100-1998 -windows-1252 - cp1252 - ibm-5348 - ibm-5348_P100-1997 -windows-1253 - cp1253 - ibm-5349 - ibm-5349_P100-1998 -windows-1254 - cp1254 - ibm-5350 - ibm-5350_P100-1998 -windows-1255 - cp1255 - ibm-9447 - ibm-9447_P100-2002 -windows-1256 - cp1256 - ibm-9448 - ibm-9448_X100-2005 -windows-1257 - cp1257 - ibm-9449 - ibm-9449_P100-2002 -windows-1258 - cp1258 - ibm-5354 - ibm-5354_P100-1998 -x-gsm-03.38-2000 - GSM0338 - gsm-03.38-2000 -x-ibm-1373_P100-2002 - ibm-1373 - ibm-1373_P100-2002 - windows-950 -x-ibm-1386_P100-2001 - cp1386 - ibm-1386 - ibm-1386_P100-2001 - ibm-1386_VSUB_VPUA - windows-936 -x-IMAP-mailbox-name - IMAP-mailbox-name -x-iscii-be - iscii-bng - windows-57003 - windows-57006 - x-iscii-as -x-iscii-de - ibm-4902 - iscii-dev - windows-57002 -x-iscii-gu - iscii-guj - windows-57010 -x-iscii-ka - iscii-knd - windows-57008 -x-iscii-ma - iscii-mlm - windows-57009 -x-iscii-or - iscii-ori - windows-57007 -x-iscii-pa - iscii-gur - windows-57011 -x-iscii-ta - iscii-tml - windows-57004 -x-iscii-te - iscii-tlg - windows-57005 -x-iso-8859_11-2001 - ISO-8859-11 - iso-8859_11-2001 - thai8 -x-UTF16_OppositeEndian - UTF16_OppositeEndian -x-UTF16_PlatformEndian - UTF16_PlatformEndian -x-UTF32_OppositeEndian - UTF32_OppositeEndian -x-UTF32_PlatformEndian - UTF32_PlatformEndian diff --git a/tests/062-character-encodings/info.txt b/tests/062-character-encodings/info.txt deleted file mode 100644 index bdf60bfae..000000000 --- a/tests/062-character-encodings/info.txt +++ /dev/null @@ -1 +0,0 @@ -Test that the list of character encodings is what we expect. diff --git a/tests/062-character-encodings/src/Main.java b/tests/062-character-encodings/src/Main.java deleted file mode 100644 index a9b3dacd5..000000000 --- a/tests/062-character-encodings/src/Main.java +++ /dev/null @@ -1,30 +0,0 @@ -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Map; -import java.util.SortedMap; -import java.util.Set; - -public class Main { - static public void main(String[] args) throws Exception { - SortedMap<String, Charset> all = Charset.availableCharsets(); - - for (Map.Entry<String, Charset> e : all.entrySet()) { - String canonicalName = e.getKey(); - System.out.println(canonicalName); - Set<String> aliases = e.getValue().aliases(); - if ((aliases != null) && (aliases.size() != 0)) { - ArrayList<String> list = new ArrayList<String>(aliases.size()); - list.addAll(aliases); - Collections.sort(list); - for (String s : list) { - if (! s.equals(canonicalName)) { - System.out.println(" " + s); - } - } - } else { - System.out.println(" (no aliases)"); - } - } - } -} diff --git a/tests/063-process-manager/expected.txt b/tests/063-process-manager/expected.txt deleted file mode 100644 index 836023977..000000000 --- a/tests/063-process-manager/expected.txt +++ /dev/null @@ -1,15 +0,0 @@ -process manager: nonexistent - -spawning child #1 -spawning child -process manager: RUNNABLE -child died -process manager: WAITING - -spawning child #2 -spawning child -process manager: RUNNABLE -child died -process manager: WAITING - -done! diff --git a/tests/063-process-manager/info.txt b/tests/063-process-manager/info.txt deleted file mode 100644 index e5907c41b..000000000 --- a/tests/063-process-manager/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -Test that spawning a child process and then reaping it (a) works and (b) -doesn't cause the system to busy-wait. diff --git a/tests/063-process-manager/src/Main.java b/tests/063-process-manager/src/Main.java deleted file mode 100644 index b43acb94b..000000000 --- a/tests/063-process-manager/src/Main.java +++ /dev/null @@ -1,42 +0,0 @@ -import java.util.Map; - -public class Main { - static public void main(String[] args) throws Exception { - checkManager(); - for (int i = 1; i <= 2; i++) { - System.out.println("\nspawning child #" + i); - child(); - Thread.sleep(2000); - checkManager(); - } - System.out.println("\ndone!"); - } - - static private void child() throws Exception { - System.out.println("spawning child"); - ProcessBuilder pb = new ProcessBuilder("/system/bin/sleep", "5"); - Process proc = pb.start(); - checkManager(); - proc.waitFor(); - System.out.println("child died"); - } - - static private void checkManager() { - Map<Thread, StackTraceElement[]> traces = Thread.getAllStackTraces(); - boolean found = false; - - for (Map.Entry<Thread, StackTraceElement[]> entry : - traces.entrySet()) { - Thread t = entry.getKey(); - String name = t.getName(); - if (name.equals("java.lang.ProcessManager")) { - System.out.println("process manager: " + t.getState()); - found = true; - } - } - - if (! found) { - System.out.println("process manager: nonexistent"); - } - } -} diff --git a/tests/064-field-access/expected.txt b/tests/064-field-access/expected.txt deleted file mode 100644 index 0af56ba52..000000000 --- a/tests/064-field-access/expected.txt +++ /dev/null @@ -1,2 +0,0 @@ -good -Got expected failure diff --git a/tests/064-field-access/info.txt b/tests/064-field-access/info.txt deleted file mode 100644 index 442baf2f8..000000000 --- a/tests/064-field-access/info.txt +++ /dev/null @@ -1,10 +0,0 @@ -The documentation lists exceptional conditions and the exceptions that -should be thrown, but doesn't say which exception previals when two or -more exceptional conditions exist at the same time. For example, -attempting to set a protected field from an unrelated class causes an -IllegalAccessException, while passing in a data type that doesn't match -the field causes an IllegalArgumentException. If code does both at the -same time, we can only throw one or the other. - -This exercises the various failure modes to ensure that behavior is -equivalent, and not merely spec-compliant. diff --git a/tests/064-field-access/src/GetNonexistent.java b/tests/064-field-access/src/GetNonexistent.java deleted file mode 100644 index b979eb257..000000000 --- a/tests/064-field-access/src/GetNonexistent.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class GetNonexistent { - public static void main(String[] args) { - Object obj = Holder.mObject; - } -} - diff --git a/tests/064-field-access/src/Holder.java b/tests/064-field-access/src/Holder.java deleted file mode 100644 index 5ae9f7160..000000000 --- a/tests/064-field-access/src/Holder.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class Holder { - public static Object mObject = new Object(); -} - diff --git a/tests/064-field-access/src/Main.java b/tests/064-field-access/src/Main.java deleted file mode 100644 index 300c6b22b..000000000 --- a/tests/064-field-access/src/Main.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import other.OtherPackage; - -import java.lang.reflect.Field; - -/* - * Test field access through reflection. - */ -public class Main { - public static void main(String[] args) { - SubOther.main(null); - - try { - GetNonexistent.main(null); - System.err.println("Not expected to succeed"); - } catch (VerifyError fe) { - // dalvik - System.out.println("Got expected failure"); - } catch (NoSuchFieldError nsfe) { - // reference - System.out.println("Got expected failure"); - } - } - - /* - * Get the field specified by "field" from "obj". - * - * "type" determines which "get" call is made, e.g. 'B' turns into - * field.getByte(). - * - * The "expectedException" must match the class of the exception thrown, - * or be null if no exception was expected. - * - * On success, the boxed value retrieved is returned. - */ - public Object getValue(Field field, Object obj, char type, - Class expectedException) { - - Object result = null; - try { - switch (type) { - case 'Z': - result = new Boolean(field.getBoolean(obj)); - break; - case 'B': - result = new Byte(field.getByte(obj)); - break; - case 'S': - result = new Short(field.getShort(obj)); - break; - case 'C': - result = new Character(field.getChar(obj)); - break; - case 'I': - result = new Integer(field.getInt(obj)); - break; - case 'J': - result = new Long(field.getLong(obj)); - break; - case 'F': - result = new Float(field.getFloat(obj)); - break; - case 'D': - result = new Double(field.getDouble(obj)); - break; - case 'L': - result = field.get(obj); - break; - default: - throw new RuntimeException("bad type '" + type + "'"); - } - - /* success; expected? */ - if (expectedException != null) { - Throwable th = new Throwable(); - System.err.println("ERROR: call succeeded, was expecting " - + expectedException); - th.printStackTrace(); - } - } catch (Exception ex) { - if (expectedException == null) { - System.err.println("ERROR: call failed unexpectedly: " - + ex.getClass()); - ex.printStackTrace(); - } else { - if (!expectedException.equals(ex.getClass())) { - System.err.println("ERROR: incorrect exception: wanted " - + expectedException.getName() + ", got " - + ex.getClass()); - ex.printStackTrace(); - } - } - } - - return result; - } -} - -/* - * Local class with some fields. - */ -class SamePackage { - public byte pubByteField; - - protected byte protByteField; - protected Object protObjectField; - - private float privFloatField; -} - -/* - * This is a sub-class of OtherPackage, which should be allowed to access - * the various protected fields. - */ -class SubOther extends OtherPackage { - - protected long protLongField = 0x1122334455667788L; - - /* - * Perform the various tests. - * - * localInst.getValue() is performed using an instance of Main as the - * source of the reflection call. otherInst.getValue() uses a subclass - * of OtherPackage as the source. - */ - public static void main(String[] args) { - SubOther subOther = new SubOther(); - subOther.doTests(); - } - - public void doTests() { - Class localClass = SamePackage.class; - Class otherClass = OtherPackage.class; - Field localPubByteField, localProtByteField, localProtObjectField, - localPrivFloatField; - Field otherPubCharField, otherProtShortField, otherProtObjectField, - otherPkgDoubleField; - Field subProtLongField; - Main localInst = new Main(); - SamePackage samePkgInst = new SamePackage(); - OtherPackage otherPkgInst = new OtherPackage(); - Object plainObj = new Object(); - - /* - * Locate the various fields. - */ - try { - localPubByteField = localClass.getDeclaredField("pubByteField"); - localProtByteField = localClass.getDeclaredField("protByteField"); - localProtObjectField = localClass.getDeclaredField("protObjectField"); - localPrivFloatField = localClass.getDeclaredField("privFloatField"); - - otherPubCharField = otherClass.getDeclaredField("pubCharField"); - otherProtShortField = otherClass.getDeclaredField("protShortField"); - otherProtObjectField = otherClass.getDeclaredField("protObjectField"); - otherPkgDoubleField = otherClass.getDeclaredField("pkgDoubleField"); - - subProtLongField = getClass().getDeclaredField("protLongField"); - } catch (NoSuchFieldException nsfe) { - throw new RuntimeException(nsfe); - } - - /* - * Get a public field from a class in the same package. - */ - localInst.getValue(localPubByteField, samePkgInst, 'B', null); - - /* - * Get a protected field from a class in the same package. - */ - this.getValue(localProtByteField, samePkgInst, 'B', null); - - /* - * Get a private field from a class in the same package. - */ - this.getValue(localPrivFloatField, samePkgInst, 'F', - IllegalAccessException.class); - - /* - * Get a protected field from otherInst's superclass. - * - * We can get at "this.protShortField" but not - * "otherPkgInst.protShortField" because we can only access - * protected fields in instances of our class -- being a subclass - * of OtherPackage does not allow us to modify protected fields in - * all other subclasses of OtherPackage. - */ - this.getValue(otherProtShortField, this, 'S', - null); - this.getValue(otherProtShortField, otherPkgInst, 'S', - IllegalAccessException.class); - this.getValue(otherPkgDoubleField, otherPkgInst, 'D', - IllegalAccessException.class); - - /* - * Null object. Different exceptions based on which package - * we would be trying to access and whether or not our object - * has the correct type. - */ - localInst.getValue(localPubByteField, null, 'B', - NullPointerException.class); - - this.getValue(subProtLongField, null, 'J', - NullPointerException.class); - - this.getValue(localPrivFloatField, null, 'F', - IllegalAccessException.class); - - localInst.getValue(otherProtShortField, null, 'S', - IllegalAccessException.class); - this.getValue(otherProtShortField, null, 'S', - IllegalAccessException.class); - this.getValue(otherPkgDoubleField, null, 'D', - IllegalAccessException.class); - - localInst.getValue(otherProtShortField, null, 'Z', - IllegalAccessException.class); - /* -- Dalvik VM currently throws NPE - this.getValue(subProtLongField, null, 'Z', - IllegalArgumentException.class); - */ - - /* - * Valid object, wrong field type. - */ - this.getValue(subProtLongField, this, 'J', - null); - this.getValue(localProtByteField, samePkgInst, 'Z', - IllegalArgumentException.class); - this.getValue(subProtLongField, this, 'Z', - IllegalArgumentException.class); - this.getValue(localPrivFloatField, this, 'Z', - IllegalAccessException.class); - this.getValue(localPrivFloatField, this, 'Z', - IllegalAccessException.class); - localInst.getValue(otherProtShortField, otherPkgInst, 'Z', - IllegalAccessException.class); - this.getValue(otherProtShortField, otherPkgInst, 'Z', - IllegalAccessException.class); - - /* - * Wrong object. - */ - this.getValue(subProtLongField, plainObj, 'J', - IllegalArgumentException.class); - - /* wrong object + private field */ - this.getValue(localPrivFloatField, plainObj, 'F', - IllegalAccessException.class); - - /* wrong object + wrong field type */ - this.getValue(subProtLongField, plainObj, 'Z', - IllegalArgumentException.class); - - /* wrong object + invalid access */ - localInst.getValue(otherProtShortField, plainObj, 'S', - IllegalAccessException.class); - this.getValue(otherProtShortField, plainObj, 'S', - IllegalAccessException.class); - - System.out.println("good"); - } - - /* - * [this is a clone of Main.getValue() -- the class issuing the - * reflection call is significant] - */ - public Object getValue(Field field, Object obj, char type, - Class expectedException) { - - Object result = null; - try { - switch (type) { - case 'Z': - result = new Boolean(field.getBoolean(obj)); - break; - case 'B': - result = new Byte(field.getByte(obj)); - break; - case 'S': - result = new Short(field.getShort(obj)); - break; - case 'C': - result = new Character(field.getChar(obj)); - break; - case 'I': - result = new Integer(field.getInt(obj)); - break; - case 'J': - result = new Long(field.getLong(obj)); - break; - case 'F': - result = new Float(field.getFloat(obj)); - break; - case 'D': - result = new Double(field.getDouble(obj)); - break; - case 'L': - result = field.get(obj); - break; - default: - throw new RuntimeException("bad type '" + type + "'"); - } - - /* success; expected? */ - if (expectedException != null) { - Throwable th = new Throwable(); - System.err.println("ERROR: call succeeded, was expecting " - + expectedException); - th.printStackTrace(); - } - } catch (Exception ex) { - if (expectedException == null) { - System.err.println("ERROR: call failed unexpectedly: " - + ex.getClass()); - ex.printStackTrace(); - } else { - if (!expectedException.equals(ex.getClass())) { - System.err.println("ERROR: incorrect exception: wanted " - + expectedException.getName() + ", got " - + ex.getClass()); - ex.printStackTrace(); - } - } - } - - return result; - } - -} - diff --git a/tests/064-field-access/src/other/OtherPackage.java b/tests/064-field-access/src/other/OtherPackage.java deleted file mode 100644 index 49f0d78fc..000000000 --- a/tests/064-field-access/src/other/OtherPackage.java +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -package other; - -/* - * Declare a few fields to reflect upon. - */ -public class OtherPackage { - public char pubCharField = 0x8765; - - protected short protShortField = 0x1234; - protected Object protObjectField = "blah"; - - double pkgDoubleField = 3.141592654; -} - diff --git a/tests/064-field-access/src2/Holder.java b/tests/064-field-access/src2/Holder.java deleted file mode 100644 index dcb63ebe1..000000000 --- a/tests/064-field-access/src2/Holder.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class Holder { - //public static Object mObject = new Object(); -} - diff --git a/tests/065-mismatched-implements/expected.txt b/tests/065-mismatched-implements/expected.txt deleted file mode 100644 index 36ebe5e6a..000000000 --- a/tests/065-mismatched-implements/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Dalvik VM unable to find static main(String[]) in 'Main' -java.lang.VerifyError: Main - at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/065-mismatched-implements/info.txt b/tests/065-mismatched-implements/info.txt deleted file mode 100644 index 58d9b69d5..000000000 --- a/tests/065-mismatched-implements/info.txt +++ /dev/null @@ -1,19 +0,0 @@ -This tests what happens when class A implements interface B, but somebody -turns B into an abstract class without rebuilding A. - -If you run this with --no-verify you get reasonable results: - -java.lang.NoClassDefFoundError: Base - at Main.main(Main.java:8) - at dalvik.system.NativeStart.main(Native Method) -Caused by: java.lang.IncompatibleClassChangeError: Base - at dalvik.system.DexFile.defineClass(Native Method) - at dalvik.system.DexFile.loadClass(DexFile.java:91) - at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:175) - at java.lang.ClassLoader.loadClass(ClassLoader.java:453) - at java.lang.ClassLoader.loadClass(ClassLoader.java:421) - ... 2 more - -With the verifier enabled, you get a relatively content-free VerifyError -with the detail only appearing in the log file. - diff --git a/tests/065-mismatched-implements/src/Base.java b/tests/065-mismatched-implements/src/Base.java deleted file mode 100644 index 7e3540879..000000000 --- a/tests/065-mismatched-implements/src/Base.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public class Base implements Defs { - public void func() { - System.out.println("whee"); - } -}; - diff --git a/tests/065-mismatched-implements/src/Defs.java b/tests/065-mismatched-implements/src/Defs.java deleted file mode 100644 index 456b6bf6d..000000000 --- a/tests/065-mismatched-implements/src/Defs.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public interface Defs { - public void func(); - - // func2 not defined -} - diff --git a/tests/065-mismatched-implements/src/Main.java b/tests/065-mismatched-implements/src/Main.java deleted file mode 100644 index 4a25232c7..000000000 --- a/tests/065-mismatched-implements/src/Main.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/* - * Test field access through reflection. - */ -public class Main { - public static void main(String[] args) { - Base base = new Base(); - } -} - diff --git a/tests/065-mismatched-implements/src2/Defs.java b/tests/065-mismatched-implements/src2/Defs.java deleted file mode 100644 index a630c900d..000000000 --- a/tests/065-mismatched-implements/src2/Defs.java +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public abstract class Defs { - public void func() { - System.out.println("yo"); - } - - public void func2() { - System.out.println("yo yo"); - } -} - diff --git a/tests/066-mismatched-super/expected.txt b/tests/066-mismatched-super/expected.txt deleted file mode 100644 index 36ebe5e6a..000000000 --- a/tests/066-mismatched-super/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Dalvik VM unable to find static main(String[]) in 'Main' -java.lang.VerifyError: Main - at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/066-mismatched-super/info.txt b/tests/066-mismatched-super/info.txt deleted file mode 100644 index 2158899da..000000000 --- a/tests/066-mismatched-super/info.txt +++ /dev/null @@ -1,19 +0,0 @@ -This tests what happens when class A extends abstract class B, but somebody -turns B into an interface without rebuilding A. - -If you run this with --no-verify you get reasonable results: - -java.lang.NoClassDefFoundError: Base - at Main.main(Main.java:8) - at dalvik.system.NativeStart.main(Native Method) -Caused by: java.lang.IncompatibleClassChangeError: superclass is an interface - at dalvik.system.DexFile.defineClass(Native Method) - at dalvik.system.DexFile.loadClass(DexFile.java:91) - at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:175) - at java.lang.ClassLoader.loadClass(ClassLoader.java:453) - at java.lang.ClassLoader.loadClass(ClassLoader.java:421) - ... 2 more - -With the verifier enabled, you get a relatively content-free VerifyError -with the detail only appearing in the log file. - diff --git a/tests/066-mismatched-super/src/Base.java b/tests/066-mismatched-super/src/Base.java deleted file mode 100644 index 815f9749b..000000000 --- a/tests/066-mismatched-super/src/Base.java +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public class Base extends Defs { - // no need to implement func(), provided by abstract class -}; - diff --git a/tests/066-mismatched-super/src/Defs.java b/tests/066-mismatched-super/src/Defs.java deleted file mode 100644 index a630c900d..000000000 --- a/tests/066-mismatched-super/src/Defs.java +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public abstract class Defs { - public void func() { - System.out.println("yo"); - } - - public void func2() { - System.out.println("yo yo"); - } -} - diff --git a/tests/066-mismatched-super/src/Main.java b/tests/066-mismatched-super/src/Main.java deleted file mode 100644 index 4a25232c7..000000000 --- a/tests/066-mismatched-super/src/Main.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/* - * Test field access through reflection. - */ -public class Main { - public static void main(String[] args) { - Base base = new Base(); - } -} - diff --git a/tests/066-mismatched-super/src2/Defs.java b/tests/066-mismatched-super/src2/Defs.java deleted file mode 100644 index 456b6bf6d..000000000 --- a/tests/066-mismatched-super/src2/Defs.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -public interface Defs { - public void func(); - - // func2 not defined -} - diff --git a/tests/067-preemptive-unpark/expected.txt b/tests/067-preemptive-unpark/expected.txt deleted file mode 100644 index 12bfee059..000000000 --- a/tests/067-preemptive-unpark/expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Test starting -GC'ing -Asking thread to park -park() returned quickly -Test succeeded! diff --git a/tests/067-preemptive-unpark/info.txt b/tests/067-preemptive-unpark/info.txt deleted file mode 100644 index 0bc0c61c1..000000000 --- a/tests/067-preemptive-unpark/info.txt +++ /dev/null @@ -1 +0,0 @@ -Test that Unsafe.unpark() operates as expected, in particular across a gc. diff --git a/tests/067-preemptive-unpark/src/Main.java b/tests/067-preemptive-unpark/src/Main.java deleted file mode 100644 index 1ecac14f1..000000000 --- a/tests/067-preemptive-unpark/src/Main.java +++ /dev/null @@ -1,107 +0,0 @@ -import sun.misc.Unsafe; - -import java.lang.reflect.Field; - -public class Main { - private static Unsafe UNSAFE; - - public static void main(String[] args) throws Exception { - setUp(); - - ParkTester test = new ParkTester(); - - System.out.println("Test starting"); - - test.start(); - UNSAFE.unpark(test); - clearStack(10); - - System.out.println("GC'ing"); - System.gc(); - System.gc(); - - System.out.println("Asking thread to park"); - test.parkNow = true; - - try { - Thread.sleep(1500); - } catch (InterruptedException ex) { - // Ignore it. - } - - if (test.success) { - System.out.println("Test succeeded!"); - } else { - System.out.println("Test failed."); - } - } - - /** - * Set up {@link #UNSAFE}. - */ - public static void setUp() { - /* - * Subvert the access check to get the unique Unsafe instance. - * We can do this because there's no security manager - * installed when running the test. - */ - try { - Field field = Unsafe.class.getDeclaredField("THE_ONE"); - field.setAccessible(true); - - UNSAFE = (Unsafe) field.get(null); - } catch (NoSuchFieldException ex) { - throw new RuntimeException(ex); - } catch (IllegalAccessException ex) { - throw new RuntimeException(ex); - } - } - - /** - * Scribbles on the stack to help ensure we don't have a fake - * pointer that would keep would-be garbage alive. - */ - private static void clearStack(int depth) { - int a = 0; - int b = 0; - int c = 0; - int d = 0; - int e = 0; - int f = 0; - int g = 0; - int h = 0; - int i = 0; - int j = 0; - - if (depth > 0) { - clearStack(depth - 1); - } - } - - private static class ParkTester extends Thread { - public volatile boolean parkNow = false; - public volatile boolean success = false; - - public void run() { - while (!parkNow) { - try { - Thread.sleep(500); - } catch (InterruptedException ex) { - // Ignore it. - } - } - - long start = System.currentTimeMillis(); - UNSAFE.park(false, 500 * 1000000); // 500 msec - long elapsed = System.currentTimeMillis() - start; - - if (elapsed > 200) { - System.out.println("park()ed for " + elapsed + " msec"); - success = false; - } else { - System.out.println("park() returned quickly"); - success = true; - } - } - } -} diff --git a/tests/068-classloader/expected.txt b/tests/068-classloader/expected.txt deleted file mode 100644 index 0ca886270..000000000 --- a/tests/068-classloader/expected.txt +++ /dev/null @@ -1,10 +0,0 @@ -base: class DoubledImplement -base2: class DoubledImplement2 -Got expected access exception #1 -Got expected CNFE/IAE #2 -Got expected CNFE/IAE #3 -Got expected LinkageError on DE -Ctor: doubled implement, type 1 -DoubledImplement one -Got LinkageError on DI (early) -Got LinkageError on IDI (early) diff --git a/tests/068-classloader/info.txt b/tests/068-classloader/info.txt deleted file mode 100644 index 421e52a3b..000000000 --- a/tests/068-classloader/info.txt +++ /dev/null @@ -1,8 +0,0 @@ -Class loaders allow code to "redefine" a given class, e.g. it's possible to -have multiple classes called "com.android.Blah" loaded simultaneously. The -classes are distinct and must be treated as such. This test exercises -some situations in which a VM that only checks the UTF-8 signatures could -mix things up. - -This also tests a couple of situations in which an IllegalAccessException -is expected. diff --git a/tests/068-classloader/src-ex/DoubledExtend.java b/tests/068-classloader/src-ex/DoubledExtend.java deleted file mode 100644 index 17da2c28c..000000000 --- a/tests/068-classloader/src-ex/DoubledExtend.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Doubled sub-class, form #2. - */ -public class DoubledExtend extends Base { - public DoubledExtend() { - //System.out.println("Ctor: doubled extend, type 2"); - } - - @Override - public DoubledExtend getExtended() { - //System.out.println("getExtended 2"); - return new DoubledExtend(); - } - - public String getStr() { - return "DoubledExtend 2"; - } -} - diff --git a/tests/068-classloader/src-ex/DoubledImplement.java b/tests/068-classloader/src-ex/DoubledImplement.java deleted file mode 100644 index b479d8fc2..000000000 --- a/tests/068-classloader/src-ex/DoubledImplement.java +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Doubled sub-class, form #2. - */ -public class DoubledImplement implements ICommon { - public DoubledImplement() { - System.out.println("Ctor: doubled implement, type 2"); - } - - public DoubledImplement getDoubledInstance() { - return new DoubledImplement(); - } - - public void two() { - System.out.println("DoubledImplement two"); - } -} - diff --git a/tests/068-classloader/src-ex/DoubledImplement2.java b/tests/068-classloader/src-ex/DoubledImplement2.java deleted file mode 100644 index 60e820f63..000000000 --- a/tests/068-classloader/src-ex/DoubledImplement2.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Another doubled sub-class, form #2. - */ -public class DoubledImplement2 implements ICommon2 { - public DoubledImplement2() { - System.out.println("Ctor: doubled implement, type 2"); - } - - public DoubledImplement2 getDoubledInstance2() { - return new DoubledImplement2(); - } - - public void two() { - System.out.println("DoubledImplement2 two"); - } -} - diff --git a/tests/068-classloader/src-ex/IfaceImpl.java b/tests/068-classloader/src-ex/IfaceImpl.java deleted file mode 100644 index 94a3bb0c1..000000000 --- a/tests/068-classloader/src-ex/IfaceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class IfaceImpl implements IfaceSub { - public DoubledImplement2 getDoubledInstance2() { - return new DoubledImplement2(); - } -} - diff --git a/tests/068-classloader/src-ex/IfaceSub.java b/tests/068-classloader/src-ex/IfaceSub.java deleted file mode 100644 index cb932bbcd..000000000 --- a/tests/068-classloader/src-ex/IfaceSub.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public interface IfaceSub extends IfaceSuper { - public DoubledImplement2 getDoubledInstance2(); -} - diff --git a/tests/068-classloader/src-ex/Inaccessible1.java b/tests/068-classloader/src-ex/Inaccessible1.java deleted file mode 100644 index 7b28427ec..000000000 --- a/tests/068-classloader/src-ex/Inaccessible1.java +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Non-public class, inaccessible from Main. Note the constructor is - * public. - */ -class Inaccessible1 extends SimpleBase { - public Inaccessible1() { - System.out.println("--- inaccessible1"); - } -} - diff --git a/tests/068-classloader/src-ex/Inaccessible2.java b/tests/068-classloader/src-ex/Inaccessible2.java deleted file mode 100644 index b612bfa9b..000000000 --- a/tests/068-classloader/src-ex/Inaccessible2.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Public class that can't access its base. - */ -public class Inaccessible2 extends InaccessibleBase { - public Inaccessible2() { - System.out.println("--- inaccessible2"); - } -} - diff --git a/tests/068-classloader/src-ex/Inaccessible3.java b/tests/068-classloader/src-ex/Inaccessible3.java deleted file mode 100644 index 75a01be1b..000000000 --- a/tests/068-classloader/src-ex/Inaccessible3.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Public class that can't access its interface. - */ -public class Inaccessible3 implements InaccessibleInterface { - public Inaccessible3() { - System.out.println("--- inaccessible3"); - } -} - diff --git a/tests/068-classloader/src/Base.java b/tests/068-classloader/src/Base.java deleted file mode 100644 index 37bc1f283..000000000 --- a/tests/068-classloader/src/Base.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Common base class. - */ -public class Base { - public Base() {} - - public DoubledExtend getExtended() { - return new DoubledExtend(); - } - - public static String doStuff(DoubledExtend dt) { - return dt.getStr(); - } -} - diff --git a/tests/068-classloader/src/DoubledExtend.java b/tests/068-classloader/src/DoubledExtend.java deleted file mode 100644 index 44c2bce62..000000000 --- a/tests/068-classloader/src/DoubledExtend.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Doubled sub-class, form #1. - */ -public class DoubledExtend extends Base { - public DoubledExtend() { - //System.out.println("Ctor: doubled extend, type 1"); - } - - @Override - public DoubledExtend getExtended() { - System.out.println("getExtended 1"); - return new DoubledExtend(); - } - - public String getStr() { - return "DoubledExtend 1"; - } -} - diff --git a/tests/068-classloader/src/DoubledImplement.java b/tests/068-classloader/src/DoubledImplement.java deleted file mode 100644 index 5568a4382..000000000 --- a/tests/068-classloader/src/DoubledImplement.java +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Doubled sub-class, form #1. - */ -class DoubledImplement implements ICommon { - public DoubledImplement() { - System.out.println("Ctor: doubled implement, type 1"); - } - - public DoubledImplement getDoubledInstance() { - return new DoubledImplement(); - } - - public void one() { - System.out.println("DoubledImplement one"); - } -} - diff --git a/tests/068-classloader/src/DoubledImplement2.java b/tests/068-classloader/src/DoubledImplement2.java deleted file mode 100644 index 5e18315c4..000000000 --- a/tests/068-classloader/src/DoubledImplement2.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Another doubled sub-class, form #1. - */ -public class DoubledImplement2 implements ICommon2 { - public DoubledImplement2() { - System.out.println("Ctor: doubled implement, type 1"); - } - - public DoubledImplement2 getDoubledInstance2() { - return new DoubledImplement2(); - } - - public void one() { - System.out.println("DoubledImplement2 one"); - } -} - diff --git a/tests/068-classloader/src/FancyLoader.java b/tests/068-classloader/src/FancyLoader.java deleted file mode 100644 index 491fd5c70..000000000 --- a/tests/068-classloader/src/FancyLoader.java +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.lang.reflect.InvocationTargetException; - -/** - * A class loader with atypical behavior: we try to load a private - * class implementation before asking the system or boot loader. This - * is used to create multiple classes with identical names in a single VM. - * - * If DexFile is available, we use that; if not, we assume we're not in - * Dalvik and instantiate the class with defineClass(). - * - * The location of the DEX files and class data is dependent upon the - * test framework. - */ -public class FancyLoader extends ClassLoader { - /* this is where the "alternate" .class files live */ - static final String CLASS_PATH = "classes-ex/"; - - /* this is the "alternate" DEX/Jar file */ - static final String DEX_FILE = "test-ex.jar"; - - /* on Dalvik, this is a DexFile; otherwise, it's null */ - private Class mDexClass; - - /** - * Construct FancyLoader, grabbing a reference to the DexFile class - * if we're running under Dalvik. - */ - public FancyLoader(ClassLoader parent) { - super(parent); - - try { - mDexClass = parent.loadClass("dalvik/system/DexFile"); - } catch (ClassNotFoundException cnfe) { - // ignore -- not running Dalvik - } - } - - /** - * Finds the class with the specified binary name. - * - * We search for a file in CLASS_PATH or pull an entry from DEX_FILE. - * If we don't find a match, we throw an exception. - */ - protected Class<?> findClass(String name) throws ClassNotFoundException - { - if (mDexClass != null) { - return findClassDalvik(name); - } else { - return findClassNonDalvik(name); - } - } - - /** - * Finds the class with the specified binary name, from a DEX file. - */ - private Class<?> findClassDalvik(String name) - throws ClassNotFoundException { - - Constructor ctor; - Object dexFile; - - /* - * Construct a DexFile object through reflection. - */ - try { - ctor = mDexClass.getConstructor(new Class[] { String.class }); - } catch (NoSuchMethodException nsme) { - throw new ClassNotFoundException("getConstructor failed", nsme); - } - - try { - dexFile = ctor.newInstance(DEX_FILE); - } catch (InstantiationException ie) { - throw new ClassNotFoundException("newInstance failed", ie); - } catch (IllegalAccessException iae) { - throw new ClassNotFoundException("newInstance failed", iae); - } catch (InvocationTargetException ite) { - throw new ClassNotFoundException("newInstance failed", ite); - } - - /* - * Call DexFile.loadClass(String, ClassLoader). - */ - Method meth; - - try { - meth = mDexClass.getMethod("loadClass", - new Class[] { String.class, ClassLoader.class }); - } catch (NoSuchMethodException nsme) { - throw new ClassNotFoundException("getMethod failed", nsme); - } - - try { - meth.invoke(dexFile, name, this); - } catch (IllegalAccessException iae) { - throw new ClassNotFoundException("loadClass failed", iae); - } catch (InvocationTargetException ite) { - throw new ClassNotFoundException("loadClass failed", - ite.getCause()); - } - - return null; - } - - /** - * Finds the class with the specified binary name, from .class files. - */ - private Class<?> findClassNonDalvik(String name) - throws ClassNotFoundException { - - String pathName = CLASS_PATH + name + ".class"; - //System.out.println("--- Fancy: looking for " + pathName); - - File path = new File(pathName); - RandomAccessFile raf; - - try { - raf = new RandomAccessFile(path, "r"); - } catch (FileNotFoundException fnfe) { - throw new ClassNotFoundException("Not found: " + pathName); - } - - /* read the entire file in */ - byte[] fileData; - try { - fileData = new byte[(int) raf.length()]; - raf.readFully(fileData); - } catch (IOException ioe) { - throw new ClassNotFoundException("Read error: " + pathName); - } finally { - try { - raf.close(); - } catch (IOException ioe) { - // drop - } - } - - /* create the class */ - //System.out.println("--- Fancy: defining " + name); - try { - return defineClass(name, fileData, 0, fileData.length); - } catch (Throwable th) { - throw new ClassNotFoundException("defineClass failed", th); - } - } - - /** - * Load a class. - * - * Normally a class loader wouldn't override this, but we want our - * version of the class to take precedence over an already-loaded - * version. - * - * We still want the system classes (e.g. java.lang.Object) from the - * bootstrap class loader. - */ - protected Class<?> loadClass(String name, boolean resolve) - throws ClassNotFoundException - { - Class res; - - /* - * 1. Invoke findLoadedClass(String) to check if the class has - * already been loaded. - * - * This doesn't change. - */ - res = findLoadedClass(name); - if (res != null) { - System.out.println("FancyLoader.loadClass: " - + name + " already loaded"); - if (resolve) - resolveClass(res); - return res; - } - - /* - * 3. Invoke the findClass(String) method to find the class. - */ - try { - res = findClass(name); - if (resolve) - resolveClass(res); - } - catch (ClassNotFoundException e) { - // we couldn't find it, so eat the exception and keep going - } - - /* - * 2. Invoke the loadClass method on the parent class loader. If - * the parent loader is null the class loader built-in to the - * virtual machine is used, instead. - * - * (Since we're not in java.lang, we can't actually invoke the - * parent's loadClass() method, but we passed our parent to the - * super-class which can take care of it for us.) - */ - res = super.loadClass(name, resolve); // returns class or throws - return res; - } -} - diff --git a/tests/068-classloader/src/ICommon.java b/tests/068-classloader/src/ICommon.java deleted file mode 100644 index 4eac9be1a..000000000 --- a/tests/068-classloader/src/ICommon.java +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Common interface. - */ -public interface ICommon { - public DoubledImplement getDoubledInstance(); -} - diff --git a/tests/068-classloader/src/ICommon2.java b/tests/068-classloader/src/ICommon2.java deleted file mode 100644 index 13b2c2310..000000000 --- a/tests/068-classloader/src/ICommon2.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Common interface. - */ -public interface ICommon2 { - public DoubledImplement2 getDoubledInstance2(); -} - diff --git a/tests/068-classloader/src/IfaceSuper.java b/tests/068-classloader/src/IfaceSuper.java deleted file mode 100644 index f01963a29..000000000 --- a/tests/068-classloader/src/IfaceSuper.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public interface IfaceSuper { - public DoubledImplement2 getDoubledInstance2(); -} - diff --git a/tests/068-classloader/src/InaccessibleBase.java b/tests/068-classloader/src/InaccessibleBase.java deleted file mode 100644 index d43ea006c..000000000 --- a/tests/068-classloader/src/InaccessibleBase.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Non-public base class, inaccessible from alternate class loader. - */ -class InaccessibleBase { -} - diff --git a/tests/068-classloader/src/InaccessibleInterface.java b/tests/068-classloader/src/InaccessibleInterface.java deleted file mode 100644 index 6df7501c2..000000000 --- a/tests/068-classloader/src/InaccessibleInterface.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Non-public interface class, inaccessible from alternate class loader. - */ -interface InaccessibleInterface { -} - diff --git a/tests/068-classloader/src/Main.java b/tests/068-classloader/src/Main.java deleted file mode 100644 index f8698be19..000000000 --- a/tests/068-classloader/src/Main.java +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Class loader test. - */ -public class Main { - /** - * Main entry point. - */ - public static void main(String[] args) { - FancyLoader loader; - - loader = new FancyLoader(ClassLoader.getSystemClassLoader()); - - /* - * This statement has no effect on this program, but it can - * change the point where a LinkageException is thrown in - * testImplement(). When this is present the "reference - * implementation" throws an exception from Class.newInstance(), - * when it's absent the exception is deferred until the first time - * we call a method that isn't actually implemented. - * - * This isn't the class that fails -- it's a class with the same - * name in the "fancy" class loader -- but the VM thinks it has a - * reference to one of these; presumably the difference is that - * without this the VM finds itself holding a reference to an - * instance of an uninitialized class. - */ - System.out.println("base: " + DoubledImplement.class); - System.out.println("base2: " + DoubledImplement2.class); - - /* - * Run tests. - */ - testAccess1(loader); - testAccess2(loader); - testAccess3(loader); - - testExtend(loader); - testImplement(loader); - testIfaceImplement(loader); - } - - /** - * See if we can load a class that isn't public to us. We should be - * able to load it but not instantiate it. - */ - static void testAccess1(ClassLoader loader) { - Class altClass; - - try { - altClass = loader.loadClass("Inaccessible1"); - } catch (ClassNotFoundException cnfe) { - System.err.println("loadClass failed"); - cnfe.printStackTrace(); - return; - } - - /* instantiate */ - Object obj; - try { - obj = altClass.newInstance(); - System.err.println("ERROR: Inaccessible1 was accessible"); - } catch (InstantiationException ie) { - System.err.println("newInstance failed: " + ie); - return; - } catch (IllegalAccessException iae) { - System.out.println("Got expected access exception #1"); - //System.out.println("+++ " + iae); - return; - } - } - - /** - * See if we can load a class whose base class is not accessible to it - * (though the base *is* accessible to us). - */ - static void testAccess2(ClassLoader loader) { - Class altClass; - - try { - altClass = loader.loadClass("Inaccessible2"); - System.err.println("ERROR: Inaccessible2 was accessible"); - } catch (ClassNotFoundException cnfe) { - Throwable cause = cnfe.getCause(); - if (cause instanceof IllegalAccessError) { - System.out.println("Got expected CNFE/IAE #2"); - } else { - System.err.println("Got unexpected CNFE/IAE #2"); - cnfe.printStackTrace(); - } - } - } - - /** - * See if we can load a class with an inaccessible interface. - */ - static void testAccess3(ClassLoader loader) { - Class altClass; - - try { - altClass = loader.loadClass("Inaccessible3"); - System.err.println("ERROR: Inaccessible3 was accessible"); - } catch (ClassNotFoundException cnfe) { - Throwable cause = cnfe.getCause(); - if (cause instanceof IllegalAccessError) { - System.out.println("Got expected CNFE/IAE #3"); - } else { - System.err.println("Got unexpected CNFE/IAE #3"); - cnfe.printStackTrace(); - } - } - } - - /** - * Test a doubled class that extends the base class. - */ - static void testExtend(ClassLoader loader) { - Class doubledExtendClass; - Object obj; - - /* get the "alternate" version of DoubledExtend */ - try { - doubledExtendClass = loader.loadClass("DoubledExtend"); - //System.out.println("+++ DoubledExtend is " + doubledExtendClass - // + " in " + doubledExtendClass.getClassLoader()); - } catch (ClassNotFoundException cnfe) { - System.err.println("loadClass failed: " + cnfe); - return; - } - - /* instantiate */ - try { - obj = doubledExtendClass.newInstance(); - } catch (InstantiationException ie) { - System.err.println("newInstance failed: " + ie); - return; - } catch (IllegalAccessException iae) { - System.err.println("newInstance failed: " + iae); - return; - } catch (LinkageError le) { - System.out.println("Got expected LinkageError on DE"); - return; - } - - /* use the base class reference to get a CL-specific instance */ - Base baseRef = (Base) obj; - DoubledExtend de = baseRef.getExtended(); - - /* try to call through it */ - try { - String result; - - result = Base.doStuff(de); - System.err.println("ERROR: did not get LinkageError on DE"); - System.err.println("(result=" + result + ")"); - } catch (LinkageError le) { - System.out.println("Got expected LinkageError on DE"); - return; - } - } - - /** - * Test a doubled class that implements a common interface. - */ - static void testImplement(ClassLoader loader) { - Class doubledImplementClass; - Object obj; - - useImplement(new DoubledImplement(), true); - - /* get the "alternate" version of DoubledImplement */ - try { - doubledImplementClass = loader.loadClass("DoubledImplement"); - } catch (ClassNotFoundException cnfe) { - System.err.println("loadClass failed: " + cnfe); - return; - } - - /* instantiate */ - try { - obj = doubledImplementClass.newInstance(); - } catch (InstantiationException ie) { - System.err.println("newInstance failed: " + ie); - return; - } catch (IllegalAccessException iae) { - System.err.println("newInstance failed: " + iae); - return; - } catch (LinkageError le) { - System.out.println("Got LinkageError on DI (early)"); - return; - } - - /* if we lived this long, try to do something with it */ - ICommon icommon = (ICommon) obj; - useImplement(icommon.getDoubledInstance(), false); - } - - /** - * Do something with a DoubledImplement instance. - */ - static void useImplement(DoubledImplement di, boolean isOne) { - //System.out.println("useObject: " + di.toString() + " -- " - // + di.getClass().getClassLoader()); - try { - di.one(); - if (!isOne) { - System.err.println("ERROR: did not get LinkageError on DI"); - } - } catch (LinkageError le) { - if (!isOne) { - System.out.println("Got LinkageError on DI (late)"); - } else { - throw le; - } - } - } - - - /** - * Test a class that implements an interface with a super-interface - * that refers to a doubled class. - */ - static void testIfaceImplement(ClassLoader loader) { - Class ifaceImplClass; - Object obj; - - /* - * Create an instance of IfaceImpl. We also pull in - * DoubledImplement2 from the other class loader; without this - * we don't fail in some implementations. - */ - try { - ifaceImplClass = loader.loadClass("IfaceImpl"); - ifaceImplClass = loader.loadClass("DoubledImplement2"); - } catch (ClassNotFoundException cnfe) { - System.err.println("loadClass failed: " + cnfe); - return; - } - - /* instantiate */ - try { - obj = ifaceImplClass.newInstance(); - } catch (InstantiationException ie) { - System.err.println("newInstance failed: " + ie); - return; - } catch (IllegalAccessException iae) { - System.err.println("newInstance failed: " + iae); - return; - } catch (LinkageError le) { - System.out.println("Got LinkageError on IDI (early)"); - //System.out.println(le); - return; - } - - /* - * Without the pre-load of FancyLoader->DoubledImplement2, some - * implementations will happily execute through this part. "obj" - * comes from FancyLoader, but the di2 returned from ifaceSuper - * comes from the application class loader. - */ - IfaceSuper ifaceSuper = (IfaceSuper) obj; - DoubledImplement2 di2 = ifaceSuper.getDoubledInstance2(); - di2.one(); - } -} - diff --git a/tests/068-classloader/src/SimpleBase.java b/tests/068-classloader/src/SimpleBase.java deleted file mode 100644 index 5e1fb5aa3..000000000 --- a/tests/068-classloader/src/SimpleBase.java +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2008 The Android Open Source Project - -/** - * Simple, public base class. - */ -public class SimpleBase { - public SimpleBase() {} -} - diff --git a/tests/068-classloader/src/Useless.java b/tests/068-classloader/src/Useless.java deleted file mode 100644 index f51d9a8f0..000000000 --- a/tests/068-classloader/src/Useless.java +++ /dev/null @@ -1,4 +0,0 @@ - -public class Useless implements ICommon { - public DoubledImplement getDoubledInstance() { return null; } -} diff --git a/tests/069-field-type/expected.txt b/tests/069-field-type/expected.txt deleted file mode 100644 index 88281780f..000000000 --- a/tests/069-field-type/expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -Assignment was allowed -Got expected IncompatibleClassChangeError -In compareTo -Done diff --git a/tests/069-field-type/info.txt b/tests/069-field-type/info.txt deleted file mode 100644 index 58db32e2e..000000000 --- a/tests/069-field-type/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -This tests to see if the VM allows you to store a reference to an -inappropriate object type in an instance field. By compiling two -versions of the field-holder class we can bypass the compiler's type -safety. - diff --git a/tests/069-field-type/src/Blah.java b/tests/069-field-type/src/Blah.java deleted file mode 100644 index 932f27605..000000000 --- a/tests/069-field-type/src/Blah.java +++ /dev/null @@ -1,10 +0,0 @@ - -/** - * Trivial class; must implement an interesting interface. - */ -public class Blah implements Runnable { - public void run() { - System.out.println("run"); - } -} - diff --git a/tests/069-field-type/src/Holder.java b/tests/069-field-type/src/Holder.java deleted file mode 100644 index ec56e691c..000000000 --- a/tests/069-field-type/src/Holder.java +++ /dev/null @@ -1,8 +0,0 @@ - -/** - * Simple class with one field. - */ -public class Holder { - public Runnable mValue; -} - diff --git a/tests/069-field-type/src/Main.java b/tests/069-field-type/src/Main.java deleted file mode 100644 index 72268e9cb..000000000 --- a/tests/069-field-type/src/Main.java +++ /dev/null @@ -1,35 +0,0 @@ - -/** - * Create some objects and store them into an instance field. - */ -public class Main { - /** - * Entry point. - */ - public static void main(String[] args) { - Holder holder = new Holder(); - - Blah blah = new Blah(); - - /* strictly speaking, this should fail */ - holder.mValue = blah; - - System.out.println("Assignment was allowed"); - - /* try to use the reference; should fail */ - try { - holder.mValue.run(); - System.err.println("ERROR: did not get expected ICCE"); - } catch (IncompatibleClassChangeError icce) { - System.out.println("Got expected IncompatibleClassChangeError"); - } - - /* for fun, verify that it's the "alternate" type */ - //Comparable cmpx = holder.mValue; /* compiler rejects */ - Comparable cmp = (Comparable) holder.mValue; - cmp.compareTo(cmp); - - System.out.println("Done"); - } -} - diff --git a/tests/069-field-type/src2/Blah.java b/tests/069-field-type/src2/Blah.java deleted file mode 100644 index b40e73265..000000000 --- a/tests/069-field-type/src2/Blah.java +++ /dev/null @@ -1,11 +0,0 @@ - -/** - * Trivial class; must implement an interesting interface. - */ -public class Blah implements Comparable { - public int compareTo(Object another) { - System.out.println("In compareTo"); - return 0; - } -} - diff --git a/tests/070-nio-buffer/expected.txt b/tests/070-nio-buffer/expected.txt deleted file mode 100644 index e2710014c..000000000 --- a/tests/070-nio-buffer/expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Got expected buffer overflow exception -Got expected out-of-bounds exception -Got expected buffer overflow exception diff --git a/tests/070-nio-buffer/info.txt b/tests/070-nio-buffer/info.txt deleted file mode 100644 index 761714eed..000000000 --- a/tests/070-nio-buffer/info.txt +++ /dev/null @@ -1 +0,0 @@ -Exercise NIO buffers (e.g. java.nio.ByteBuffer). diff --git a/tests/070-nio-buffer/src/Main.java b/tests/070-nio-buffer/src/Main.java deleted file mode 100644 index 8cdaa516a..000000000 --- a/tests/070-nio-buffer/src/Main.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.nio.BufferOverflowException; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.ShortBuffer; - -public class Main { - public static void main(String[] args) { - intFloatTest(); - basicShortTest(); - } - - /* - * Create a buffer and fiddle with it. - */ - public static void basicShortTest() { - ByteBuffer directBuf = ByteBuffer.allocateDirect(64); - //ByteBuffer directBuf = ByteBuffer.allocateDirect(65); - - ShortBuffer shortBuf = directBuf.asShortBuffer(); - - short[] myShorts = { - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, - 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, - 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031 - }; - - shortBuf.position(0); - shortBuf.put(myShorts, 0, 32); // should work - shortBuf.position(0); - shortBuf.put(myShorts, 16, 16); // should work - shortBuf.put(myShorts, 16, 16); // advance to end - - try { - shortBuf.put(myShorts, 0, 1); // should fail - System.err.println("ERROR: out-of-bounds put succeeded\n"); - } catch (BufferOverflowException boe) { - System.out.println("Got expected buffer overflow exception"); - } - - try { - shortBuf.position(0); - shortBuf.put(myShorts, 0, 33); // should fail - System.err.println("ERROR: out-of-bounds put succeeded\n"); - } catch (IndexOutOfBoundsException ioobe) { - System.out.println("Got expected out-of-bounds exception"); - } - - try { - shortBuf.position(16); - shortBuf.put(myShorts, 0, 17); // should fail - System.err.println("ERROR: out-of-bounds put succeeded\n"); - } catch (BufferOverflowException boe) { - System.out.println("Got expected buffer overflow exception"); - } - } - - /* - * Try this with either floats or ints; ints fail with - * BufferOverflowException, floats work. - * - * From http://code.google.com/p/android/issues/detail?id=1585 . - */ - public static void intFloatTest() { - ByteBuffer direct = ByteBuffer.allocateDirect(100); - direct.order(ByteOrder.nativeOrder()); - IntBuffer int1 = direct.asIntBuffer(); - int data[] = new int[25]; - //FloatBuffer int1 = direct.asFloatBuffer(); - //float data[] = new float[25]; - int1.clear (); - int1.put (data); - int1.position (0); - - int1.clear (); - int1.put (data); - int1.position (0); - } -} - diff --git a/tests/071-dexfile/expected.txt b/tests/071-dexfile/expected.txt deleted file mode 100644 index 8aa4061d3..000000000 --- a/tests/071-dexfile/expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -My path is: test-ex.jar -Constructing another -Got expected ULE -done diff --git a/tests/071-dexfile/info.txt b/tests/071-dexfile/info.txt deleted file mode 100644 index 5eb04895f..000000000 --- a/tests/071-dexfile/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -Exercise some Dalvik-specific DEX file features. This is not expected to -work on other VMs. diff --git a/tests/071-dexfile/src-ex/Another.java b/tests/071-dexfile/src-ex/Another.java deleted file mode 100644 index e732b5b34..000000000 --- a/tests/071-dexfile/src-ex/Another.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class Another { - public Another() { - System.out.println("Constructing another"); - - /* not expected to work; just exercises the call */ - try { - System.loadLibrary("nonexistent"); - } catch (UnsatisfiedLinkError ule) { - System.out.println("Got expected ULE"); - } - } -} - diff --git a/tests/071-dexfile/src/Main.java b/tests/071-dexfile/src/Main.java deleted file mode 100644 index 0e6cce760..000000000 --- a/tests/071-dexfile/src/Main.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.io.File; -import java.lang.reflect.Constructor; - -/** - * DexFile tests (Dalvik-specific). - */ -public class Main { - private static final String CLASS_PATH = "test-ex.jar"; - private static final String ODEX_DIR = "/sdcard"; - //private static final String ODEX_DIR = "."; - private static final String ODEX_ALT = "/tmp"; - private static final String LIB_DIR = "/nowhere/nothing/"; - - /** - * Create a class loader, explicitly specifying the source DEX and - * the location for the optimized DEX. - */ - public static void main(String[] args) { - ClassLoader dexClassLoader = getDexClassLoader(); - - Class anotherClass; - try { - anotherClass = dexClassLoader.loadClass("Another"); - } catch (ClassNotFoundException cnfe) { - throw new RuntimeException("Another?"); - } - - Object another; - try { - another = anotherClass.newInstance(); - } catch (IllegalAccessException ie) { - throw new RuntimeException("new another", ie); - } catch (InstantiationException ie) { - throw new RuntimeException("new another", ie); - } - - /* not expected to work; just exercises the call */ - dexClassLoader.getResource("nonexistent"); - - System.out.println("done"); - } - - /* - * Create an instance of DexClassLoader. The test harness doesn't - * have visibility into dalvik.system.*, so we do this through - * reflection. - */ - private static ClassLoader getDexClassLoader() { - String odexDir; - - /* - String androidData = System.getenv("ANDROID_DATA"); - if (androidData == null) - androidData = ""; - odexDir = androidData + "/" + ODEX_DIR; - */ - - File test = new File(ODEX_DIR); - if (test.isDirectory()) - odexDir = ODEX_DIR; - else - odexDir = ODEX_ALT; - //System.out.println("Output dir is " + odexDir); - - ClassLoader myLoader = Main.class.getClassLoader(); - Class dclClass; - try { - dclClass = myLoader.loadClass("dalvik.system.DexClassLoader"); - } catch (ClassNotFoundException cnfe) { - throw new RuntimeException("dalvik.system.DexClassLoader not found"); - } - - Constructor ctor; - try { - ctor = dclClass.getConstructor(String.class, String.class, - String.class, ClassLoader.class); - } catch (NoSuchMethodException nsme) { - throw new RuntimeException("DCL ctor", nsme); - } - - Object dclObj; - try { - dclObj = ctor.newInstance(CLASS_PATH, odexDir, LIB_DIR, myLoader); - } catch (Exception ex) { - throw new RuntimeException("DCL newInstance", ex); - } - - return (ClassLoader) dclObj; - } -} - diff --git a/tests/README.txt b/tests/README.txt deleted file mode 100644 index 276abbd42..000000000 --- a/tests/README.txt +++ /dev/null @@ -1,14 +0,0 @@ -VM test harness. - -Use "./run-all-tests" to run all tests, or "./run-test <number>" to run a -single test. Run "./run-test" with no arguments to see command flags; -in particular, the tests can be run on the desktop, on a USB-attached -device, or using the desktop "reference implementation". - - -For most tests, the sources are in the "src" subdirectory. Sources found -in the "src2" directory are compiled separately but to the same output -directory; this can be used to exercise "API mismatch" situations by -replacing class files created in the first pass. The "src-ex" directory -is built separately, and is intended for exercising class loaders. - diff --git a/tests/etc/default-build b/tests/etc/default-build deleted file mode 100755 index b0bf4911c..000000000 --- a/tests/etc/default-build +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Stop if something fails. -set -e - -mkdir classes -${JAVAC} -d classes `find src -name '*.java'` - -if [ -r src2 ]; then - ${JAVAC} -d classes `find src2 -name '*.java'` -fi - -dx -JXmx256m --debug --dex --dump-to=classes.lst --output=classes.dex \ - --dump-width=1000 classes -zip test.jar classes.dex - -if [ -r src-ex ]; then - mkdir classes-ex - ${JAVAC} -d classes-ex -cp classes `find src-ex -name '*.java'` - dx -JXmx256m --debug --dex --dump-to=classes-ex.lst \ - --output=classes-ex.dex --dump-width=1000 classes-ex - - # quick shuffle so that the stored name is "classes.dex" - mv classes.dex classes-1.dex - mv classes-ex.dex classes.dex - zip test-ex.jar classes.dex - mv classes.dex classes-ex.dex - mv classes-1.dex classes.dex -fi - diff --git a/tests/etc/default-run b/tests/etc/default-run deleted file mode 100755 index ecbbbc7c4..000000000 --- a/tests/etc/default-run +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2008 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -exec ${RUN} "$@" diff --git a/tests/etc/local-run-test-jar b/tests/etc/local-run-test-jar deleted file mode 100755 index 0c802ba37..000000000 --- a/tests/etc/local-run-test-jar +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh -# -# Run the code in test.jar on a host-local virtual machine. The jar should -# contain a top-level class named Main to run. -# -# Options: -# --quiet -- don't chatter -# --fast -- use the fast interpreter (the default) -# --portable -- use the portable interpreter -# --debug -- wait for debugger to attach -# --valgrind -- use valgrind -# --no-verify -- turn off verification (on by default) -# --no-optimize -- turn off optimization (on by default) - -msg() { - if [ "$QUIET" = "n" ]; then - echo "$@" - fi -} - -INTERP="" -DEBUG="n" -GDB="n" -VERIFY="y" -OPTIMIZE="y" -VALGRIND="n" -DEV_MODE="n" -QUIET="n" - -while true; do - if [ "x$1" = "x--quiet" ]; then - QUIET="y" - shift - elif [ "x$1" = "x--fast" ]; then - INTERP="fast" - msg "Using fast interpreter" - shift - elif [ "x$1" = "x--portable" ]; then - INTERP="portable" - msg "Using portable interpreter" - shift - elif [ "x$1" = "x--debug" ]; then - DEBUG="y" - shift - elif [ "x$1" = "x--gdb" ]; then - GDB="y" - shift - elif [ "x$1" = "x--valgrind" ]; then - VALGRIND="y" - shift - elif [ "x$1" = "x--dev" ]; then - DEV_MODE="y" - shift - elif [ "x$1" = "x--no-verify" ]; then - VERIFY="n" - shift - elif [ "x$1" = "x--no-optimize" ]; then - OPTIMIZE="n" - shift - elif [ "x$1" = "x--" ]; then - shift - break - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown option: $1" 1>&2 - exit 1 - else - break - fi -done - -if [ "x$INTERP" = "x" ]; then - INTERP="fast" - msg "Using fast interpreter by default" -fi - -if [ "$OPTIMIZE" = "y" ]; then - if [ "$VERIFY" = "y" ]; then - DEX_OPTIMIZE="-Xdexopt:verified" - else - DEX_OPTIMIZE="-Xdexopt:all" - fi - msg "Performing optimizations" -else - DEX_OPTIMIZE="-Xdexopt:none" - msg "Skipping optimizations" -fi - -if [ "$VERIFY" = "y" ]; then - DEX_VERIFY="" - msg "Performing verification" -else - DEX_VERIFY="-Xverify:none" - msg "Skipping verification" -fi - -if [ "$VALGRIND" = "y" ]; then - msg "Running with valgrind" - valgrind_cmd="valgrind" - #valgrind_cmd="$valgrind_cmd --leak-check=full" -else - valgrind_cmd="" -fi - -msg "------------------------------" - -BASE="$OUT" # from build environment -DATA_DIR=/tmp -DEBUG_OPTS="-Xcheck:jni -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" - -export ANDROID_PRINTF_LOG=brief -if [ "$DEV_MODE" = "y" ]; then - export ANDROID_LOG_TAGS='*:d' -else - export ANDROID_LOG_TAGS='*:s' -fi -export ANDROID_DATA="$DATA_DIR" -export ANDROID_ROOT="${BASE}/system" -export LD_LIBRARY_PATH="${BASE}/system/lib" -export DYLD_LIBRARY_PATH="${BASE}/system/lib" - -exe="${BASE}/system/bin/dalvikvm" -framework="${BASE}/system/framework" -bpath="${framework}/core.jar:${framework}/ext.jar:${framework}/framework.jar" - -if [ "$DEBUG" = "y" ]; then - PORT=8000 - msg "Waiting for debugger to connect on localhost:$PORT" - DEX_DEBUG="-agentlib:jdwp=transport=dt_socket,addres=$PORT,server=y,suspend=y" -fi - -if [ "$GDB" = "y" ]; then - gdb=gdb - gdbargs="--args $exe" -fi - -$valgrind_cmd $gdb $exe $gdbargs "-Xbootclasspath:${bpath}" \ - $DEX_VERIFY $DEX_OPTIMIZE $DEX_DEBUG "-Xint:${INTERP}" -ea \ - -cp test.jar Main "$@" diff --git a/tests/etc/push-and-run-test-jar b/tests/etc/push-and-run-test-jar deleted file mode 100755 index e2a1e06ee..000000000 --- a/tests/etc/push-and-run-test-jar +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# -# Run the code in test.jar on the device. The jar should contain a top-level -# class named Main to run. -# -# Options: -# --quiet -- don't chatter -# --fast -- use the fast interpreter (the default) -# --portable -- use the portable interpreter -# --debug -- wait for debugger to attach -# --zygote -- use the zygote (if so, all other options are ignored) -# --no-verify -- turn off verification (on by default) -# --no-optimize -- turn off optimization (on by default) - -msg() { - if [ "$QUIET" = "n" ]; then - echo "$@" - fi -} - -INTERP="" -DEBUG="n" -VERIFY="y" -OPTIMIZE="y" -ZYGOTE="n" -QUIET="n" - -while true; do - if [ "x$1" = "x--quiet" ]; then - QUIET="y" - shift - elif [ "x$1" = "x--fast" ]; then - INTERP="fast" - msg "Using fast interpreter" - shift - elif [ "x$1" = "x--portable" ]; then - INTERP="portable" - msg "Using portable interpreter" - shift - elif [ "x$1" = "x--debug" ]; then - DEBUG="y" - shift - elif [ "x$1" = "x--zygote" ]; then - ZYGOTE="y" - msg "Spawning from zygote" - shift - elif [ "x$1" = "x--no-verify" ]; then - VERIFY="n" - shift - elif [ "x$1" = "x--no-optimize" ]; then - OPTIMIZE="n" - shift - elif [ "x$1" = "x--" ]; then - shift - break - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown option: $1" 1>&2 - exit 1 - else - break - fi -done - -if [ "$ZYGOTE" = "n" ]; then - if [ "x$INTERP" = "x" ]; then - INTERP="fast" - msg "Using fast interpreter by default" - fi - - if [ "$OPTIMIZE" = "y" ]; then - if [ "$VERIFY" = "y" ]; then - DEX_OPTIMIZE="-Xdexopt:verified" - else - DEX_OPTIMIZE="-Xdexopt:all" - fi - msg "Performing optimizations" - else - DEX_OPTIMIZE="-Xdexopt:none" - msg "Skipping optimizations" - fi - - if [ "$VERIFY" = "y" ]; then - DEX_VERIFY="" - msg "Performing verification" - else - DEX_VERIFY="-Xverify:none" - msg "Skipping verification" - fi -fi - -msg "------------------------------" - -if [ "$QUIET" = "n" ]; then - adb push test.jar /data - adb push test-ex.jar /data -else - adb push test.jar /data >/dev/null 2>&1 - adb push test-ex.jar /data >/dev/null 2>&1 -fi - -if [ "$DEBUG" = "y" ]; then - DEX_DEBUG="-agentlib:jdwp=transport=dt_android_adb,server=y,suspend=y" -fi - -if [ "$ZYGOTE" = "y" ]; then - adb shell cd /data \; dvz -classpath test.jar Main "$@" -else - adb shell cd /data \; dalvikvm $DEX_VERIFY $DEX_OPTIMIZE $DEX_DEBUG \ - -cp test.jar "-Xint:${INTERP}" -ea Main "$@" -fi diff --git a/tests/etc/reference-run-test-classes b/tests/etc/reference-run-test-classes deleted file mode 100755 index cc2c39d1b..000000000 --- a/tests/etc/reference-run-test-classes +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# Run the code in a classes directory on a host-local reference virtual -# machine. The jar should contain a top-level class named Main to run. -# -# Options: -# --quiet -- don't chatter -# --debug -- wait for debugger to attach -# --no-verify -- turn off verification (on by default) - -msg() { - if [ "$QUIET" = "n" ]; then - echo "$@" - fi -} - -DEBUG="n" -QUIET="n" -VERIFY="y" - -while true; do - if [ "x$1" = "x--quiet" ]; then - QUIET="y" - shift - elif [ "x$1" = "x--debug" ]; then - DEBUG="y" - shift - elif [ "x$1" = "x--no-verify" ]; then - VERIFY="n" - shift - elif [ "x$1" = "x--" ]; then - shift - break - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown option: $1" 1>&2 - exit 1 - else - break - fi -done - -if [ "$VERIFY" = "y" ]; then - VERIFY_ARG="-Xverify:all" - msg "Performing verification" -else - VERIFY_ARG="-Xverify:none" - msg "Skipping verification" -fi - -if [ "$DEBUG" = "y" ]; then - PORT=8000 - msg "Waiting for debugger to connect on localhost:$PORT" - DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=$PORT,server=y,suspend=y" -fi - -${JAVA} ${DEBUG_OPTS} -ea ${VERIFY_ARG} -classpath classes Main "$@" diff --git a/tests/run-all-tests b/tests/run-all-tests deleted file mode 100755 index fd61e030a..000000000 --- a/tests/run-all-tests +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Set up prog to be the path of this script, including following symlinks, -# and set up progdir to be the fully-qualified pathname of its directory. -prog="$0" -while [ -h "${prog}" ]; do - newProg=`/bin/ls -ld "${prog}"` - newProg=`expr "${newProg}" : ".* -> \(.*\)$"` - if expr "x${newProg}" : 'x/' >/dev/null; then - prog="${newProg}" - else - progdir=`dirname "${prog}"` - prog="${progdir}/${newProg}" - fi -done -oldwd=`pwd` -progdir=`dirname "${prog}"` -cd "${progdir}" -progdir=`pwd` -prog="${progdir}"/`basename "${prog}"` - -run_args="" -usage="no" - -while true; do - if [ "x$1" = "x--local" ]; then - run_args="${run_args} --local" - shift - elif [ "x$1" = "x--reference" ]; then - run_args="${run_args} --reference" - shift - elif [ "x$1" = "x--fast" ]; then - run_args="${run_args} --fast" - shift - elif [ "x$1" = "x--portable" ]; then - run_args="${run_args} --portable" - shift - elif [ "x$1" = "x--debug" ]; then - run_args="${run_args} --debug" - shift - elif [ "x$1" = "x--zygote" ]; then - run_args="${run_args} --zygote" - shift - elif [ "x$1" = "x--no-verify" ]; then - run_args="${run_args} --no-verify" - shift - elif [ "x$1" = "x--no-optimize" ]; then - run_args="${run_args} --no-optimize" - shift - elif [ "x$1" = "x--valgrind" ]; then - run_args="${run_args} --valgrind" - shift - elif [ "x$1" = "x--dev" ]; then - run_args="${run_args} --dev" - shift - elif [ "x$1" = "x--update" ]; then - run_args="${run_args} --update" - shift - elif [ "x$1" = "x--help" ]; then - usage="yes" - shift - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown option: $1" 1>&2 - usage="yes" - break - else - break - fi -done - -if [ "$usage" = "yes" ]; then - prog=`basename $prog` - ( - echo "usage:" - echo " $prog --help Print this message." - echo " $prog [options] Run all tests with the given options." - echo " Options are all passed to run-test; refer to that for " \ - "further documentation:" - echo " --debug --dev --fast --local --no-optimize --no-verify" \ - "--portable" - echo " --reference --update --valgrind --zygote" - ) 1>&2 - exit 1 -fi - -passed=0 -failed=0 -failNames="" - -for i in *; do - if [ -d "$i" -a -r "$i" -a -r "${i}/info.txt" ]; then - ./run-test ${run_args} "$i" - if [ "$?" = "0" ]; then - ((passed += 1)) - else - ((failed += 1)) - failNames="$failNames $i" - fi - fi -done - -echo "passed: $passed test(s)" -echo "failed: $failed test(s)" - -for i in $failNames; do - echo "failed: $i" -done - diff --git a/tests/run-test b/tests/run-test deleted file mode 100755 index b50390561..000000000 --- a/tests/run-test +++ /dev/null @@ -1,246 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Set up prog to be the path of this script, including following symlinks, -# and set up progdir to be the fully-qualified pathname of its directory. -prog="$0" -while [ -h "${prog}" ]; do - newProg=`/bin/ls -ld "${prog}"` - newProg=`expr "${newProg}" : ".* -> \(.*\)$"` - if expr "x${newProg}" : 'x/' >/dev/null; then - prog="${newProg}" - else - progdir=`dirname "${prog}"` - prog="${progdir}/${newProg}" - fi -done -oldwd=`pwd` -progdir=`dirname "${prog}"` -cd "${progdir}" -progdir=`pwd` -prog="${progdir}"/`basename "${prog}"` - -export JAVA="java" -export JAVAC="javac -target 1.5" -export RUN="${progdir}/etc/push-and-run-test-jar" - -info="info.txt" -build="build" -run="run" -expected="expected.txt" -output="output.txt" -build_output="build-output.txt" -run_args="--quiet" - -dev_mode="no" -update_mode="no" -debug_mode="no" -usage="no" - -while true; do - if [ "x$1" = "x--local" ]; then - RUN="${progdir}/etc/local-run-test-jar" - shift - elif [ "x$1" = "x--reference" ]; then - RUN="${progdir}/etc/reference-run-test-classes" - shift - elif [ "x$1" = "x--fast" ]; then - run_args="${run_args} --fast" - shift - elif [ "x$1" = "x--portable" ]; then - run_args="${run_args} --portable" - shift - elif [ "x$1" = "x--debug" ]; then - run_args="${run_args} --debug" - shift - elif [ "x$1" = "x--gdb" ]; then - run_args="${run_args} --gdb" - dev_mode="yes" - shift - elif [ "x$1" = "x--zygote" ]; then - run_args="${run_args} --zygote" - shift - elif [ "x$1" = "x--no-verify" ]; then - run_args="${run_args} --no-verify" - shift - elif [ "x$1" = "x--no-optimize" ]; then - run_args="${run_args} --no-optimize" - shift - elif [ "x$1" = "x--valgrind" ]; then - run_args="${run_args} --valgrind" - shift - elif [ "x$1" = "x--dev" ]; then - run_args="${run_args} --dev" - dev_mode="yes" - shift - elif [ "x$1" = "x--update" ]; then - update_mode="yes" - shift - elif [ "x$1" = "x--help" ]; then - usage="yes" - shift - elif expr "x$1" : "x--" >/dev/null 2>&1; then - echo "unknown option: $1" 1>&2 - usage="yes" - break - else - break - fi -done - -if [ "$dev_mode" = "yes" -a "$update_mode" = "yes" ]; then - echo "--dev and --update are mutually exclusive" 1>&2 - usage="yes" -fi - -if [ "$usage" = "no" ]; then - if [ "x$1" = "x" -o "x$1" = "x-" ]; then - test_dir=`basename "$oldwd"` - else - test_dir="$1" - fi - - if [ '!' -d "$test_dir" ]; then - td2=`echo ${test_dir}-*` - if [ '!' -d "$td2" ]; then - echo "${test_dir}: no such test directory" 1>&2 - usage="yes" - fi - test_dir="$td2" - fi - - # Shift to get rid of the test name argument. The rest of the arguments - # will get passed to the test run. - shift -fi - -if [ "$usage" = "yes" ]; then - prog=`basename $prog` - ( - echo "usage:" - echo " $prog --help Print this message." - echo " $prog [options] [test-name] Run test normally." - echo " $prog --dev [options] [test-name] Development mode" \ - "(dumps to stdout)." - echo " $prog --update [options] [test-name] Update mode" \ - "(replaces expected.txt)." - echo ' Omitting the test name or specifying "-" will use the' \ - "current directory." - echo " Runtime Options:" - echo " --fast Use the fast interpreter (the default)." - echo " --portable Use the portable interpreter." - echo " --debug Wait for a debugger to attach." - #echo " --gdb Run under gdb; incompatible with some tests." - echo " --no-verify Turn off verification (on by default)." - echo " --no-optimize Turn off optimization (on by default)." - echo " --zygote Spawn the process from the Zygote." \ - "If used, then the" - echo " other runtime options are ignored." - echo " --local Use a host-local virtual machine." - echo " --valgrind Use valgrind when running locally." - echo " --reference Use a host-local reference virtual machine." - ) 1>&2 - exit 1 -fi - -cd "$test_dir" -test_dir=`pwd` - -td_info="${test_dir}/${info}" -td_expected="${test_dir}/${expected}" - -tmp_dir="/tmp/test-$$" - -if [ '!' '(' -r "$td_info" -a -r "$td_expected" ')' ]; then - echo "${test_dir}: missing files" 1>&2 - exit 1 -fi - -# copy the test to a temp dir and run it - -echo "${test_dir}: running..." 1>&2 - -rm -rf "$tmp_dir" -cp -Rp "$test_dir" "$tmp_dir" -cd "$tmp_dir" - -if [ '!' -r "$build" ]; then - cp "${progdir}/etc/default-build" build -fi - -if [ '!' -r "$run" ]; then - cp "${progdir}/etc/default-run" run -fi - -chmod 755 "$build" -chmod 755 "$run" - -good="no" -if [ "$dev_mode" = "yes" ]; then - "./${build}" 2>&1 - echo "build exit status: $?" 1>&2 - "./${run}" $run_args "$@" 2>&1 - echo "run exit status: $?" 1>&2 - good="yes" -elif [ "$update_mode" = "yes" ]; then - "./${build}" >"$build_output" 2>&1 - build_exit="$?" - if [ "$build_exit" = '0' ]; then - "./${run}" $run_args "$@" >"$output" 2>&1 - sed -e 's/[[:cntrl:]]$//g' < "$output" >"${td_expected}" - good="yes" - else - cat "$build_output" 1>&2 - echo "build exit status: $build_exit" 1>&2 - fi -else - "./${build}" >"$build_output" 2>&1 - build_exit="$?" - if [ "$build_exit" = '0' ]; then - "./${run}" $run_args "$@" >"$output" 2>&1 - else - cp "$build_output" "$output" - echo "build exit status: $build_exit" >>"$output" - fi - diff --strip-trailing-cr -q "$expected" "$output" >/dev/null - if [ "$?" = "0" ]; then - # output == expected - good="yes" - echo "${test_dir}: succeeded!" 1>&2 - fi -fi - -if [ "$good" = "yes" ]; then - cd "$oldwd" - rm -rf "$tmp_dir" - exit 0 -fi - -( - if [ "$update_mode" '!=' "yes" ]; then - echo "${test_dir}: FAILED!" - echo ' ' - echo '#################### info' - cat "${td_info}" | sed 's/^/# /g' - echo '#################### diffs' - diff --strip-trailing-cr -u "$expected" "$output" - echo '####################' - echo ' ' - fi - echo "files left in ${tmp_dir}" -) 1>&2 - -exit 1 |
