Commit | Line | Data |
a83ae797 |
1 | use strict; |
2 | |
3 | use Test::More qw(no_plan); |
4 | |
5 | use File::Temp qw( tempdir tempfile ); |
6 | |
7 | my $perl = $^X || 'perl'; |
8 | my $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 |
53 | sub 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 | |
59 | sub main { |
60 | print "Hello!\r\n"; |
91613276 |
61 | } |
a83ae797 |
62 | DUMMY |
63 | return $tmpdir; |
64 | } |
65 | |
66 | sub 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 | |
76 | test.pL - A test script |
02016826 |
77 | \r\r\r\r\r\r\r\r |
a83ae797 |
78 | =cut |
79 | |
80 | sub main { |
81 | print "Hello!\n"; |
82 | } |
83 | DUMMY |
84 | return $tmpdir; |
85 | } |
86 | |
87 | sub 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"; |
91 | use strict;\r |
92 | \r |
93 | package My::Test;\r |
94 | \r |
95 | sub 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 |
102 | 1;\r |
103 | DUMMY |
104 | close $fh; |
105 | return ($tmpdir, $filename); |
106 | } |
107 | |
91613276 |
108 | sub 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 | |
118 | test.pL - A test script |
119 | |
120 | =cut |
121 | |
122 | sub main { |
123 | DUMMY |
124 | |
125 | print $fh qq{ print "Hello!\n"; \n}; # <-- whitespace |
126 | print $fh '}'; |
127 | |
128 | return $tmpdir; |
129 | } |
130 | |