1#!perl
2
3# testing with packed scripts
4
5use strict;
6use warnings;
7use FindBin '$Bin';
8use lib "$Bin/lib";
9
10use File::Temp qw(tempfile);
11use Test::More 0.98;
12use Test::Needs 'App::depak';
13
14my ($tempfh, $tempname) = tempfile();
15
16subtest fatpack => sub {
17    require App::depak;
18
19    my $res = App::depak::depak(
20        pack_method => "fatpack",
21        include_module => ["Local::Foo", "Local::Bar"],
22        input_file => "$Bin/bin/test-module-installed.pl",
23        output_file => $tempname,
24        overwrite => 1,
25        trace_method => "fatpacker",
26    );
27    die "Can't create packed script (fatpack): $res->[0] - $res->[1]"
28        unless $res->[0] == 200;
29
30    my $output = `$^X $tempname`;
31    like($output, qr/^installed1.*^installed2.*NOT-INSTALLED3/ms);
32};
33
34subtest datapack => sub {
35    require App::depak;
36
37    my $res = App::depak::depak(
38        pack_method => "datapack",
39        include_module => ["Local::Foo", "Local::Bar"],
40        input_file => "$Bin/bin/test-module-source.pl",
41        output_file => $tempname,
42        overwrite => 1,
43        trace_method => "fatpacker",
44    );
45    die "Can't create packed script (datapack): $res->[0] - $res->[1]"
46        unless $res->[0] == 200;
47
48    my $output = `$^X $tempname`;
49    like($output, qr/package Local::Foo.*package Local::Bar/s);
50};
51
52done_testing;
53