X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVPIT-TestHelpers.git;a=blobdiff_plain;f=lib%2FVPIT%2FTestHelpers.pm;h=7dfd15eb63f108f9001d8f906fba2d53a92b9056;hp=9054314e3be4a04356cadac696e7f8ddd88f2d9d;hb=0bcc011a0cf1879908fd93fdfeb3a31d66657424;hpb=3b6eb95acf3764c1877a4309b0f9362323d71938 diff --git a/lib/VPIT/TestHelpers.pm b/lib/VPIT/TestHelpers.pm index 9054314..7dfd15e 100644 --- a/lib/VPIT/TestHelpers.pm +++ b/lib/VPIT/TestHelpers.pm @@ -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}; 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 {