X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-run_perl.t;h=bfc7bbb7fa477dab0bba34dc76a3b788e2d02c7c;hb=9d12e1a9b21a372b49301b11df9b0720ba484ef4;hp=b71f7be0b592cacd2540bfa5e1917030fdf1a21e;hpb=ca9da898bbed123e1c3c95814673315cfc125187;p=perl%2Fmodules%2FVPIT-TestHelpers.git diff --git a/t/30-run_perl.t b/t/30-run_perl.t index b71f7be..bfc7bbb 100644 --- a/t/30-run_perl.t +++ b/t/30-run_perl.t @@ -3,25 +3,31 @@ use strict; use warnings; -use VPIT::TestHelpers; +use VPIT::TestHelpers 'run_perl' => [ 'VTH' ]; -use Test::More tests => 4; +use Test::More tests => 5 + 2; use Config; use File::Temp; my $filename = '/tmp/run_perl_test'; +my $guard = VPIT::TestHelpers::Guard->new(sub { unlink $filename }); + my $code = "open my \$fh, q[>], q[$filename] or die \$!; for my \$key (sort keys %ENV) { print \$fh qq[\$key:\$ENV{\$key}\n] } close \$fh"; my $ld_path = $Config::Config{ldlibpthname}; my %expected_vars = ( 'MSWin32' => [ qw ], - 'android' => [ $ld_path ], + 'android' => [ ], 'cygwin' => [ qw ], + 'darwin' => [ ], 'linux' => [ ], ); +unless ($^O eq 'darwin') { + push @$_, $ld_path for values %expected_vars; +} my @all_vars = do { my %uniq; @@ -34,16 +40,18 @@ my @ignored_vars = qw< VERSIONER_PERL_VERSION __CF_USER_TEXT_ENCODING >; +push @ignored_vars, $ld_path if $^O eq 'darwin'; -for my $os (qw) { +for my $os (qw) { 1 while unlink $filename; - local $^O = $os; local %ENV; - @ENV{@all_vars} = @all_vars; - run_perl $code; + { + local $^O = $os; + run_perl $code; + } my %subprocess_env; @@ -62,3 +70,17 @@ for my $os (qw) { 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'; +} + +{ + my $msg = VTH_RUN_PERL_FAILED; + like $msg, qr/^Could not execute/, 'RUN_PERL_FAILED error message'; +}