cvsuser 03/06/12 00:51:26
Modified: languages/imcc/t/syn bsr.t
Log:
added 2 tests for nested subs
Revision Changes Path
1.8 +53 -1 parrot/languages/imcc/t/syn/bsr.t
Index: bsr.t
===================================================================
RCS file: /cvs/public/parrot/languages/imcc/t/syn/bsr.t,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -r1.7 -r1.8
--- bsr.t 5 May 2003 19:34:12 -0000 1.7
+++ bsr.t 12 Jun 2003 07:51:26 -0000 1.8
@@ -1,6 +1,6 @@
#!perl
use strict;
-use TestCompiler tests => 10;
+use TestCompiler tests => 12;
##############################
# this tests register allocation/preserving of local bsr calls
@@ -345,3 +345,55 @@
END {
unlink $file;
}
+##############################
+# nested subs
+# NOTE: global labels necessary
+#
+output_is(<<'CODE', <<'OUT', "nested subs");
+.sub _main
+ .sub _dummy
+ call _inner1
+ call _inner2
+ end
+ .end
+ .sub _inner1
+ print "Inner1\n"
+ ret
+ .end
+ .sub _inner2
+ print "Inner2\n"
+ ret
+ .end
+.end
+CODE
+Inner1
+Inner2
+OUT
+
+output_is(<<'CODE', <<'OUT', "nested subs 2");
+.sub __main
+ call _main
+ end
+.end
+.sub _main
+ print "main\n"
+ call _inner1
+ call _inner2
+ .sub _inner1
+ print "Inner1\n"
+ ret
+ .end
+ .sub _inner2
+ print "Inner2\n"
+ ret
+ .end
+ print "back\n"
+ ret
+.end
+CODE
+main
+Inner1
+Inner2
+back
+OUT
+