allow easier testing on alternate perls
[p5sagit/App-FatPacker.git] / t / pack.t
CommitLineData
edff3fdc 1#!perl
2use strict;
3use warnings FATAL => 'all';
4use Test::More qw(no_plan);
5use File::Basename;
6use File::Copy;
7use File::Path;
55044309 8use File::Temp qw/tempdir/;
2cf9fee2 9use File::Spec;
8a3a89c9 10use Cwd;
edff3fdc 11
12BEGIN { use_ok "App::FatPacker", "" }
13
55044309 14my $keep = $ENV{'FATPACKER_KEEP_TESTDIR'};
15my $tempdir = tempdir($keep ? (CLEANUP => 0) : (CLEANUP => 1));
edff3fdc 16mkpath([<$tempdir/{lib,fatlib}/t/mod>]);
17
18for(<t/mod/*.pm>) {
19 copy $_, "$tempdir/lib/$_" or die "copy failed: $!";
20}
21
8a3a89c9 22my $cwd = getcwd;
edff3fdc 23chdir $tempdir;
24
25my $fp = App::FatPacker->new;
26my $temp_fh = File::Temp->new;
27select $temp_fh;
28$fp->script_command_file;
29print "1;\n";
30select STDOUT;
31close $temp_fh;
32
2cf9fee2 33# make sure we don't pick up things from our created dir
34chdir File::Spec->tmpdir;
35
edff3fdc 36# Packed, now try using it:
37require $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 45if (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