# New Ticket Created by Leopold Toetsch # Please include the string: [perl #17470] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=17470 >
This patch adds a test case for restarting the interpreter. To get this running, patch includes 2 bugfixes too. - core.ops print to file was broken - Test.pm didn't honor TEST_PROG_ARGS $ perl6 t/harness -P t/op/interp.t $ perl6 t/harness -j t/op/interp.t $ make test TEST_PROG_ARGS=-j now work as expected. Please apply, leo PS: -P and -j on platforms that support it, could be added to testruns on tinderboxen. -- attachment 1 ------------------------------------------------------ url: http://rt.perl.org/rt2/attach/38209/31054/e52f0b/interp-restart-test.patch
--- parrot/core.ops Mon Sep 9 11:42:19 2002 +++ parrot-leo/core.ops Sat Sep 21 13:57:19 2002 @@ -314,7 +314,7 @@ default: file = OPCODE_T2PTR(FILE *, $1); } if (s && string_length(s)) { - fwrite(s->strstart, s->strlen, 1, stdout); + fwrite(s->strstart, s->strlen, 1, file); } goto NEXT(); } @@ -333,7 +333,7 @@ default: file = OPCODE_T2PTR(FILE *, $1); } if (s) { - fwrite(s->strstart, s->strlen, 1, stdout); + fwrite(s->strstart, s->strlen, 1, file); } goto NEXT(); } --- parrot/t/op/interp.t Tue Jan 29 03:32:17 2002 +++ parrot-leo/t/op/interp.t Sat Sep 21 14:37:52 2002 @@ -1,6 +1,6 @@ #! perl -w -use Parrot::Test tests => 1; +use Parrot::Test tests => 2; output_is(<<'CODE', <<'OUTPUT', "runinterp"); newinterp P0, 0 @@ -16,6 +16,24 @@ calling In 2 ending +OUTPUT + +output_like(<<'CODE', <<'OUTPUT', "restart trace"); + print 2, "ok 1\n" + set I0, 1 + trace I0 + print 2, "ok 2\n" + dec I0 + trace I0 + print 2, "ok 3\n" + end +CODE +/^ok\s1\n +(?:PC=8.*)?\n +ok\s2\n +(?:PC=11.*)?\n +(?:PC=13.*)?\n +ok\s3\n$/x OUTPUT 1; --- parrot/lib/Parrot/Test.pm Mon Sep 16 09:22:50 2002 +++ parrot-leo/lib/Parrot/Test.pm Sat Sep 21 14:37:11 2002 @@ -114,7 +114,7 @@ my $by_f = per_test('.pbc',$count); my $out_f = per_test('.out',$count); - $TEST_PROG_ARGS = "" unless defined $TEST_PROG_ARGS; + $TEST_PROG_ARGS = $ENV{TEST_PROG_ARGS} || ''; _run_command( "${directory}$PConfig{test_prog} ${TEST_PROG_ARGS} $by_f", 'STDOUT' => $out_f, 'STDERR' => $out_f); my $prog_output;