Blame t/make_executable.t
|
Packit |
b7b64d |
#!/usr/bin/perl
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
use strict;
|
|
Packit |
b7b64d |
use warnings FATAL => 'all';
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
use Config;
|
|
Packit |
b7b64d |
use Test::More tests => 7;
|
|
Packit |
b7b64d |
use ExtUtils::Helpers qw/make_executable/;
|
|
Packit |
b7b64d |
use Cwd qw/cwd/;
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
my $filename = 'test_exec';
|
|
Packit |
b7b64d |
my @files;
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
open my $out, '>', $filename or die "Couldn't create $filename: $!";
|
|
Packit |
b7b64d |
print $out "#! perl -w\nexit \$ARGV[0];\n";
|
|
Packit |
b7b64d |
close $out;
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
make_executable($filename);
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
foreach my $i (42, 51, 0) {
|
|
Packit |
b7b64d |
my $cwd = cwd;
|
|
Packit |
b7b64d |
local $ENV{PATH} = join $Config{path_sep}, $cwd, $ENV{PATH};
|
|
Packit |
b7b64d |
my $ret = system $filename, $i;
|
|
Packit |
b7b64d |
is $ret & 0xff, 0, 'test_exec executed successfully';
|
|
Packit |
b7b64d |
is $ret >> 8, $i, "test_exec $i return value ok";
|
|
Packit |
b7b64d |
}
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
SKIP: {
|
|
Packit |
b7b64d |
skip 'No batch file on non-windows', 1 if $^O ne 'MSWin32';
|
|
Packit |
b7b64d |
push @files, grep { -f } map { $filename.$_ } split / $Config{path_sep} /x, $ENV{PATHEXT};
|
|
Packit |
b7b64d |
is scalar(@files), 1, "Executable file exists";
|
|
Packit |
b7b64d |
}
|
|
Packit |
b7b64d |
|
|
Packit |
b7b64d |
unlink $filename, @files;
|