From 6a4ad6add6856e87d5efc5b7266b147c8e68ba8f Mon Sep 17 00:00:00 2001 From: Brian Fraser Date: Sun, 1 Sep 2013 09:41:20 -0300 Subject: 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. --- t/base/lex.t | 121 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 59 insertions(+), 62 deletions(-) (limited to 't/base') 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/(?:)/<{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 ...\n"; +print "ok $test - q ...\n"; $test++; qq # comment "b"# eq 'b' or print "not "; -print "ok 87 - qq ...\n"; +print "ok $test - qq ...\n"; $test++; qw # comment "b"# [0] eq 'b' or print "not "; -print "ok 88 - qw ...\n"; +print "ok $test - qw ...\n"; $test++; "b" =~ m # comment "b"# or print "not "; -print "ok 89 - m ...\n"; +print "ok $test - m ...\n"; $test++; qr # comment "b"# eq qr/b/ or print "not "; -print "ok 90 - qr ...\n"; +print "ok $test - qr ...\n"; $test++; $_ = "a"; s # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 91 - s ...\n"; +print "ok $test - s ...\n"; $test++; $_ = "a"; tr # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 92 - tr ...\n"; +print "ok $test - tr ...\n"; $test++; $_ = "a"; y # comment [a] # [b] # ; print "not " unless $_ eq 'b'; -print "ok 93 - y ...\n"; +print "ok $test - y ...\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++; -- cgit v1.2.1