From: Vincent Pit Date: Thu, 9 Apr 2015 17:25:21 +0000 (-0300) Subject: Add CAPTURE_FAILED() and CAPTURE_PERL_FAILED() X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=f24eb57f90ecd534833e5b4237144240d4562290;p=perl%2Fmodules%2FVPIT-TestHelpers.git Add CAPTURE_FAILED() and CAPTURE_PERL_FAILED() --- 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