# New Ticket Created by Jens Rieks # Please include the string: [perl #27590] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=27590 >
Hi, the following patch adds 4 more tests to t/pmc/sub.t One of the new tests ('load_bytecode @LOAD second sub - imc') is currently failing. (The patch also removes a redundant assignment of $temp) jens
Index: t/pmc/sub.t =================================================================== RCS file: /cvs/public/parrot/t/pmc/sub.t,v retrieving revision 1.39 diff -u -w -r1.39 sub.t --- t/pmc/sub.t 8 Mar 2004 00:20:09 -0000 1.39 +++ t/pmc/sub.t 11 Mar 2004 19:11:23 -0000 @@ -17,7 +17,7 @@ =cut -use Parrot::Test tests => 66; +use Parrot::Test tests => 70; use Test::More; use Parrot::Config; @@ -769,7 +769,6 @@ ok OUT -$temp = "temp.pasm"; open S, ">$temp" or die "Can't write $temp"; print S <<'EOF'; .pcc_sub @LOAD _sub1: @@ -790,6 +789,28 @@ back OUTPUT +open S, ">$temp" or die "Can't write $temp"; +print S <<'EOF'; + .pcc_sub _error: + print "error\n" + .pcc_sub @LOAD _sub1: + print "in sub1\n" + invoke P1 +EOF +close S; + +output_is(<<'CODE', <<'OUTPUT', 'load_bytecode @LOAD second sub'); +.pcc_sub _main: + print "main\n" + load_bytecode "temp.pasm" + print "back\n" + end +CODE +main +in sub1 +back +OUTPUT + system(".$PConfig{slash}parrot$PConfig{exe} -o temp.pbc $temp"); output_is(<<'CODE', <<'OUTPUT', 'load_bytecode @LOAD in pbc'); @@ -1051,3 +1072,74 @@ unlink($temp, 'temp.pbc'); +$temp = "temp.imc"; +open S, ">$temp" or die "Can't write $temp"; +print S <<'EOF'; +.emit + .pcc_sub @LOAD _sub1: + print "in sub1\n" + invoke P1 +.eom +EOF +close S; + +output_is(<<'CODE', <<'OUTPUT', 'load_bytecode @LOAD first sub - imc'); +.pcc_sub _main: + print "main\n" + load_bytecode "temp.imc" + print "back\n" + end +CODE +main +in sub1 +back +OUTPUT + +open S, ">$temp" or die "Can't write $temp"; +print S <<'EOF'; +.emit + .pcc_sub _foo: + print "error\n" + .pcc_sub @LOAD _sub1: + print "in sub1\n" + invoke P1 +.eom +EOF +close S; + +output_is(<<'CODE', <<'OUTPUT', 'load_bytecode @LOAD second sub - imc'); +.pcc_sub _main: + print "main\n" + load_bytecode "temp.imc" + print "back\n" + end +CODE +main +in sub1 +back +OUTPUT + +open S, ">$temp" or die "Can't write $temp"; +print S <<'EOF'; +.emit + .pcc_sub _foo: + print "error\n" + .pcc_sub _sub1: + print "in sub1\n" + invoke P1 +.eom +EOF +close S; + +output_is(<<'CODE', <<'OUTPUT', 'load_bytecode no @LOAD - imc'); +.pcc_sub _main: + print "main\n" + load_bytecode "temp.imc" + print "back\n" + end +CODE +main +back +OUTPUT + +unlink($temp);