]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/blobdiff - t/30-run_perl.t
Implement run_perl_file()
[perl/modules/VPIT-TestHelpers.git] / t / 30-run_perl.t
index 2238fb76838cf0f79e8d87d7f35237a16e7a5071..21837bed3fe8cde3b441645fcc3a2ae1f05ce036 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use VPIT::TestHelpers 'run_perl' => [ 'VTH' ];
 
-use Test::More tests => 5 + 2;
+use Test::More tests => 5 + 2 + 2;
 
 use Config;
 use File::Temp;
@@ -25,7 +25,9 @@ my %expected_vars = (
  '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;
@@ -38,16 +40,18 @@ my @ignored_vars = qw<
  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;
 
@@ -67,6 +71,16 @@ for my $os (qw<MSWin32 android darwin cygwin linux>) {
  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 {