Commit | Line | Data |
edff3fdc |
1 | #!perl |
2 | use strict; |
3 | use warnings FATAL => 'all'; |
4 | use Test::More qw(no_plan); |
5 | use File::Basename; |
6 | use File::Copy; |
7 | use File::Path; |
55044309 |
8 | use File::Temp qw/tempdir/; |
2cf9fee2 |
9 | use File::Spec; |
8a3a89c9 |
10 | use Cwd; |
edff3fdc |
11 | |
12 | BEGIN { use_ok "App::FatPacker", "" } |
13 | |
55044309 |
14 | my $keep = $ENV{'FATPACKER_KEEP_TESTDIR'}; |
15 | my $tempdir = tempdir($keep ? (CLEANUP => 0) : (CLEANUP => 1)); |
edff3fdc |
16 | mkpath([<$tempdir/{lib,fatlib}/t/mod>]); |
17 | |
18 | for(<t/mod/*.pm>) { |
19 | copy $_, "$tempdir/lib/$_" or die "copy failed: $!"; |
20 | } |
21 | |
8a3a89c9 |
22 | my $cwd = getcwd; |
edff3fdc |
23 | chdir $tempdir; |
24 | |
25 | my $fp = App::FatPacker->new; |
26 | my $temp_fh = File::Temp->new; |
27 | select $temp_fh; |
28 | $fp->script_command_file; |
29 | print "1;\n"; |
30 | select STDOUT; |
31 | close $temp_fh; |
32 | |
2cf9fee2 |
33 | # make sure we don't pick up things from our created dir |
34 | chdir File::Spec->tmpdir; |
35 | |
edff3fdc |
36 | # Packed, now try using it: |
37 | require $temp_fh; |
38 | |
39 | { |
40 | require t::mod::a; |
41 | no warnings 'once'; |
2cf9fee2 |
42 | ok $t::mod::a::foo eq 'bar', "packed script works"; |
edff3fdc |
43 | } |
8a3a89c9 |
44 | |
2cf9fee2 |
45 | if (my $testwith = $ENV{'FATPACKER_TESTWITH'}) { |
46 | for my $perl (split ' ', $testwith) { |
47 | my $out = system $perl, '-e', |
48 | q{alarm 5; require $ARGV[0]; require t::mod::a; exit($t::mod::a::foo eq 'bar' ? 0 : 1)}, $temp_fh; |
49 | ok !$out, "packed script works with $perl"; |
50 | } |
51 | } |
55044309 |
52 | |