remove unportable system(rm
[catagits/Test-EOL.git] / t / 12-fail.t
CommitLineData
a83ae797 1use strict;
2
3use Test::More qw(no_plan);
4
5use File::Temp qw( tempdir tempfile );
6
7my $perl = $^X || 'perl';
8my $inc = join(' -I ', @INC) || '';
9$inc = "-I $inc" if $inc;
10
11{
12 my $dir = make_bad_file_1();
13 my (undef, $outfile) = tempfile();
14 ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` );
15 local $/ = undef;
16 open my $fh, '<', $outfile or die $!;
17 my $content = <$fh>;
02016826 18 like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line 4/m, 'windows EOL found in tmp file 1' );
19 unlink $outfile;
a83ae797 20}
a83ae797 21{
22 my $dir = make_bad_file_2();
23 my (undef, $outfile) = tempfile();
24 ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` );
25 open my $fh, '<', $outfile or die $!;
26 local $/ = undef;
27 my $content = <$fh>;
02016826 28 like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file2 ' );
a83ae797 29 unlink $outfile;
a83ae797 30}
a83ae797 31{
32 my ($dir, $file) = make_bad_file_3();
33 my (undef, $outfile) = tempfile();
34 ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$file' )" 2>&1 > $outfile` );
35 open my $fh, '<', $outfile or die $!;
36 local $/ = undef;
37 my $content = <$fh>;
02016826 38 like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file 3' );
a83ae797 39 unlink $outfile;
a83ae797 40}
41
91613276 42{
43 my $dir = make_bad_file_4();
44 my (undef, $outfile) = tempfile();
45 ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok({trailing_whitespace => 1}, '$dir' )" 2>&1 > $outfile` );
46 open my $fh, '<', $outfile or die $!;
47 local $/ = undef;
48 my $content = <$fh>;
49 like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file 4' );
50 unlink $outfile;
91613276 51}
52
a83ae797 53sub make_bad_file_1 {
ece2d635 54 my $tmpdir = tempdir( CLEANUP => 1 );
a83ae797 55 my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
56 print $fh <<"DUMMY";
57#!perl
58
59sub main {
60 print "Hello!\r\n";
91613276 61}
a83ae797 62DUMMY
63 return $tmpdir;
64}
65
66sub make_bad_file_2 {
ece2d635 67 my $tmpdir = tempdir( CLEANUP => 1 );
a83ae797 68 my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
69 print $fh <<"DUMMY";
70#!perl
71
72=pod
73
74=head1 NAME
75
76test.pL - A test script
02016826 77\r\r\r\r\r\r\r\r
a83ae797 78=cut
79
80sub main {
81 print "Hello!\n";
82}
83DUMMY
84 return $tmpdir;
85}
86
87sub make_bad_file_3 {
ece2d635 88 my $tmpdir = tempdir( CLEANUP => 1 );
a83ae797 89 my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pm' );
90 print $fh <<"DUMMY";
91use strict;\r
92\r
93package My::Test;\r
94\r
95sub new {\r
96 my (\$class) = @_;\r
97 my \$self = bless { }, \$class;\r
98 return \$self;\r
02016826 99}\r\r\r\r
100
a83ae797 101\r
1021;\r
103DUMMY
104 close $fh;
105 return ($tmpdir, $filename);
106}
107
91613276 108sub make_bad_file_4 {
ece2d635 109 my $tmpdir = tempdir( CLEANUP => 1 );
91613276 110 my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
111 print $fh <<"DUMMY";
112#!perl
113
114=pod
115
116=head1 NAME
117
118test.pL - A test script
119
120=cut
121
122sub main {
123DUMMY
124
125print $fh qq{ print "Hello!\n"; \n}; # <-- whitespace
126print $fh '}';
127
128 return $tmpdir;
129}
130