Commit | Line | Data |
4c401dbc |
1 | use strict; |
2 | use warnings FATAL => 'all'; |
3 | use Test::More qw(no_plan); |
dc7a3a08 |
4 | |
ecc8c5dc |
5 | test_trace("t/mod/ModuleA.pm" => ("ModuleB.pm", "ModuleC.pm")); |
6 | test_trace("t/mod/ModuleB.pm" => ("ModuleC.pm")); |
7 | test_trace("t/mod/ModuleC.pm" => ()); |
8 | test_trace("t/mod/ModuleD.pl" => ("ModuleD.pm")); |
dc7a3a08 |
9 | |
10 | # Attempts to conditionally load a module that isn't present |
ecc8c5dc |
11 | test_trace("t/mod/ModuleCond.pm" => ()); |
dc7a3a08 |
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"; |
ecc8c5dc |
18 | system($^X, "-Mblib", '-It/mod', "-MApp::FatPacker::Trace", $file); |
dc7a3a08 |
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 | } |