summaryrefslogtreecommitdiff
path: root/t/base
diff options
context:
space:
mode:
authorBrian Fraser <fraserbn@gmail.com>2013-09-01 09:41:20 -0300
committerBrian Fraser <fraserbn@gmail.com>2013-09-18 05:23:31 -0300
commit6a4ad6add6856e87d5efc5b7266b147c8e68ba8f (patch)
treec84ace91ffd3f6cbe7f48f8036104f9b2f78706f /t/base
parent918a99855942c0fd537bfb53db879145da60b0a9 (diff)
downloadperl-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.t121
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++;