Index: build/make/setup.xml =================================================================== --- build/make/setup.xml (revision 478139) +++ build/make/setup.xml (working copy) @@ -97,6 +97,7 @@ + @@ -105,7 +106,7 @@ - + @@ -155,6 +156,8 @@ + + @@ -178,7 +181,7 @@ - + Index: build/make/win.properties =================================================================== --- build/make/win.properties (revision 478139) +++ build/make/win.properties (working copy) @@ -42,6 +42,8 @@ # http://sourceforge.net/project/showfiles.php?group_id=36177 remote.ANTCONTRIB.archive=http://superb-west.dl.sourceforge.net/sourceforge/ant-contrib/ant-contrib-1.0b2-bin.zip +remote.JASMIN.archive=http://mesh.dl.sourceforge.net/sourceforge/jasmin/jasmin-1.1.zip + # ZLIB, version 1.2.1 or above # http://www.zlib.net/ remote.ZLIB.archive=http://www.zlib.net/zlib123-dll.zip Index: build/make/targets/reg.test.xml =================================================================== --- build/make/targets/reg.test.xml (revision 0) +++ build/make/targets/reg.test.xml (revision 0) @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ============================================== + Please set the classpath of junit as follows: + build.bat -Djunit.jar=%JUNIT_HOME% test + ============================================== + + + + + + + + + + + + + + + + Index: build/make/targets/reg.test.run.xml =================================================================== --- build/make/targets/reg.test.run.xml (revision 0) +++ build/make/targets/reg.test.run.xml (revision 0) @@ -0,0 +1,138 @@ + + + + + + + + + + +================================== + Run regression tests +================================== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test failure: +Test '@{test}' FAILED! (${@{test}.res.code} exit code) +See ${reg.test.dir}/reports/@{test}.txt file for details. + + + + + + + + + + Index: build/make/targets/test.xml =================================================================== --- build/make/targets/test.xml (revision 478139) +++ build/make/targets/test.xml (working copy) @@ -21,7 +21,7 @@ Index: build/make/build.xml =================================================================== --- build/make/build.xml (revision 478139) +++ build/make/build.xml (working copy) @@ -427,6 +427,15 @@ + + + + + + + + + Index: src/test/regression/H1800/ExecTest.java =================================================================== --- src/test/regression/H1800/ExecTest.java (revision 0) +++ src/test/regression/H1800/ExecTest.java (revision 0) @@ -0,0 +1,43 @@ +package org.apache.harmony.drlvm.tests.regression.h1800; + +import junit.framework.TestCase; +import java.io.*; + +public class ExecTest extends TestCase { + + public void testExec() throws Exception { + String [] cmdL = new String[5]; + cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java"; + cmdL[1] = "-classpath"; + cmdL[2] = "."; + cmdL[3] = "testExec1_App"; + cmdL[4] = null; + try { + Process p = Runtime.getRuntime().exec(cmdL); + p.waitFor(); + int ans = p.exitValue(); + InputStream is = p.getErrorStream(); + int toRead = is.available(); + byte[] out = new byte[100]; + int sz = 0; + while (true) { + int r = is.read(); + if (r == -1) { + break; + } + out[sz] = (byte)r; + sz++; + if (sz == 100) { + break; + } + } + System.out.println("========Application error message======"); + System.out.println(new String (out, 0, sz)); + System.out.println("======================================="); + + fail("NullPointerException was not thrown. exitValue = " + ans); + } catch (NullPointerException e) { + } + } +} + Index: src/test/regression/H1800/readme.txt =================================================================== --- src/test/regression/H1800/readme.txt (revision 0) +++ src/test/regression/H1800/readme.txt (revision 0) @@ -0,0 +1 @@ +Test was taken from src/test/harmony-1800 \ No newline at end of file Index: src/test/regression/H2151/run.test.xml =================================================================== --- src/test/regression/H2151/run.test.xml (revision 0) +++ src/test/regression/H2151/run.test.xml (revision 0) @@ -0,0 +1,9 @@ + + + + + + + Index: src/test/regression/H2151/VMInit1Test.java =================================================================== --- src/test/regression/H2151/VMInit1Test.java (revision 0) +++ src/test/regression/H2151/VMInit1Test.java (revision 0) @@ -0,0 +1,23 @@ +package org.apache.harmony.drlvm.tests.regression.h2151; + +import junit.framework.TestCase; + +/** + * Test case for VMInit event. Should be executed with all JVMTI capabilies + * enabled. + */ +public class VMInit1Test extends TestCase { + public static void main(String args[]) { + (new VMInit1Test()).test(); + } + + public void test() { + System.out.println("test done"); + assertTrue(Status.status); + } +} + +class Status { + public static boolean status = false; +} + Index: src/test/regression/H2151/VMInit1.cpp =================================================================== --- src/test/regression/H2151/VMInit1.cpp (revision 0) +++ src/test/regression/H2151/VMInit1.cpp (revision 0) @@ -0,0 +1,49 @@ +#include +#include + +static void JNICALL vm_init_callback(jvmtiEnv* jvmti_env, JNIEnv* jni_env, jthread thread) +{ + jclass cl = jni_env->FindClass("org/apache/harmony/drlvm/tests/regression/h2151/Status"); + if (NULL == cl) + return; + + jfieldID fid = jni_env->GetStaticFieldID(cl, "status", "Z"); + if (NULL == fid) + return; + + jni_env->SetStaticBooleanField(cl, fid, JNI_TRUE); +} + +JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +{ + jvmtiEnv *jvmti_env; + if(vm->GetEnv((void**)&jvmti_env, JVMTI_VERSION_1_0) != JNI_OK) + return JNI_ERR; + + // Get all supported capabilities + jvmtiCapabilities capabilities; + jvmtiError result = jvmti_env->GetPotentialCapabilities(&capabilities); + if (JVMTI_ERROR_NONE != result) + return JNI_ERR; + + // Enabled all supported capabilities + result = jvmti_env->AddCapabilities(&capabilities); + if (JVMTI_ERROR_NONE != result) + return JNI_ERR; + + jvmtiEventCallbacks callbacks; + memset(&callbacks, 0, sizeof(jvmtiEventCallbacks)); + callbacks.VMInit = vm_init_callback; + + // Set callback for VMInit + result = jvmti_env->SetEventCallbacks(&callbacks, (jint)sizeof(callbacks)); + if (JVMTI_ERROR_NONE != result) + return JNI_ERR; + + // Set event mode to true + result = jvmti_env->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL); + if (JVMTI_ERROR_NONE != result) + return JNI_ERR; + + return JNI_OK; +} Index: src/test/regression/H2151/readme.txt =================================================================== --- src/test/regression/H2151/readme.txt (revision 0) +++ src/test/regression/H2151/readme.txt (revision 0) @@ -0,0 +1 @@ +The test sources were taken from vm/tests/jvmti/VMInit1 \ No newline at end of file Index: src/test/regression/H0000/run.test.xml =================================================================== --- src/test/regression/H0000/run.test.xml (revision 0) +++ src/test/regression/H0000/run.test.xml (revision 0) @@ -0,0 +1,13 @@ + + + + + + + + + + + + Index: src/test/regression/H0000/DirectByteBufferTest.java =================================================================== --- src/test/regression/H0000/DirectByteBufferTest.java (revision 0) +++ src/test/regression/H0000/DirectByteBufferTest.java (revision 0) @@ -0,0 +1,18 @@ +package org.apache.harmony.drlvm.tests.regression.h0000; + +import junit.framework.TestCase; + +public class DirectByteBufferTest extends TestCase { + + static { System.loadLibrary("DirectByteBufferTest"); } + + public static void main(String[] args) { + new DirectByteBufferTest().testValidBuffer(); + } + + private native String testValidBuffer0(); + + public void testValidBuffer() { + assertNull(testValidBuffer0()); + } +} Index: src/test/regression/H0000/DirectByteBufferTest.c =================================================================== --- src/test/regression/H0000/DirectByteBufferTest.c (revision 0) +++ src/test/regression/H0000/DirectByteBufferTest.c (revision 0) @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +JNIEXPORT jstring JNICALL Java_org_apache_harmony_drlvm_tests_regression_h0000_DirectByteBufferTest_testValidBuffer0 + (JNIEnv *, jobject); + + +/* + * Class: DirectByteBufferTest + * Method: testValidBuffer0 + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_apache_harmony_drlvm_tests_regression_h0000_DirectByteBufferTest_testValidBuffer0 + (JNIEnv *jenv, jobject unused) +{ + char* error = (char*)calloc(256, 1); + const jlong BUF_SIZE = 100; + void* buf = malloc(BUF_SIZE); + jobject jbuf = (*jenv)->NewDirectByteBuffer(jenv, buf, BUF_SIZE); + void* addr = (*jenv)->GetDirectBufferAddress(jenv, jbuf); + jlong size = (*jenv)->GetDirectBufferCapacity(jenv, jbuf); + jstring jstr; + if (jbuf) { + if (addr != buf) { + sprintf(error, "invalid buffer address: expected %p but was %p\n", buf, addr); + } + if (size != BUF_SIZE) { + sprintf(error + strlen(error), + "invalid buffer capacity: expected %d but was %d\n", BUF_SIZE, size); + } + } else { + // access to direct buffers not supported + if (addr != NULL | size != -1) { + sprintf(error, "inconsistent NIO support:\n" + "NewDirectByteBuffer() returned NULL;\n" + "GetDirectBufferAddress() returned %p\n" + "GetDirectBufferCapacity() returned %d\n", addr, size); + } else { + sprintf(error, "no NIO support\n"); + } + } + + jstr = strlen(error) ? (*jenv)->NewStringUTF(jenv, error) : NULL; + free(buf); + free(error); + + return jstr; +} Index: src/test/regression/H0000/readme.txt =================================================================== --- src/test/regression/H0000/readme.txt (revision 0) +++ src/test/regression/H0000/readme.txt (revision 0) @@ -0,0 +1,10 @@ +Test sources were taken and modified from src/test/jni/nio. +Currenlty the test fails with the following message: + +HMYEXEL062E Internal VM error: Failed to create Java VM +FAILED to invoke JVM. + +But it is impossible to determine wether the test pass or not +because in both cases VM returns 0 status code. + +It demonstrates limitations of using of JUnit test format for VM testing. \ No newline at end of file Index: src/test/regression/H1694/H1694.java =================================================================== --- src/test/regression/H1694/H1694.java (revision 0) +++ src/test/regression/H1694/H1694.java (revision 0) @@ -0,0 +1,32 @@ +package org.apache.harmony.drlvm.tests.regression.h1694; + +class H1694 { + public int test() { + Object arrayOfObjects[] = new Object[10000]; // array of objects + + // padding memory + System.out.println("Padding memory..."); + int numObjects=0; + + try { + while (true) { + arrayOfObjects[numObjects] = new StressTest01Object1(); // padding memory by big objects + numObjects++; + } + } + catch (OutOfMemoryError oome) { + } + + System.out.println("Test passed"); + return 104; // return pass + } + + public static void main(String[] args) { + System.exit(new H1694().test()); + } +} + +/* big padding object */ +class StressTest01Object1 { + int testArray[][][] = new int[100][100][100]; +} Index: src/test/regression/H1694/readme.txt =================================================================== --- src/test/regression/H1694/readme.txt (revision 0) +++ src/test/regression/H1694/readme.txt (revision 0) @@ -0,0 +1 @@ +Test was taken from src/test/harmony-1694 \ No newline at end of file Index: src/test/regression/H788/Test.java =================================================================== --- src/test/regression/H788/Test.java (revision 0) +++ src/test/regression/H788/Test.java (revision 0) @@ -0,0 +1,49 @@ +package org.apache.harmony.drlvm.tests.regression.h788; + +import junit.framework.TestCase; + +public class Test extends TestCase { + + public void test() throws Exception { + // check multianewarray + try { + Class cl = Class.forName("org.apache.harmony.drlvm.tests.regression.h788.TestArray"); + cl.newInstance(); + fail(); + } catch (LinkageError e) { + System.out.println("TestArray: Passes: " + e); + } + // check invokespecial + try { + Class cl = Class.forName("org.apache.harmony.drlvm.tests.regression.h788.TestSpecial"); + cl.newInstance(); + fail(); + } catch (LinkageError e) { + System.out.println("TestSpecial: Passes: " + e); + } + // check invokevirtual + try { + Class cl = Class.forName("org.apache.harmony.drlvm.tests.regression.h788.TestVirtual"); + cl.newInstance(); + fail(); + } catch (LinkageError e) { + System.out.println("TestVirtual: Passes: " + e); + } + // check invokeinterface + try { + Class cl = Class.forName("org.apache.harmony.drlvm.tests.regression.h788.TestInterface"); + cl.newInstance(); + fail(); + } catch (LinkageError e) { + System.out.println("TestInterface: Passes: " + e); + } + // check invokestatic + try { + Class cl = Class.forName("org.apache.harmony.drlvm.tests.regression.h788.TestStatic"); + cl.newInstance(); + fail(); + } catch (LinkageError e) { + System.out.println("TestStatic: Passes: " + e); + } + } +} Index: src/test/regression/H788/TestStatic.j =================================================================== --- src/test/regression/H788/TestStatic.j (revision 0) +++ src/test/regression/H788/TestStatic.j (revision 0) @@ -0,0 +1,277 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/TestStatic +.super java/lang/Object + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +.method public static TestForStatic()V + .limit stack 300 + .limit locals 3 + + ldc 1 + ldc 2 + ldc 3 + ldc 4 + ldc 5 + ldc 6 + ldc 7 + ldc 8 + ldc 9 + ldc 10 + ldc 11 + ldc 12 + ldc 13 + ldc 14 + ldc 15 + ldc 16 + ldc 17 + ldc 18 + ldc 19 + ldc 20 + ldc 21 + ldc 22 + ldc 23 + ldc 24 + ldc 25 + ldc 26 + ldc 27 + ldc 28 + ldc 29 + ldc 30 + ldc 31 + ldc 32 + ldc 33 + ldc 34 + ldc 35 + ldc 36 + ldc 37 + ldc 38 + ldc 39 + ldc 40 + ldc 41 + ldc 42 + ldc 43 + ldc 44 + ldc 45 + ldc 46 + ldc 47 + ldc 48 + ldc 49 + ldc 40 + ldc 51 + ldc 52 + ldc 53 + ldc 54 + ldc 55 + ldc 56 + ldc 57 + ldc 58 + ldc 59 + ldc 60 + ldc 61 + ldc 62 + ldc 63 + ldc 64 + ldc 65 + ldc 66 + ldc 67 + ldc 68 + ldc 69 + ldc 70 + ldc 71 + ldc 72 + ldc 73 + ldc 74 + ldc 75 + ldc 76 + ldc 77 + ldc 78 + ldc 79 + ldc 80 + ldc 81 + ldc 82 + ldc 83 + ldc 84 + ldc 85 + ldc 86 + ldc 87 + ldc 88 + ldc 89 + ldc 90 + ldc 91 + ldc 92 + ldc 93 + ldc 94 + ldc 95 + ldc 96 + ldc 97 + ldc 98 + ldc 99 + ldc 100 + ldc 101 + ldc 102 + ldc 103 + ldc 104 + ldc 105 + ldc 106 + ldc 107 + ldc 108 + ldc 109 + ldc 110 + ldc 111 + ldc 112 + ldc 113 + ldc 114 + ldc 115 + ldc 116 + ldc 117 + ldc 118 + ldc 119 + ldc 120 + ldc 121 + ldc 122 + ldc 123 + ldc 124 + ldc 125 + ldc 126 + ldc 127 + ldc 128 + ldc 129 + ldc 130 + ldc 131 + ldc 132 + ldc 133 + ldc 134 + ldc 135 + ldc 136 + ldc 137 + ldc 138 + ldc 139 + ldc 140 + ldc 141 + ldc 142 + ldc 143 + ldc 144 + ldc 145 + ldc 146 + ldc 147 + ldc 148 + ldc 149 + ldc 140 + ldc 151 + ldc 152 + ldc 153 + ldc 154 + ldc 155 + ldc 156 + ldc 157 + ldc 158 + ldc 159 + ldc 160 + ldc 161 + ldc 162 + ldc 163 + ldc 164 + ldc 165 + ldc 166 + ldc 167 + ldc 168 + ldc 169 + ldc 170 + ldc 171 + ldc 172 + ldc 173 + ldc 174 + ldc 175 + ldc 176 + ldc 177 + ldc 178 + ldc 179 + ldc 180 + ldc 181 + ldc 182 + ldc 183 + ldc 184 + ldc 185 + ldc 186 + ldc 187 + ldc 188 + ldc 189 + ldc 190 + ldc 191 + ldc 192 + ldc 193 + ldc 194 + ldc 195 + ldc 196 + ldc 197 + ldc 198 + ldc 199 + ldc 200 + ldc 201 + ldc 202 + ldc 203 + ldc 204 + ldc 205 + ldc 206 + ldc 207 + ldc 208 + ldc 209 + ldc 210 + ldc 211 + ldc 212 + ldc 213 + ldc 214 + ldc 215 + ldc 216 + ldc 217 + ldc 218 + ldc 219 + ldc 220 + ldc 221 + ldc 222 + ldc 223 + ldc 224 + ldc 225 + ldc 226 + ldc 227 + ldc 228 + ldc 229 + ldc 230 + ldc 231 + ldc 232 + ldc 233 + ldc 234 + ldc 235 + ldc 236 + ldc 237 + ldc 238 + ldc 239 + ldc 240 + ldc 241 + ldc 242 + ldc 243 + ldc 244 + ldc 245 + ldc 246 + ldc 247 + ldc 248 + ldc 249 + ldc 240 + ldc 251 + ldc 252 + ldc 253 + ldc 254 + ldc 255 + ldc 256 + + ; must throw java.lang.VerifyError or java.lang.ClassFormatError + invokestatic Invoke/InvokeStatic(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)I + + return +.end method + + Index: src/test/regression/H788/Invoke.j =================================================================== --- src/test/regression/H788/Invoke.j (revision 0) +++ src/test/regression/H788/Invoke.j (revision 0) @@ -0,0 +1,40 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/Invoke +.super java/lang/Object +.implements InvokeInterface + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +; init method with 256 args for invokespecial call +.method public (IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)V + .limit stack 10 + .limit locals 260 + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +; method InvokeStatic with 256 args +.method public static InvokeStatic(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)V + .limit stack 10 + .limit locals 260 + return +.end method + +;method InvokeVirtual with 256 args +.method public InvokeVirtual(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)V + .limit stack 10 + .limit locals 260 + return +.end method + +;method InvokeInterface(I...I)I with 256 args +.method public Interface(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)I + .limit stack 10 + .limit locals 260 + sipush 105 + ireturn +.end method Index: src/test/regression/H788/InvokeInterface.j =================================================================== --- src/test/regression/H788/InvokeInterface.j (revision 0) +++ src/test/regression/H788/InvokeInterface.j (revision 0) @@ -0,0 +1,6 @@ +.interface public org/apache/harmony/drlvm/tests/regression/h788/InvokeInterface +.super java/lang/Object + +; method InvokeInterface with 256 args +.method public abstract InvokeInterface(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)V +.end method Index: src/test/regression/H788/TestArray.j =================================================================== --- src/test/regression/H788/TestArray.j (revision 0) +++ src/test/regression/H788/TestArray.j (revision 0) @@ -0,0 +1,280 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/TestArray +.super java/lang/Object + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +.method public static TestMultianewarray()V + + .limit stack 258 + .limit locals 3 + + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + iconst_1 + + ; creating array with 255 dimentions + ; must throw java.lang.VerifyError + multianewarray [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Ljava/lang/String; 255 + astore_2 + + return +.end method + Index: src/test/regression/H788/TestInterface.j =================================================================== --- src/test/regression/H788/TestInterface.j (revision 0) +++ src/test/regression/H788/TestInterface.j (revision 0) @@ -0,0 +1,279 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/TestInterface +.super java/lang/Object + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +.method public static TestForInterface()V + .limit stack 300 + .limit locals 3 + + new Invoke + dup + + ldc 1 + ldc 2 + ldc 3 + ldc 4 + ldc 5 + ldc 6 + ldc 7 + ldc 8 + ldc 9 + ldc 10 + ldc 11 + ldc 12 + ldc 13 + ldc 14 + ldc 15 + ldc 16 + ldc 17 + ldc 18 + ldc 19 + ldc 20 + ldc 21 + ldc 22 + ldc 23 + ldc 24 + ldc 25 + ldc 26 + ldc 27 + ldc 28 + ldc 29 + ldc 30 + ldc 31 + ldc 32 + ldc 33 + ldc 34 + ldc 35 + ldc 36 + ldc 37 + ldc 38 + ldc 39 + ldc 40 + ldc 41 + ldc 42 + ldc 43 + ldc 44 + ldc 45 + ldc 46 + ldc 47 + ldc 48 + ldc 49 + ldc 40 + ldc 51 + ldc 52 + ldc 53 + ldc 54 + ldc 55 + ldc 56 + ldc 57 + ldc 58 + ldc 59 + ldc 60 + ldc 61 + ldc 62 + ldc 63 + ldc 64 + ldc 65 + ldc 66 + ldc 67 + ldc 68 + ldc 69 + ldc 70 + ldc 71 + ldc 72 + ldc 73 + ldc 74 + ldc 75 + ldc 76 + ldc 77 + ldc 78 + ldc 79 + ldc 80 + ldc 81 + ldc 82 + ldc 83 + ldc 84 + ldc 85 + ldc 86 + ldc 87 + ldc 88 + ldc 89 + ldc 90 + ldc 91 + ldc 92 + ldc 93 + ldc 94 + ldc 95 + ldc 96 + ldc 97 + ldc 98 + ldc 99 + ldc 100 + ldc 101 + ldc 102 + ldc 103 + ldc 104 + ldc 105 + ldc 106 + ldc 107 + ldc 108 + ldc 109 + ldc 110 + ldc 111 + ldc 112 + ldc 113 + ldc 114 + ldc 115 + ldc 116 + ldc 117 + ldc 118 + ldc 119 + ldc 120 + ldc 121 + ldc 122 + ldc 123 + ldc 124 + ldc 125 + ldc 126 + ldc 127 + ldc 128 + ldc 129 + ldc 130 + ldc 131 + ldc 132 + ldc 133 + ldc 134 + ldc 135 + ldc 136 + ldc 137 + ldc 138 + ldc 139 + ldc 140 + ldc 141 + ldc 142 + ldc 143 + ldc 144 + ldc 145 + ldc 146 + ldc 147 + ldc 148 + ldc 149 + ldc 140 + ldc 151 + ldc 152 + ldc 153 + ldc 154 + ldc 155 + ldc 156 + ldc 157 + ldc 158 + ldc 159 + ldc 160 + ldc 161 + ldc 162 + ldc 163 + ldc 164 + ldc 165 + ldc 166 + ldc 167 + ldc 168 + ldc 169 + ldc 170 + ldc 171 + ldc 172 + ldc 173 + ldc 174 + ldc 175 + ldc 176 + ldc 177 + ldc 178 + ldc 179 + ldc 180 + ldc 181 + ldc 182 + ldc 183 + ldc 184 + ldc 185 + ldc 186 + ldc 187 + ldc 188 + ldc 189 + ldc 190 + ldc 191 + ldc 192 + ldc 193 + ldc 194 + ldc 195 + ldc 196 + ldc 197 + ldc 198 + ldc 199 + ldc 200 + ldc 201 + ldc 202 + ldc 203 + ldc 204 + ldc 205 + ldc 206 + ldc 207 + ldc 208 + ldc 209 + ldc 210 + ldc 211 + ldc 212 + ldc 213 + ldc 214 + ldc 215 + ldc 216 + ldc 217 + ldc 218 + ldc 219 + ldc 220 + ldc 221 + ldc 222 + ldc 223 + ldc 224 + ldc 225 + ldc 226 + ldc 227 + ldc 228 + ldc 229 + ldc 230 + ldc 231 + ldc 232 + ldc 233 + ldc 234 + ldc 235 + ldc 236 + ldc 237 + ldc 238 + ldc 239 + ldc 240 + ldc 241 + ldc 242 + ldc 243 + ldc 244 + ldc 245 + ldc 246 + ldc 247 + ldc 248 + ldc 249 + ldc 240 + ldc 251 + ldc 252 + ldc 253 + ldc 254 + ldc 255 + ldc 256 + + ; must throw java.lang.VerifyError or java.lang.ClassFormatError + invokeinterface InvokeInterface/InvokeInterface(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)I 256 + return +.end method + + Index: src/test/regression/H788/TestSpecial.j =================================================================== --- src/test/regression/H788/TestSpecial.j (revision 0) +++ src/test/regression/H788/TestSpecial.j (revision 0) @@ -0,0 +1,279 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/TestSpecial +.super java/lang/Object + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +.method public static TestForSpecial()V + .limit stack 300 + .limit locals 3 + + new Invoke + dup + + ldc 1 + ldc 2 + ldc 3 + ldc 4 + ldc 5 + ldc 6 + ldc 7 + ldc 8 + ldc 9 + ldc 10 + ldc 11 + ldc 12 + ldc 13 + ldc 14 + ldc 15 + ldc 16 + ldc 17 + ldc 18 + ldc 19 + ldc 20 + ldc 21 + ldc 22 + ldc 23 + ldc 24 + ldc 25 + ldc 26 + ldc 27 + ldc 28 + ldc 29 + ldc 30 + ldc 31 + ldc 32 + ldc 33 + ldc 34 + ldc 35 + ldc 36 + ldc 37 + ldc 38 + ldc 39 + ldc 40 + ldc 41 + ldc 42 + ldc 43 + ldc 44 + ldc 45 + ldc 46 + ldc 47 + ldc 48 + ldc 49 + ldc 40 + ldc 51 + ldc 52 + ldc 53 + ldc 54 + ldc 55 + ldc 56 + ldc 57 + ldc 58 + ldc 59 + ldc 60 + ldc 61 + ldc 62 + ldc 63 + ldc 64 + ldc 65 + ldc 66 + ldc 67 + ldc 68 + ldc 69 + ldc 70 + ldc 71 + ldc 72 + ldc 73 + ldc 74 + ldc 75 + ldc 76 + ldc 77 + ldc 78 + ldc 79 + ldc 80 + ldc 81 + ldc 82 + ldc 83 + ldc 84 + ldc 85 + ldc 86 + ldc 87 + ldc 88 + ldc 89 + ldc 90 + ldc 91 + ldc 92 + ldc 93 + ldc 94 + ldc 95 + ldc 96 + ldc 97 + ldc 98 + ldc 99 + ldc 100 + ldc 101 + ldc 102 + ldc 103 + ldc 104 + ldc 105 + ldc 106 + ldc 107 + ldc 108 + ldc 109 + ldc 110 + ldc 111 + ldc 112 + ldc 113 + ldc 114 + ldc 115 + ldc 116 + ldc 117 + ldc 118 + ldc 119 + ldc 120 + ldc 121 + ldc 122 + ldc 123 + ldc 124 + ldc 125 + ldc 126 + ldc 127 + ldc 128 + ldc 129 + ldc 130 + ldc 131 + ldc 132 + ldc 133 + ldc 134 + ldc 135 + ldc 136 + ldc 137 + ldc 138 + ldc 139 + ldc 140 + ldc 141 + ldc 142 + ldc 143 + ldc 144 + ldc 145 + ldc 146 + ldc 147 + ldc 148 + ldc 149 + ldc 140 + ldc 151 + ldc 152 + ldc 153 + ldc 154 + ldc 155 + ldc 156 + ldc 157 + ldc 158 + ldc 159 + ldc 160 + ldc 161 + ldc 162 + ldc 163 + ldc 164 + ldc 165 + ldc 166 + ldc 167 + ldc 168 + ldc 169 + ldc 170 + ldc 171 + ldc 172 + ldc 173 + ldc 174 + ldc 175 + ldc 176 + ldc 177 + ldc 178 + ldc 179 + ldc 180 + ldc 181 + ldc 182 + ldc 183 + ldc 184 + ldc 185 + ldc 186 + ldc 187 + ldc 188 + ldc 189 + ldc 190 + ldc 191 + ldc 192 + ldc 193 + ldc 194 + ldc 195 + ldc 196 + ldc 197 + ldc 198 + ldc 199 + ldc 200 + ldc 201 + ldc 202 + ldc 203 + ldc 204 + ldc 205 + ldc 206 + ldc 207 + ldc 208 + ldc 209 + ldc 210 + ldc 211 + ldc 212 + ldc 213 + ldc 214 + ldc 215 + ldc 216 + ldc 217 + ldc 218 + ldc 219 + ldc 220 + ldc 221 + ldc 222 + ldc 223 + ldc 224 + ldc 225 + ldc 226 + ldc 227 + ldc 228 + ldc 229 + ldc 230 + ldc 231 + ldc 232 + ldc 233 + ldc 234 + ldc 235 + ldc 236 + ldc 237 + ldc 238 + ldc 239 + ldc 240 + ldc 241 + ldc 242 + ldc 243 + ldc 244 + ldc 245 + ldc 246 + ldc 247 + ldc 248 + ldc 249 + ldc 240 + ldc 251 + ldc 252 + ldc 253 + ldc 254 + ldc 255 + ldc 256 + + ; must throw java.lang.VerifyError or java.lang.ClassFormatError + invokespecial Invoke/(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)I + return +.end method + + Index: src/test/regression/H788/readme.txt =================================================================== --- src/test/regression/H788/readme.txt (revision 0) +++ src/test/regression/H788/readme.txt (revision 0) @@ -0,0 +1 @@ +tests were moved from src/test/array_method_limit/src \ No newline at end of file Index: src/test/regression/H788/TestVirtual.j =================================================================== --- src/test/regression/H788/TestVirtual.j (revision 0) +++ src/test/regression/H788/TestVirtual.j (revision 0) @@ -0,0 +1,281 @@ +.class public org/apache/harmony/drlvm/tests/regression/h788/TestVirtual +.super java/lang/Object + +.method public ()V + aload_0 + invokenonvirtual java/lang/Object/()V + return +.end method + +.method public static TestForVirtual()V + .limit stack 300 + .limit locals 3 + + new Invoke + dup + invokespecial Invoke/()V + + ldc 1 + ldc 2 + ldc 3 + ldc 4 + ldc 5 + ldc 6 + ldc 7 + ldc 8 + ldc 9 + ldc 10 + ldc 11 + ldc 12 + ldc 13 + ldc 14 + ldc 15 + ldc 16 + ldc 17 + ldc 18 + ldc 19 + ldc 20 + ldc 21 + ldc 22 + ldc 23 + ldc 24 + ldc 25 + ldc 26 + ldc 27 + ldc 28 + ldc 29 + ldc 30 + ldc 31 + ldc 32 + ldc 33 + ldc 34 + ldc 35 + ldc 36 + ldc 37 + ldc 38 + ldc 39 + ldc 40 + ldc 41 + ldc 42 + ldc 43 + ldc 44 + ldc 45 + ldc 46 + ldc 47 + ldc 48 + ldc 49 + ldc 40 + ldc 51 + ldc 52 + ldc 53 + ldc 54 + ldc 55 + ldc 56 + ldc 57 + ldc 58 + ldc 59 + ldc 60 + ldc 61 + ldc 62 + ldc 63 + ldc 64 + ldc 65 + ldc 66 + ldc 67 + ldc 68 + ldc 69 + ldc 70 + ldc 71 + ldc 72 + ldc 73 + ldc 74 + ldc 75 + ldc 76 + ldc 77 + ldc 78 + ldc 79 + ldc 80 + ldc 81 + ldc 82 + ldc 83 + ldc 84 + ldc 85 + ldc 86 + ldc 87 + ldc 88 + ldc 89 + ldc 90 + ldc 91 + ldc 92 + ldc 93 + ldc 94 + ldc 95 + ldc 96 + ldc 97 + ldc 98 + ldc 99 + ldc 100 + ldc 101 + ldc 102 + ldc 103 + ldc 104 + ldc 105 + ldc 106 + ldc 107 + ldc 108 + ldc 109 + ldc 110 + ldc 111 + ldc 112 + ldc 113 + ldc 114 + ldc 115 + ldc 116 + ldc 117 + ldc 118 + ldc 119 + ldc 120 + ldc 121 + ldc 122 + ldc 123 + ldc 124 + ldc 125 + ldc 126 + ldc 127 + ldc 128 + ldc 129 + ldc 130 + ldc 131 + ldc 132 + ldc 133 + ldc 134 + ldc 135 + ldc 136 + ldc 137 + ldc 138 + ldc 139 + ldc 140 + ldc 141 + ldc 142 + ldc 143 + ldc 144 + ldc 145 + ldc 146 + ldc 147 + ldc 148 + ldc 149 + ldc 140 + ldc 151 + ldc 152 + ldc 153 + ldc 154 + ldc 155 + ldc 156 + ldc 157 + ldc 158 + ldc 159 + ldc 160 + ldc 161 + ldc 162 + ldc 163 + ldc 164 + ldc 165 + ldc 166 + ldc 167 + ldc 168 + ldc 169 + ldc 170 + ldc 171 + ldc 172 + ldc 173 + ldc 174 + ldc 175 + ldc 176 + ldc 177 + ldc 178 + ldc 179 + ldc 180 + ldc 181 + ldc 182 + ldc 183 + ldc 184 + ldc 185 + ldc 186 + ldc 187 + ldc 188 + ldc 189 + ldc 190 + ldc 191 + ldc 192 + ldc 193 + ldc 194 + ldc 195 + ldc 196 + ldc 197 + ldc 198 + ldc 199 + ldc 200 + ldc 201 + ldc 202 + ldc 203 + ldc 204 + ldc 205 + ldc 206 + ldc 207 + ldc 208 + ldc 209 + ldc 210 + ldc 211 + ldc 212 + ldc 213 + ldc 214 + ldc 215 + ldc 216 + ldc 217 + ldc 218 + ldc 219 + ldc 220 + ldc 221 + ldc 222 + ldc 223 + ldc 224 + ldc 225 + ldc 226 + ldc 227 + ldc 228 + ldc 229 + ldc 230 + ldc 231 + ldc 232 + ldc 233 + ldc 234 + ldc 235 + ldc 236 + ldc 237 + ldc 238 + ldc 239 + ldc 240 + ldc 241 + ldc 242 + ldc 243 + ldc 244 + ldc 245 + ldc 246 + ldc 247 + ldc 248 + ldc 249 + ldc 240 + ldc 251 + ldc 252 + ldc 253 + ldc 254 + ldc 255 + ldc 256 + + ; must throw java.lang.VerifyError or java.lang.ClassFormatError + invokevirtual Invoke/InvokeVirtual(IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII)I + + return +.end method + +