X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVPIT-TestHelpers.git;a=blobdiff_plain;f=lib%2FVPIT%2FTestHelpers.pm;h=6a3655e9646aa45649087d5e063ecfd42d71a9a5;hp=7dfd15eb63f108f9001d8f906fba2d53a92b9056;hb=0061dae2bcee89818b69face072da887029ae488;hpb=0bcc011a0cf1879908fd93fdfeb3a31d66657424 diff --git a/lib/VPIT/TestHelpers.pm b/lib/VPIT/TestHelpers.pm index 7dfd15e..6a3655e 100644 --- a/lib/VPIT/TestHelpers.pm +++ b/lib/VPIT/TestHelpers.pm @@ -188,7 +188,10 @@ sub init_capture { load_or_skip_all 'Socket', '0', [ ]; } - return capture => \&capture; + return ( + capture => \&capture, + capture_perl => \&capture_perl, + ); } # Inspired from IPC::Cmd @@ -328,6 +331,19 @@ sub capture { } } +sub capture_perl { + my $code = shift; + + if ($code =~ /"/) { + die 'Double quotes in evaluated code are not portable'; + } + + fresh_perl_env { + my @perl = @_; + capture @perl, '-e', $code; + }; +} + sub init_threads { my ($pkg, $threadsafe, $force_var) = @_;