]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/commitdiff
Turn run_perl() into a feature
authorVincent Pit <vince@profvince.com>
Thu, 9 Apr 2015 16:15:25 +0000 (13:15 -0300)
committerVincent Pit <vince@profvince.com>
Thu, 9 Apr 2015 16:15:25 +0000 (13:15 -0300)
lib/VPIT/TestHelpers.pm
t/30-run_perl.t

index 6a3655e9646aa45649087d5e063ecfd42d71a9a5..a6ca51908cc9f3398a125f93a7353844dbc6043c 100644 (file)
@@ -19,14 +19,14 @@ sub export_to_pkg {
 my %default_exports = (
  load_or_skip     => \&load_or_skip,
  load_or_skip_all => \&load_or_skip_all,
- run_perl         => \&run_perl,
  skip_all         => \&skip_all,
 );
 
 my %features = (
- threads => \&init_threads,
- usleep  => \&init_usleep,
- capture => \&init_capture,
+ threads  => \&init_threads,
+ usleep   => \&init_usleep,
+ run_perl => \&init_run_perl,
+ capture  => \&init_capture,
 );
 
 sub import {
@@ -165,6 +165,25 @@ sub fresh_perl_env (&) {
  return $handler->($perl, '-T', map("-I$_", @INC));
 }
 
+sub init_run_perl {
+ my $prefix = shift;
+
+ if (defined $prefix) {
+  if (length $prefix and $prefix !~ /_$/) {
+   $prefix .= '_';
+  }
+ } else {
+  $prefix = '';
+ }
+
+ my $p = $prefix;
+
+ return (
+  run_perl              => \&run_perl,
+  "${p}RUN_PERL_FAILED" => sub () { 'Could not execute perl subprocess' },
+ );
+}
+
 sub run_perl {
  my $code = shift;
 
index 077b58e598650ac385931e7602df61bc76b95e66..2238fb76838cf0f79e8d87d7f35237a16e7a5071 100644 (file)
@@ -3,9 +3,9 @@
 use strict;
 use warnings;
 
-use VPIT::TestHelpers;
+use VPIT::TestHelpers 'run_perl' => [ 'VTH' ];
 
-use Test::More tests => 5 + 1;
+use Test::More tests => 5 + 2;
 
 use Config;
 use File::Temp;
@@ -75,3 +75,8 @@ for my $os (qw<MSWin32 android darwin cygwin linux>) {
  like $@, qr/^Double quotes in evaluated code are not portable/,
           'croak on double quotes';
 }
+
+{
+ my $msg = VTH_RUN_PERL_FAILED;
+ like $msg, qr/^Could not execute/, 'RUN_PERL_FAILED error message';
+}