* tests/regression/jasmin/runtest: Delete temporary files.
authoredwin <none@none>
Sun, 10 Sep 2006 13:45:56 +0000 (13:45 +0000)
committeredwin <none@none>
Sun, 10 Sep 2006 13:45:56 +0000 (13:45 +0000)
* tests/regression/jasmin/test_verify_ok_jsr.j: New test.
* tests/regression/jasmin/test_verify_ok_jsr_multiple_blocks.j: New test.
* tests/regression/jasmin/test_verify_fail_ret_bad_type.j: New test.

--HG--
branch : unified_variables

tests/regression/jasmin/runtest
tests/regression/jasmin/test_verify_fail_ret_bad_type.j [new file with mode: 0644]
tests/regression/jasmin/test_verify_ok_jsr.j [new file with mode: 0644]
tests/regression/jasmin/test_verify_ok_jsr_multiple_blocks.j [new file with mode: 0644]

index d00188ffad68b632c45de8164dc91cffe22f29a0..47c79bc814bd7da3e2ce01e6111b36f96cd4f34b 100755 (executable)
@@ -70,7 +70,7 @@ do
     shift
 done
 
-#rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG"
+rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR"
 
 exit $EXITCODE
 
diff --git a/tests/regression/jasmin/test_verify_fail_ret_bad_type.j b/tests/regression/jasmin/test_verify_fail_ret_bad_type.j
new file mode 100644 (file)
index 0000000..228d1ea
--- /dev/null
@@ -0,0 +1,55 @@
+.class public test_verify_fail_ret_bad_type
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+   aload_0
+   invokenonvirtual java/lang/Object/<init>()V
+   return
+.end method
+
+; ======================================================================
+
+.method public static checkI(I)V
+       .limit locals 1
+       .limit stack 10
+       getstatic java/lang/System/out Ljava/io/PrintStream;
+       iload_0
+       invokevirtual java/io/PrintStream/println(I)V
+       return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+       .limit stack 2
+       .limit locals 3
+
+       ldc 35
+       istore 1
+
+       aload 0
+       ifnull force_basic_block_boundary
+
+       ; --------------------------------------------------
+
+       jsr sbr_1
+
+       ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+       iload 1
+       invokestatic test_verify_fail_jsr_ret_type/checkI(I)V
+
+       return
+       
+sbr_1:
+       pop
+       ldc "string"
+       astore 2
+       ret 2
+       ; ERROR: VerifyError.*RET with non-returnAddress
+
+.end method
diff --git a/tests/regression/jasmin/test_verify_ok_jsr.j b/tests/regression/jasmin/test_verify_ok_jsr.j
new file mode 100644 (file)
index 0000000..b6bc913
--- /dev/null
@@ -0,0 +1,55 @@
+.class public test_verify_ok_jsr
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+   aload_0
+   invokenonvirtual java/lang/Object/<init>()V
+   return
+.end method
+
+; ======================================================================
+
+.method public static checkI(I)V
+       .limit locals 1
+       .limit stack 10
+       getstatic java/lang/System/out Ljava/io/PrintStream;
+       iload_0
+       invokevirtual java/io/PrintStream/println(I)V
+       return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+       .limit stack 2
+       .limit locals 3
+
+       ldc 35
+       istore 1
+
+       aload 0
+       ifnull force_basic_block_boundary
+
+       ; --------------------------------------------------
+
+       jsr sbr_1
+
+       ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+       iload 1
+       invokestatic test_verify_ok_jsr/checkI(I)V
+       ; OUTPUT: 777
+
+       return
+       
+sbr_1:
+       astore 2
+       ldc 777
+       istore 1
+       ret 2
+
+.end method
diff --git a/tests/regression/jasmin/test_verify_ok_jsr_multiple_blocks.j b/tests/regression/jasmin/test_verify_ok_jsr_multiple_blocks.j
new file mode 100644 (file)
index 0000000..0485187
--- /dev/null
@@ -0,0 +1,72 @@
+.class public test_verify_ok_jsr_multiple_blocks
+.super java/lang/Object
+
+; ======================================================================
+
+.method public <init>()V
+   aload_0
+   invokenonvirtual java/lang/Object/<init>()V
+   return
+.end method
+
+; ======================================================================
+
+.method public static checkI(I)V
+       .limit locals 1
+       .limit stack 10
+       getstatic java/lang/System/out Ljava/io/PrintStream;
+       iload_0
+       invokevirtual java/io/PrintStream/println(I)V
+       return
+.end method
+
+; ======================================================================
+
+.method public static main([Ljava/lang/String;)V
+       .limit stack 2
+       .limit locals 3
+
+       ldc 35
+       istore 1
+
+       aload 0
+       ifnull force_basic_block_boundary
+
+       ; --------------------------------------------------
+
+       jsr sbr_1
+       iload 1
+       invokestatic test_verify_ok_jsr_multiple_blocks/checkI(I)V
+       ; OUTPUT: 888
+
+       ldc -4
+       istore 1
+       jsr sbr_1
+       iload 1
+       invokestatic test_verify_ok_jsr_multiple_blocks/checkI(I)V
+       ; OUTPUT: 777
+
+       ; --------------------------------------------------
+
+force_basic_block_boundary:
+
+
+       return
+       
+sbr_1:
+       astore 2
+
+       iload 1
+       ifge sbr_1_ge
+
+       ldc 777
+       goto sbr_1_join
+
+sbr_1_ge:
+       ldc 888
+
+sbr_1_join:
+       istore 1
+       ret 2
+
+.end method