X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F12-fail.t;h=eef773be03bc9c463ed13e0c80e41e8f12593068;hb=f17f4176809cf543fb1d04b24d83f9af10597b3b;hp=41a32adb820681962eedc1a0efa8d19182a44830;hpb=02016826502935c7dda63c44b0bfc7e87dfa3996;p=catagits%2FTest-EOL.git diff --git a/t/12-fail.t b/t/12-fail.t index 41a32ad..eef773b 100644 --- a/t/12-fail.t +++ b/t/12-fail.t @@ -3,12 +3,20 @@ use strict; use Test::More qw(no_plan); use File::Temp qw( tempdir tempfile ); - my $perl = $^X || 'perl'; -my $inc = join(' -I ', @INC) || ''; +my $inc = join(' -I ', map { qq{"$_"} } @INC) || ''; $inc = "-I $inc" if $inc; { + my ( $dir, $filename ) = make_raw_badfile(); + local $/ = undef; + open my $fh, '<', $filename or die $!; + binmode( $fh, ':raw' ); + my $content = <$fh>; + is( $content, ascii_string(), 'Data written to file is there when we look for it later' ); + +} +{ my $dir = make_bad_file_1(); my (undef, $outfile) = tempfile(); ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` ); @@ -17,7 +25,6 @@ $inc = "-I $inc" if $inc; my $content = <$fh>; like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line 4/m, 'windows EOL found in tmp file 1' ); unlink $outfile; - system("rm -rf $dir"); } { my $dir = make_bad_file_2(); @@ -28,7 +35,6 @@ $inc = "-I $inc" if $inc; my $content = <$fh>; like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file2 ' ); unlink $outfile; - system("rm -rf $dir"); } { my ($dir, $file) = make_bad_file_3(); @@ -39,25 +45,54 @@ $inc = "-I $inc" if $inc; my $content = <$fh>; like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file 3' ); unlink $outfile; - system("rm -rf $dir"); } +{ + my $dir = make_bad_file_4(); + my (undef, $outfile) = tempfile(); + ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok({trailing_whitespace => 1}, '$dir' )" 2>&1 > $outfile` ); + open my $fh, '<', $outfile or die $!; + local $/ = undef; + my $content = <$fh>; + like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file 4' ); + unlink $outfile; +} + +sub ascii_string { + my $o = ""; + return $o x 3; +} + +sub make_raw_badfile { + my $tmpdir = tempdir( CLEANUP => 1 ); + my ( $fh, $filename ) = tempfile( DIR => $tmpdir, SUFFIX => '.tXt' ); + binmode $fh, ':raw:utf8'; + print $fh ascii_string(); + close $fh; + return ( $tmpdir, $filename ); +} + + sub make_bad_file_1 { - my $tmpdir = tempdir(); + my $tmpdir = tempdir( CLEANUP => 1 ); my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' ); - print $fh <<"DUMMY"; + binmode $fh, ':raw:utf8'; + my $str = <<"DUMMY"; #!perl sub main { print "Hello!\r\n"; -} +} DUMMY + print $fh $str; + return $tmpdir; } sub make_bad_file_2 { - my $tmpdir = tempdir(); + my $tmpdir = tempdir( CLEANUP => 1 ); my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' ); + binmode $fh, ':raw:utf8'; print $fh <<"DUMMY"; #!perl @@ -77,8 +112,9 @@ DUMMY } sub make_bad_file_3 { - my $tmpdir = tempdir(); + my $tmpdir = tempdir( CLEANUP => 1 ); my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pm' ); + binmode $fh, ':raw:utf8'; print $fh <<"DUMMY"; use strict; @@ -97,3 +133,27 @@ DUMMY return ($tmpdir, $filename); } +sub make_bad_file_4 { + my $tmpdir = tempdir( CLEANUP => 1 ); + my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' ); + binmode $fh, ':raw:utf8'; + print $fh <<"DUMMY"; +#!perl + +=pod + +=head1 NAME + +test.pL - A test script + +=cut + +sub main { +DUMMY + +print $fh qq{ print "Hello!\n"; \n}; # <-- whitespace +print $fh '}'; + + return $tmpdir; +} +