Enclosed test checks that if Px, ...
works with PerlString PMCs; these should be false if they are "", 0, or are undefined, and true in every other case. Simon --- t/op/pmc_perlstring.t.old Sun Jan 13 12:30:21 2002 +++ t/op/pmc_perlstring.t Sun Jan 13 13:15:13 2002 @@ -1,6 +1,6 @@ #! perl -w -use Parrot::Test tests => 4; +use Parrot::Test tests => 5; output_is(<<CODE, <<OUTPUT, "ensure that concat ppp copies strings"); new P0, PerlString @@ -97,4 +97,56 @@ xxxxxxxxxxxx OUTPUT -1; \ No newline at end of file +output_is(<<CODE, <<OUTPUT, "if(PerlString)"); + new P0, PerlString + set S0, "True" + set P0, S0 + if P0, TRUE + print "false" + branch NEXT +TRUE: print "true" +NEXT: print "\\n" + + new P1, PerlString + set S1, "" + set P1, S1 + if P1, TRUE2 + print "false" + branch NEXT2 +TRUE2: print "true" +NEXT2: print "\\n" + + new P2, PerlString + set S2, "0" + set P2, S2 + if P2, TRUE3 + print "false" + branch NEXT3 +TRUE3: print "true" +NEXT3: print "\\n" + + new P3, PerlString + set S3, "0123" + set P3, S3 + if P3, TRUE4 + print "false" + branch NEXT4 +TRUE4: print "true" +NEXT4: print "\\n" + + new P4, PerlString + if P4, TRUE5 + print "false" + branch NEXT5 +TRUE5: print "true" +NEXT5: print "\\n" + end +CODE +true +false +false +true +false +OUTPUT + +1;