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