X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fpack.t;h=55e510448a3b7ae587d5aca85a3c417b70037da2;hb=8516a2f454820d8aad0897f6bec7e37ecd94dcc0;hp=d3fcba3c4edbd8c00cfaa00743253cda3e77123a;hpb=2cf9fee27597682a3419db68a9295f05fca1168d;p=p5sagit%2FApp-FatPacker.git diff --git a/t/pack.t b/t/pack.t index d3fcba3..55e5104 100644 --- a/t/pack.t +++ b/t/pack.t @@ -1,4 +1,3 @@ -#!perl use strict; use warnings FATAL => 'all'; use Test::More qw(no_plan); @@ -9,21 +8,25 @@ use File::Temp qw/tempdir/; use File::Spec; use Cwd; -BEGIN { use_ok "App::FatPacker", "" } +use App::FatPacker; my $keep = $ENV{'FATPACKER_KEEP_TESTDIR'}; -my $tempdir = tempdir($keep ? (CLEANUP => 0) : (CLEANUP => 1)); + +my $cwd = getcwd; +my $tempdir = tempdir('fatpacker-XXXXX', DIR => "$cwd/t", $keep ? (CLEANUP => 0) : (CLEANUP => 1)); mkpath([<$tempdir/{lib,fatlib}/t/mod>]); for() { copy $_, "$tempdir/lib/$_" or die "copy failed: $!"; } -my $cwd = getcwd; chdir $tempdir; my $fp = App::FatPacker->new; -my $temp_fh = File::Temp->new; +my $packed_file = "$tempdir/script"; +open my $temp_fh, '>', $packed_file + or die "can't write to $packed_file: $!"; + select $temp_fh; $fp->script_command_file; print "1;\n"; @@ -34,7 +37,7 @@ close $temp_fh; chdir File::Spec->tmpdir; # Packed, now try using it: -require $temp_fh; +require $packed_file; { require t::mod::a; @@ -42,11 +45,34 @@ require $temp_fh; ok $t::mod::a::foo eq 'bar', "packed script works"; } +{ + + ok ref $INC[0], "\$INC[0] is a reference"; + ok $INC[0]->can( "files" ), "\$INC[0] has a files method"; + + my @files = sort $INC[0]->files; + + is_deeply( \@files, [ + 't/mod/a.pm', + 't/mod/b.pm', + 't/mod/c.pm', + 't/mod/cond.pm', + 't/mod/d.pm', + ], "\$INC[0]->files returned the files" ); + +} + + if (my $testwith = $ENV{'FATPACKER_TESTWITH'}) { for my $perl (split ' ', $testwith) { my $out = system $perl, '-e', q{alarm 5; require $ARGV[0]; require t::mod::a; exit($t::mod::a::foo eq 'bar' ? 0 : 1)}, $temp_fh; ok !$out, "packed script works with $perl"; + + $out = system $perl, '-e', + q{alarm 5; require $ARGV[0]; exit( (sort $INC[0]->files)[0] eq 't/mod/a.pm' ? 0 : 1 )}, $temp_fh; + ok !$out, "\$INC[0]->files works with $perl"; + } }