use strict;
use warnings;
-use VPIT::TestHelpers;
+use VPIT::TestHelpers 'run_perl' => [ 'VTH' ];
-use Test::More tests => 5 + 1;
+use Test::More tests => 5 + 2 + 2;
use Config;
use File::Temp;
'darwin' => [ ],
'linux' => [ ],
);
-push @$_, $ld_path for values %expected_vars;
+unless ($^O eq 'darwin') {
+ push @$_, $ld_path for values %expected_vars;
+}
my @all_vars = do {
my %uniq;
VERSIONER_PERL_VERSION
__CF_USER_TEXT_ENCODING
>;
+push @ignored_vars, $ld_path if $^O eq 'darwin';
for my $os (qw<MSWin32 android darwin cygwin linux>) {
1 while unlink $filename;
- local $^O = $os;
local %ENV;
-
@ENV{@all_vars} = @all_vars;
- run_perl $code;
+ {
+ local $^O = $os;
+ run_perl $code;
+ }
my %subprocess_env;
is $got, $exp, "run_perl preserving $os ENV vars";
}
+{
+ local $@;
+ my $stat = eval {
+ run_perl_file 't/testcases/run_perl_file.pl';
+ };
+ $stat = $stat >> 8 if defined $stat;
+ is $@, '', 'run_perl_file() does not croak';
+ is $stat, 123, 'run_perl_file() captures the exit value';
+}
+
{
local $@;
eval {
like $@, qr/^Double quotes in evaluated code are not portable/,
'croak on double quotes';
}
+
+{
+ my $msg = VTH_RUN_PERL_FAILED;
+ like $msg, qr/^Could not execute/, 'RUN_PERL_FAILED error message';
+}