41a32adb820681962eedc1a0efa8d19182a44830
[catagits/Test-EOL.git] / t / 12-fail.t
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>;
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;
20     system("rm -rf $dir");
21 }
22 {
23     my $dir = make_bad_file_2();
24     my (undef, $outfile) = tempfile();
25     ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` );
26     open my $fh, '<', $outfile or die $!;
27     local $/ = undef;
28     my $content = <$fh>;
29     like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file2 ' );
30     unlink $outfile;
31     system("rm -rf $dir");
32 }
33 {
34     my ($dir, $file) = make_bad_file_3();
35     my (undef, $outfile) = tempfile();
36     ok( `$perl $inc -MTest::EOL -e "all_perl_files_ok( '$file' )" 2>&1 > $outfile` );
37     open my $fh, '<', $outfile or die $!;
38     local $/ = undef;
39     my $content = <$fh>;
40     like( $content, qr/^not ok 1 - No windows line endings in '[^']*' on line \d+/m, 'windows EOL found in tmp file 3' );
41     unlink $outfile;
42     system("rm -rf $dir");
43 }
44
45 sub make_bad_file_1 {
46   my $tmpdir = tempdir();
47   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
48   print $fh <<"DUMMY";
49 #!perl
50
51 sub main {
52     print "Hello!\r\n";
53 }\r
54 DUMMY
55   return $tmpdir;
56 }
57
58 sub make_bad_file_2 {
59   my $tmpdir = tempdir();
60   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
61   print $fh <<"DUMMY";
62 #!perl
63
64 =pod
65
66 =head1 NAME
67
68 test.pL -       A test script
69 \r\r\r\r\r\r\r\r
70 =cut
71
72 sub main {
73     print "Hello!\n";
74 }
75 DUMMY
76   return $tmpdir;
77 }
78
79 sub make_bad_file_3 {
80   my $tmpdir = tempdir();
81   my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pm' );
82   print $fh <<"DUMMY";
83 use strict;\r
84 \r
85 package My::Test;\r
86 \r
87 sub new {\r
88     my (\$class) = @_;\r
89     my \$self = bless { }, \$class;\r
90     return \$self;\r
91 }\r\r\r\r
92
93 \r
94 1;\r
95 DUMMY
96   close $fh;
97   return ($tmpdir, $filename);
98 }
99