Commit | Line | Data |
dc7a3a08 |
1 | #!perl |
4c401dbc |
2 | use strict; |
3 | use warnings FATAL => 'all'; |
4 | use Test::More qw(no_plan); |
dc7a3a08 |
5 | |
6 | test_trace("t/mod/a.pm" => ("t/mod/b.pm", "t/mod/c.pm")); |
7 | test_trace("t/mod/b.pm" => ("t/mod/c.pm")); |
8 | test_trace("t/mod/c.pm" => ()); |
50e03dc3 |
9 | test_trace("t/mod/d.pl" => ("t/mod/d.pm")); |
dc7a3a08 |
10 | |
11 | # Attempts to conditionally load a module that isn't present |
12 | test_trace("t/mod/cond.pm" => ()); |
13 | |
dc7a3a08 |
14 | sub test_trace { |
15 | my($file, @loaded) = @_; |
16 | local $Test::Builder::Level = $Test::Builder::Level + 1; |
17 | |
0c66b552 |
18 | unlink "fatpacker.trace"; |
dc7a3a08 |
19 | system($^X, "-Mblib", "-MApp::FatPacker::Trace", $file); |
20 | |
21 | open my $trace, "<", "fatpacker.trace"; |
73bca3c9 |
22 | my @traced = sort map { chomp; $_ } <$trace>; |
bedd77c6 |
23 | close $trace; |
dc7a3a08 |
24 | |
bd483d71 |
25 | is_deeply \@traced, \@loaded, "All expected modules loaded for $file"; |
dc7a3a08 |
26 | unlink "fatpacker.trace"; |
27 | } |
28 | |
020d9b76 |
29 | test_trace("t/mod/a.pm" => ("t/mod/b.pm", "t/mod/c.pm")); |
30 | |
31 | sub test_trace_stderr { |
32 | my($file, @loaded) = @_; |
33 | local $Test::Builder::Level = $Test::Builder::Level + 1; |
34 | |
35 | system(join(' ', |
36 | $^X, "-Mblib", "-MApp::FatPacker::Trace", '--to-stderr', $file, |
37 | '>', 'fatpacker.trace', '2>&1')); |
38 | |
39 | open my $trace, "<", "fatpacker.trace"; |
40 | while(<$trace>) { |
41 | chomp; |
42 | my $load = $_; |
43 | @loaded = grep { $load ne $_ } @loaded; |
44 | } |
45 | |
46 | ok !@loaded, "All expected modules loaded for $file"; |
47 | unlink "fatpacker.trace"; |
48 | } |
49 | |