X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVPIT-TestHelpers.git;a=blobdiff_plain;f=lib%2FVPIT%2FTestHelpers.pm;fp=lib%2FVPIT%2FTestHelpers.pm;h=0f37b40b6e3026eda9cb99dfb747276a4080aa71;hp=3225a1cd893dcb0277efff7d2fe9790ad10fc9cc;hb=f24eb57f90ecd534833e5b4237144240d4562290;hpb=9b23c7dbe80c683a112687ab90cab1e3e1179eca diff --git a/lib/VPIT/TestHelpers.pm b/lib/VPIT/TestHelpers.pm index 3225a1c..0f37b40 100644 --- a/lib/VPIT/TestHelpers.pm +++ b/lib/VPIT/TestHelpers.pm @@ -268,7 +268,17 @@ sub run_perl { Import : - use VPIT::TestHelpers 'capture' + use VPIT::TestHelpers capture => [ $p ]; + +where : + +=over 8 + +=item - + +C<$p> is prefixed to the constants exported by this feature (defaults to C<''>). + +=back =item * @@ -302,8 +312,16 @@ C =item - +C (possibly prefixed by C<$p>) + +=item - + C +=item - + +C (possibly prefixed by C<$p>) + =back =back @@ -311,6 +329,8 @@ C =cut sub init_capture { + my $p = sanitize_prefix(shift); + skip_all 'Cannot capture output on VMS' if $^O eq 'VMS'; load_or_skip_all 'IO::Handle', '0', [ ]; @@ -321,8 +341,10 @@ sub init_capture { } return ( - capture => \&capture, - capture_perl => \&capture_perl, + capture => \&capture, + "${p}CAPTURE_FAILED" => \&capture_failed_msg, + capture_perl => \&capture_perl, + "${p}CAPTURE_PERL_FAILED" => \&capture_perl_failed_msg, ); } @@ -463,6 +485,15 @@ sub capture { } } +sub capture_failed_msg { + my $details = shift; + + my $msg = 'Could not capture command output'; + $msg .= " ($details)" if defined $details; + + return $msg; +} + sub capture_perl { my $code = shift; @@ -476,6 +507,15 @@ sub capture_perl { }; } +sub capture_perl_failed_msg { + my $details = shift; + + my $msg = 'Could not capture perl output'; + $msg .= " ($details)" if defined $details; + + return $msg; +} + =head2 C =over 4