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