22
33# Formal unit tests for specific PPI::Token classes
44
5+ use lib ' t/lib' ;
56use strict;
67BEGIN {
78 no warnings ' once' ;
@@ -10,11 +11,11 @@ BEGIN {
1011 $PPI::Lexer::X_TOKENIZER ||= $ENV {X_TOKENIZER };
1112}
1213
13- # Execute the tests
1414use Test::More tests => 447;
1515use Test::NoWarnings;
1616use File::Spec::Functions ' :ALL' ;
17- use t::lib::PPI;
17+ use List::MoreUtils ();
18+ use PPI::Test::Run;
1819use PPI;
1920
2021
@@ -25,7 +26,7 @@ use PPI;
2526# Code/Dump Testing
2627# ntests = 2 + 12 * nfiles
2728
28- t::lib::PPI -> run_testdir( catdir( ' t' , ' data' , ' 07_token' ) );
29+ PPI::Test::Run -> run_testdir( catdir( ' t' , ' data' , ' 07_token' ) );
2930
3031
3132
@@ -49,7 +50,7 @@ SCOPE: {
4950 ' @::foo' => ' @main::foo' ,
5051 ' $foo::bar' => ' $foo::bar' ,
5152 ' $ foo\' bar' => ' $foo::bar' ,
52- );
53+ );
5354 while ( @symbols ) {
5455 my ($value , $canon ) = ( shift (@symbols ), shift (@symbols ) );
5556 my $Symbol = PPI::Token::Symbol-> new( $value );
@@ -155,10 +156,11 @@ foreach my $code ( '08', '09', '0778', '0779' ) {
155156 isa_ok($token , ' PPI::Token::Number::Octal' );
156157 is(" $token " , $code , " tokenize bad octal '$code '" );
157158 ok($token -> {_error } && $token -> {_error } =~ m / octal/ i ,
158- ' invalid octal number should trigger parse error' );
159+ ' invalid octal number should trigger parse error' );
159160 is($token -> literal, undef , " literal('$code ') is undef" );
160161}
161162
163+
162164BINARY: {
163165 my @tests = (
164166 # Good binary numbers
@@ -175,25 +177,26 @@ BINARY: {
175177 { code => ' 0b012' , error => 1, value => 0 },
176178 { code => ' 0B012' , error => 1, value => 0 },
177179 { code => ' 0B0121' , error => 1, value => 0 },
178- );
180+ );
179181 foreach my $test ( @tests ) {
180182 my $code = $test -> {code };
181183 my $T = PPI::Tokenizer-> new( \$code );
182184 my $token = $T -> get_token;
183185 isa_ok($token , ' PPI::Token::Number::Binary' );
184- if ( $test -> {error } ) {
185- ok($token -> {_error } && $token -> {_error } =~ m / binary/ i ,
186- ' invalid binary number should trigger parse error' );
187- is($token -> literal, undef , " literal('$code ') is undef" );
188- }
189- else {
190- ok(!$token -> {_error }, " no error for '$code '" );
191- is($token -> literal, $test -> {value }, " literal('$code ') is $test ->{value}" );
192- }
193- is($token -> content, $code , " parsed everything" );
186+ if ( $test -> {error } ) {
187+ ok($token -> {_error } && $token -> {_error } =~ m / binary/ i ,
188+ ' invalid binary number should trigger parse error' );
189+ is($token -> literal, undef , " literal('$code ') is undef" );
190+ }
191+ else {
192+ ok(!$token -> {_error }, " no error for '$code '" );
193+ is($token -> literal, $test -> {value }, " literal('$code ') is $test ->{value}" );
194+ }
195+ is($token -> content, $code , " parsed everything" );
194196 }
195197}
196198
199+
197200HEX: {
198201 my @tests = (
199202 # Good hex numbers--entire thing goes in the token
@@ -233,6 +236,6 @@ HEX: {
233236 isa_ok($token , ' PPI::Token::Number::Hex' );
234237 ok(!$token -> {_error }, " no error for '$code ' even on invalid digits" );
235238 is($token -> content, $test -> {parsed }, " correctly parsed everything expected" );
236- is($token -> literal, $test -> {value }, " literal('$code ') is $test ->{value}" );
239+ is($token -> literal, $test -> {value }, " literal('$code ') is $test ->{value}" );
237240 }
238241}
0 commit comments