summaryrefslogtreecommitdiff
path: root/testsuite/java.opstack
diff options
context:
space:
mode:
authorBrian Jones <cbj@gnu.org>1998-06-20 22:19:43 +0000
committerBrian Jones <cbj@gnu.org>1998-06-20 22:19:43 +0000
commit9b63dbdad4eb831024095ce0b174885d73ab9c50 (patch)
treea83e002175c68d7792c5a5d6861ddde249647f1a /testsuite/java.opstack
parente903e6b200bf23405534d442cfd0f85e4208479f (diff)
downloadclasspath-9b63dbdad4eb831024095ce0b174885d73ab9c50.tar.gz
initial checkin
Diffstat (limited to 'testsuite/java.opstack')
-rw-r--r--testsuite/java.opstack/LeftBehind.j64
-rw-r--r--testsuite/java.opstack/execute.exp7
2 files changed, 71 insertions, 0 deletions
diff --git a/testsuite/java.opstack/LeftBehind.j b/testsuite/java.opstack/LeftBehind.j
new file mode 100644
index 000000000..30a82c4b3
--- /dev/null
+++ b/testsuite/java.opstack/LeftBehind.j
@@ -0,0 +1,64 @@
+;
+; LeftBehind.j - contrived test to see how japhar reacts to
+; stuff left on the stack after a method returns.
+.class public LeftBehind
+.super java/lang/Object
+
+.method public static test()I
+ .limit stack 10 ; up to 10 items can be pushed
+
+ ; push some ints.
+ bipush 1
+ bipush 2
+ bipush 3
+ bipush 4
+ bipush 5
+ ; then push some strings.
+ ldc "6th item"
+ ldc "7th item"
+
+ bipush 5
+
+ ; now push our return value
+ bipush 9
+
+ ireturn
+.end method
+
+.method public static main([Ljava/lang/String;)V
+ .limit stack 3 ; up to three items can be pushed
+
+ ; we push a value onto the stack, and
+ ; then check to see that only one item (the return
+ ; value from the test() method) is on the stack on top
+ ; of it.
+ bipush 8
+
+ invokestatic LeftBehind/test()I
+
+ pop ; get rid of the return value
+ bipush 8
+ isub
+
+ ifeq pass
+
+fail:
+ ; push System.out onto the stack
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+
+ ldc "FAILED:"
+
+ invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
+ bipush 0
+ invokestatic java/lang/System/exit(I)V
+
+pass:
+ ; push System.out onto the stack
+ getstatic java/lang/System/out Ljava/io/PrintStream;
+
+ ldc "PASSED:"
+
+ invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
+ bipush 0
+ invokestatic java/lang/System/exit(I)V
+.end method
diff --git a/testsuite/java.opstack/execute.exp b/testsuite/java.opstack/execute.exp
new file mode 100644
index 000000000..1092485c0
--- /dev/null
+++ b/testsuite/java.opstack/execute.exp
@@ -0,0 +1,7 @@
+#
+# Author: Petter Reinholdtsen <pere@td.org.uit.no>
+
+# Load support procs
+load_lib java.exp
+
+test-java-source