Test interaction with eval STRING
authorVincent Pit <vince@profvince.com>
Tue, 5 Jul 2011 22:54:14 +0000 (00:54 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 5 Jul 2011 23:01:50 +0000 (01:01 +0200)
t/30-scope.t

index e83819d..afb0e40 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 my $tests;
 BEGIN { $tests = 18 }
 
-use Test::More tests => (1 + $tests + 1) + 3 + 3 + 3 + 5 + 4 + 5;
+use Test::More tests => (1 + $tests + 1) + 2 + 3 + 3 + 3 + 5 + 4 + 5;
 
 BEGIN { delete $ENV{PERL_INDIRECT_PM_DISABLE} }
 
@@ -83,6 +83,20 @@ sub expect {
  }
 }
 
+SKIP: {
+ skip 'The pragma doesn\'t propagte into eval STRING before perl 5.10' => 2
+                                                               if $] < 5.009005;
+ my @w;
+ my $test = sub { eval 'return; new XYZ' };
+ {
+  local $SIG{__WARN__} = sub { push @w, join '', 'warn:', @_ };
+  eval 'return; no indirect; BEGIN { $test->() }';
+ }
+ is   $@,    '',            'eval test doesn\'t croak prematurely';
+ is   @w,    0,             'eval did not throw a warning';
+ diag join "\n", 'All warnings:', @w if @w;
+}
+
 {
  my @w;
  {