]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/commitdiff
Introduce fresh_perl_env() and make run_perl() use it
authorVincent Pit <vince@profvince.com>
Thu, 9 Apr 2015 14:29:15 +0000 (11:29 -0300)
committerVincent Pit <vince@profvince.com>
Thu, 9 Apr 2015 14:32:54 +0000 (11:32 -0300)
lib/VPIT/TestHelpers.pm

index 9054314e3be4a04356cadac696e7f8ddd88f2d9d..7dfd15eb63f108f9001d8f906fba2d53a92b9056 100644 (file)
@@ -142,12 +142,8 @@ sub load_or_skip_all {
  return $loaded;
 }
 
-sub run_perl {
- my $code = shift;
-
- if ($code =~ /"/) {
-  die 'Double quotes in evaluated code are not portable';
- }
+sub fresh_perl_env (&) {
+ my $handler = shift;
 
  my ($SystemRoot, $PATH) = @ENV{qw<SystemRoot PATH>};
  my $ld_name  = $Config::Config{ldlibpthname};
@@ -166,7 +162,20 @@ sub run_perl {
   }
  }
 
- system { $perl } $perl, '-T', map("-I$_", @INC), '-e', $code;
+ return $handler->($perl, '-T', map("-I$_", @INC));
+}
+
+sub run_perl {
+ my $code = shift;
+
+ if ($code =~ /"/) {
+  die 'Double quotes in evaluated code are not portable';
+ }
+
+ fresh_perl_env {
+  my ($perl, @perl_args) = @_;
+  system { $perl } $perl, @perl_args, '-e', $code;
+ };
 }
 
 sub init_capture {