X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2Fb.t;h=2be4d10bf8b6811cedc3313b6da1d31ce246833a;hb=22d4bb9ccb8701e68f9243547d7e3a3c55f70908;hp=96ba1264a67d932614304f68c14872c5c3d2f4cd;hpb=4b19af017623bfa3bb72bb164598a517f586e0d3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/lib/b.t b/t/lib/b.t index 96ba126..2be4d10 100755 --- a/t/lib/b.t +++ b/t/lib/b.t @@ -2,7 +2,7 @@ BEGIN { chdir 't' if -d 't'; - unshift @INC, '../lib'; + @INC = '../lib'; } $| = 1; @@ -10,7 +10,7 @@ use warnings; use strict; use Config; -print "1..10\n"; +print "1..13\n"; my $test = 1; @@ -30,16 +30,32 @@ ok; print "not " if "{\n \$test /= 2 if ++\$test;\n}" ne $deparse->coderef2text(sub {++$test and $test/=2;}); ok; +{ +my $a = <<'EOF'; +{ + $test = sub : lvalue { + 1; + } + ; +} +EOF +chomp $a; +print "not " if $deparse->coderef2text(sub{$test = sub : lvalue { 1 }}) ne $a; +ok; + +$a =~ s/lvalue/method/; +print "not " if $deparse->coderef2text(sub{$test = sub : method { 1 }}) ne $a; +ok; + +$a =~ s/method/locked method/; +print "not " if $deparse->coderef2text(sub{$test = sub : method locked { 1 }}) + ne $a; +ok; +} my $a; my $Is_VMS = $^O eq 'VMS'; -if ($Is_VMS) { - $^X = "MCR $^X"; - $a = `$^X "-I../lib" "-MO=Deparse" -anle "1"`; -} -else { - $a = `$^X -I../lib -MO=Deparse -anle 1 2>&1`; -} +$a = `$^X "-I../lib" "-MO=Deparse" -anle 1 2>&1`; $a =~ s/-e syntax OK\n//g; $b = <<'EOF'; @@ -57,33 +73,18 @@ print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b; ok; #6 -if ($Is_VMS) { - $a = `$^X "-I../lib" "-MO=Debug" -e "1"`; -} -else { - $a = `$^X -I../lib -MO=Debug -e 1 2>&1`; -} +$a = `$^X "-I../lib" "-MO=Debug" -e 1 2>&1`; print "not " unless $a =~ /\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s; ok; #7 -if ($Is_VMS) { - $a = `$^X "-I../lib" "-MO=Terse" -e "1"`; -} -else { - $a = `$^X -I../lib -MO=Terse -e 1 2>&1`; -} +$a = `$^X "-I../lib" "-MO=Terse" -e 1 2>&1`; print "not " unless $a =~ /\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s; ok; -if ($Is_VMS) { - $a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/"`; -} -else { - $a = `$^X -I../lib -MO=Terse -ane "s/foo/bar/" 2>&1`; -} +$a = `$^X "-I../lib" "-MO=Terse" -ane "s/foo/bar/" 2>&1`; $a =~ s/\(0x[^)]+\)//g; $a =~ s/\[[^\]]+\]//g; $a =~ s/-e syntax OK//; @@ -92,26 +93,30 @@ $a =~ s/\s+/ /g; $a =~ s/\b(s|foo|bar|ullsv)\b\s?//g; $a =~ s/^\s+//; $a =~ s/\s+$//; -$b=<&1`; +if ($is_thread) { + print "# use5005threads: test $test skipped\n"; +} else { + $a = `$^X "-I../lib" "-MO=Showlex" -e "my %one" 2>&1`; + print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s; } -print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s; ok;