diff options
author | Brian Fraser <fraserbn@gmail.com> | 2013-09-01 09:41:20 -0300 |
---|---|---|
committer | Brian Fraser <fraserbn@gmail.com> | 2013-09-18 05:23:31 -0300 |
commit | 6a4ad6add6856e87d5efc5b7266b147c8e68ba8f (patch) | |
tree | c84ace91ffd3f6cbe7f48f8036104f9b2f78706f /t/base | |
parent | 918a99855942c0fd537bfb53db879145da60b0a9 (diff) | |
download | perl-6a4ad6add6856e87d5efc5b7266b147c8e68ba8f.tar.gz |
Reworked t/base/lex.t to use less hardcoded test numbers.
The later two thirds of the file now consistently use $test, which
should make future tweaks to the file simpler.
Diffstat (limited to 't/base')
-rw-r--r-- | t/base/lex.t | 121 |
1 files changed, 59 insertions, 62 deletions
diff --git a/t/base/lex.t b/t/base/lex.t index 7821e763a3..828a1d576e 100644 --- a/t/base/lex.t +++ b/t/base/lex.t @@ -120,26 +120,28 @@ print $foo; # Tests for new extended control-character variables # MJD 19990227 +my $test = 31; + { my $CX = "\cX"; my $CXY ="\cXY"; $ {$CX} = 17; $ {$CXY} = 23; if ($ {^XY} != 23) { print "not " } - print "ok 31\n"; + print "ok $test\n"; $test++; # Does the syntax where we use the literal control character still work? if (eval "\$ {\cX}" != 17 or $@) { print "not " } - print "ok 32\n"; + print "ok $test\n"; $test++; eval "\$\cQ = 24"; # Literal control character if ($@ or ${"\cQ"} != 24) { print "not " } - print "ok 33\n"; + print "ok $test\n"; $test++; if ($^Q != 24) { print "not " } # Control character escape sequence - print "ok 34\n"; - + print "ok $test\n"; $test++; + # Does the old UNBRACED syntax still do what it used to? if ("$^XY" ne "17Y") { print "not " } - print "ok 35\n"; + print "ok $test\n"; $test++; sub XX () { 6 } $ {"\cQ\cXX"} = 119; @@ -147,9 +149,9 @@ print $foo; $N = 5; # The second caret here should be interpreted as an xor if (($^Q^XX) != 3) { print "not " } - print "ok 36\n"; + print "ok $test\n"; $test++; # if (($N ^ XX()) != 3) { print "not " } -# print "ok 32\n"; +# print "ok $test\n"; $test++; # These next two tests are trying to make sure that # $^FOO is always global; it doesn't make sense to 'my' it. @@ -157,12 +159,12 @@ print $foo; eval 'my $^X;'; print "not " unless index ($@, 'Can\'t use global $^X in "my"') > -1; - print "ok 37\n"; + print "ok $test\n"; $test++; # print "($@)\n" if $@; eval 'my $ {^XYZ};'; print "not " unless index ($@, 'Can\'t use global $^XYZ in "my"') > -1; - print "ok 38\n"; + print "ok $test\n"; $test++; # print "($@)\n" if $@; # Now let's make sure that caret variables are all forced into the main package. @@ -172,11 +174,11 @@ print $foo; $ {^M} = 'Someother 3'; package main; print "not " unless $^Q eq 'Someother'; - print "ok 39\n"; + print "ok $test\n"; $test++; print "not " unless $ {^Quixote} eq 'Someother 2'; - print "ok 40\n"; + print "ok $test\n"; $test++; print "not " unless $ {^M} eq 'Someother 3'; - print "ok 41\n"; + print "ok $test\n"; $test++; } @@ -190,8 +192,6 @@ sub T { print "ok $num\n"; } -my $test = 42; - { # line 42 "plink" local $_ = "not ok "; @@ -213,7 +213,6 @@ EOT # arrays now *always* interpolate into "..." strings. # 20000522 MJD (mjd@plover.com) { - my $test = 47; eval(q(">@nosuch<" eq "><")) || print "# $@", "not "; print "ok $test\n"; ++$test; @@ -257,7 +256,6 @@ my %str = ( xyz::bar => 1, ); -my $test = 52; print ((exists $str{foo} ? "" : "not ")."ok $test\n"); ++$test; print ((exists $str{bar} ? "" : "not ")."ok $test\n"); ++$test; print ((exists $str{xyz::bar} ? "" : "not ")."ok $test\n"); ++$test; @@ -272,108 +270,107 @@ $test++; # Is "[~" scanned correctly? @a = (1,2,3); print "not " unless($a[~~2] == 3); -print "ok 57\n"; +print "ok $test\n"; $test++; $_ = ""; -eval 's/(?:)/"${\q||}".<<\END/e; -ok 58 - heredoc after "" in s/// in eval +eval 's/(?:)/"ok $test" . "${\q||}".<<\END/e; + - heredoc after "" in s/// in eval END '; -print $_ || "not ok 58\n"; +print $_ || "not ok $test\n"; $test++; $_ = ""; -eval 's|(?:)|"${\<<\END}" -ok 59 - heredoc in "" in multiline s///e in eval +eval 's|(?:)|"ok $test" . "${\<<\END}" + - heredoc in "" in multiline s///e in eval END |e '; -print $_ || "not ok 59\n"; +print $_ || "not ok $test\n"; $test++; $_ = ""; eval "s/(?:)/<<foo/e #\0 -ok 60 - null on same line as heredoc in s/// in eval +ok $test - null on same line as heredoc in s/// in eval foo "; -print $_ || "not ok 60\n"; +print $_ || "not ok $test\n"; $test++; $_ = ""; eval ' s/(?:)/"${\<<END}"/e; -ok 61 - heredoc in "" in single-line s///e in eval +ok $test - heredoc in "" in single-line s///e in eval END '; -print $_ || "not ok 61\n"; +print $_ || "not ok $test\n"; $test++; $_ = ""; s|(?:)|"${\<<END}" -ok 62 - heredoc in "" in multiline s///e outside eval +ok $test - heredoc in "" in multiline s///e outside eval END |e; -print $_ || "not ok 62\n"; +print $_ || "not ok $test\n"; $test++; -$_ = "not ok 63 - s/// in s/// pattern\n"; +$_ = "not ok $test - s/// in s/// pattern\n"; s/${s|||;\""}not //; -print; +print; $test++; /(?{print <<END -ok 64 - here-doc in re-eval +ok $test - here-doc in re-eval END -})/; +})/; $test++; eval '/(?{print <<END -ok 65 - here-doc in re-eval in string eval +ok $test - here-doc in re-eval in string eval END -})/'; +})/'; $test++; -eval 'print qq ;ok 66 - eval ending with semicolon\n;' - or print "not ok 66 - eval ending with semicolon\n"; +eval 'print qq ;ok $test - eval ending with semicolon\n;' + or print "not ok $test - eval ending with semicolon\n"; $test++; print "not " unless qr/(?{<<END})/ eq '(?^:(?{<<END}))'; foo END -print "ok 67 - here-doc in single-line re-eval\n"; +print "ok $test - here-doc in single-line re-eval\n"; $test++; $_ = qr/(?{"${<<END}" foo END })/; print "not " unless /foo/; -print "ok 68 - here-doc in quotes in multiline re-eval\n"; +print "ok $test - here-doc in quotes in multiline re-eval\n"; $test++; eval 's//<<END/e if 0; $_ = "a END b"'; print "not " if $_ =~ /\n\n/; -print "ok 69 - eval 's//<<END/' does not leave extra newlines\n"; +print "ok $test - eval 's//<<END/' does not leave extra newlines\n"; $test++; $_ = a; eval "s/a/'b\0'#/e"; print 'not ' unless $_ eq "b\0"; -print "ok 70 - # after null in s/// repl\n"; +print "ok $test - # after null in s/// repl\n"; $test++; s//"#" . <<END/e; foo END -print "ok 71 - s//'#' . <<END/e\n"; +print "ok $test - s//'#' . <<END/e\n"; $test++; eval "s//3}->{3/e"; print "not " unless $@; -print "ok 72 - s//3}->{3/e\n"; +print "ok $test - s//3}->{3/e\n"; $test++; -$_ = "not ok 73"; +$_ = "not ok $test"; $x{3} = "not "; eval 's/${\%x}{3}//e'; -print "$_ - s//\${\\%x}{3}/e\n"; +print "$_ - s//\${\\%x}{3}/e\n"; $test++; eval 's/${foo#}//e'; print "not " unless $@; -print "ok 74 - s/\${foo#}//e\n"; +print "ok $test - s/\${foo#}//e\n"; $test++; eval 'warn ({$_ => 1} + 1) if 0'; print "not " if $@; -print "ok 75 - listop({$_ => 1} + 1)\n"; +print "ok $test - listop({$_ => 1} + 1)\n"; $test++; print "# $@" if $@; -$test = 76; for(qw< require goto last next redo dump >) { eval "sub { $_ foo << 2 }"; print "not " if $@; @@ -385,65 +382,65 @@ for(qw< require goto last next redo dump >) { my $counter = 0; eval 'v23: $counter++; goto v23 unless $counter == 2'; print "not " unless $counter == 2; -print "ok 82 - Use v[0-9]+ as a label\n"; +print "ok $test - Use v[0-9]+ as a label\n"; $test++; $counter = 0; eval 'v23 : $counter++; goto v23 unless $counter == 2'; print "not " unless $counter == 2; -print "ok 83 - Use v[0-9]+ as a label with space before colon\n"; +print "ok $test - Use v[0-9]+ as a label with space before colon\n"; $test++; my $output = ""; eval "package v10::foo; sub test2 { return 'v10::foo' } package v10; sub test { return v10::foo::test2(); } package main; \$output = v10::test(); "; print "not " unless $output eq 'v10::foo'; -print "ok 84 - call a function in package v10::foo\n"; +print "ok $test - call a function in package v10::foo\n"; $test++; print "not " unless (1?v65:"bar") eq 'A'; -print "ok 85 - colon detection after vstring does not break ? vstring :\n"; +print "ok $test - colon detection after vstring does not break ? vstring :\n"; $test++; # Test pyoq ops with comments before the first delim q # comment "b"# eq 'b' or print "not "; -print "ok 86 - q <comment> <newline> ...\n"; +print "ok $test - q <comment> <newline> ...\n"; $test++; qq # comment "b"# eq 'b' or print "not "; -print "ok 87 - qq <comment> <newline> ...\n"; +print "ok $test - qq <comment> <newline> ...\n"; $test++; qw # comment "b"# [0] eq 'b' or print "not "; -print "ok 88 - qw <comment> <newline> ...\n"; +print "ok $test - qw <comment> <newline> ...\n"; $test++; "b" =~ m # comment "b"# or print "not "; -print "ok 89 - m <comment> <newline> ...\n"; +print "ok $test - m <comment> <newline> ...\n"; $test++; qr # comment "b"# eq qr/b/ or print "not "; -print "ok 90 - qr <comment> <newline> ...\n"; +print "ok $test - qr <comment> <newline> ...\n"; $test++; $_ = "a"; s # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 91 - s <comment> <newline> ...\n"; +print "ok $test - s <comment> <newline> ...\n"; $test++; $_ = "a"; tr # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 92 - tr <comment> <newline> ...\n"; +print "ok $test - tr <comment> <newline> ...\n"; $test++; $_ = "a"; y # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 93 - y <comment> <newline> ...\n"; +print "ok $test - y <comment> <newline> ...\n"; $test++; print "not " unless (time =>) eq time=>; -print "ok 94 - => quotes keywords across lines\n"; +print "ok $test - => quotes keywords across lines\n"; $test++; |