Commit | Line | Data |
84f92d23 |
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 | # Test to check that bad Pod doesn't break subsequent files. Here the test is that |
12 | # both files should be detected as containing tabs, when tested one after the |
13 | # other. |
14 | |
15 | { |
16 | my $dir = tempdir(); |
17 | make_bad_pod_file($dir); |
18 | make_bad_tab_file($dir); |
19 | my (undef, $outfile) = tempfile(); |
20 | ok( `$perl $inc -MTest::NoTabs -e "all_perl_files_ok( '$dir' )" 2>&1 > $outfile` ); |
21 | local $/ = undef; |
22 | open my $fh, '<', $outfile or die $!; |
23 | my $content = <$fh>; |
24 | |
25 | # Filter the ok 1 line as we really don't care - it doesn't contain a tab anyway |
26 | $content =~ s{^ok 1[^\n]*\n}{}s; |
27 | |
28 | like( $content, qr/^not ok 2 - No tabs in '[^']*' on line 4/m, 'tabs found in tmp file 2' ); |
29 | unlink $outfile; |
30 | system("rm -rf $dir"); |
31 | } |
32 | |
33 | sub make_bad_pod_file { |
34 | my ($tmpdir) = @_; |
35 | |
36 | # First file, template begins "a" |
37 | my ($fh, $filename) = tempfile( "a_badpod_XXXXXX", DIR => $tmpdir, SUFFIX => '.pL' ); |
38 | print $fh <<"DUMMY"; |
39 | #!perl |
40 | |
41 | =head1 |
42 | |
43 | Some unterminated Pod documentation follows, otherwise the file is OK |
44 | |
45 | DUMMY |
46 | close($fh); |
47 | return $filename; |
48 | } |
49 | sub make_bad_tab_file { |
50 | my ($tmpdir) = @_; |
51 | |
52 | # Second file, template begins "b" |
53 | my ($fh, $filename) = tempfile( "b_badtab_podtest_XXXXXX", DIR => $tmpdir, SUFFIX => '.pL' ); |
54 | print $fh <<"DUMMY"; |
55 | #!perl |
56 | |
57 | sub main { |
58 | \tprint "Hello!\n"; |
59 | } |
60 | |
61 | DUMMY |
62 | close($fh); |
63 | } |
64 | |