App-dozo

 view release on metacpan or  search on metacpan

t/03_dozo.t  view on Meta::CPAN

subtest '--bundle' => sub {
    my $dir = tempdir(CLEANUP => 1);
    my $bundled = "$dir/dozo";
    system("$dozo -q --bundle > $bundled") == 0 or die "--bundle failed";
    chmod 0755, $bundled;
    open my $fh, '<', $bundled or die;
    my $text = do { local $/; <$fh> };
    close $fh;
    like($text, qr/\A#!.*\n# getoptlong\.sh embedded by dozo --bundle\n(?s:.*)^gol_parse \(\)(?s:.*)^# end of getoptlong\.sh\n/m,
         'getoptlong.sh is inserted after the first line');
    my ($orig) = do { local(@ARGV, $/) = ($dozo); <> };
    my $body = $orig =~ s/\A.*\n//r;
    like($text, qr/\Q$body\E\z/, 'the rest of dozo follows unchanged');

    # a PATH with bash but without getoptlong.sh
    my $bin = "$dir/bin";
    mkdir $bin;
    my ($bash) = grep { -x } map { "$_/bash" } split /:/, $ENV{PATH};
    symlink $bash, "$bin/bash" or die "bash not found in PATH";
    local $ENV{PATH} = "$bin:/usr/bin:/bin";
    my $out = `$bundled -n -I alpine echo test 2>&1`;



( run in 1.087 second using v1.01-cache-2.11-cpan-ac8be02dad9 )