]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/commitdiff
Forbid double quotes in code run by run_perl()
authorVincent Pit <vince@profvince.com>
Tue, 24 Mar 2015 02:20:46 +0000 (23:20 -0300)
committerVincent Pit <vince@profvince.com>
Tue, 24 Mar 2015 02:22:39 +0000 (23:22 -0300)
They are not portable to Windows.

lib/VPIT/TestHelpers.pm
t/30-run_perl.t

index 940d7f459877535987d9cbdad3b3408d777a6678..b8623c536b65a652df5b5d01fdb6e980f95e6ee5 100644 (file)
@@ -144,6 +144,10 @@ sub load_or_skip_all {
 sub run_perl {
  my $code = shift;
 
+ if ($code =~ /"/) {
+  die 'Double quotes in evaluated code are not portable';
+ }
+
  my ($SystemRoot, $PATH) = @ENV{qw<SystemRoot PATH>};
  my $ld_name  = $Config::Config{ldlibpthname};
  my $ldlibpth = $ENV{$ld_name};
index 216519706e134bca5ba807614a005c140dc974ad..077b58e598650ac385931e7602df61bc76b95e66 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use VPIT::TestHelpers;
 
-use Test::More tests => 5;
+use Test::More tests => 5 + 1;
 
 use Config;
 use File::Temp;
@@ -66,3 +66,12 @@ for my $os (qw<MSWin32 android darwin cygwin linux>) {
 
  is $got, $exp, "run_perl preserving $os ENV vars";
 }
+
+{
+ local $@;
+ eval {
+  run_perl 'print "hello\n"';
+ };
+ like $@, qr/^Double quotes in evaluated code are not portable/,
+          'croak on double quotes';
+}