1use strict; 2use warnings; 3 4use Test::More; 5use Test2::API qw/intercept/; 6 7my @warnings; 8 9intercept { 10 SKIP: { 11 local $SIG{__WARN__} = sub { @warnings = @_ }; 12 skip 'Skipping this test' if 1; 13 my $var = 'abc'; 14 is $var, 'abc'; 15 } 16}; 17 18ok(!@warnings, "did not warn when waiting for done_testing"); 19 20intercept { 21 SKIP: { 22 local $SIG{__WARN__} = sub { @warnings = @_ }; 23 plan 'no_plan'; 24 skip 'Skipping this test' if 1; 25 my $var = 'abc'; 26 is $var, 'abc'; 27 } 28}; 29 30ok(!@warnings, "did not warn with 'no_plan'"); 31 32intercept { 33 SKIP: { 34 local $SIG{__WARN__} = sub { @warnings = @_ }; 35 plan tests => 1; 36 skip 'Skipping this test' if 1; 37 my $var = 'abc'; 38 is $var, 'abc'; 39 } 40}; 41 42is(@warnings, 1, "warned with static plan"); 43like( 44 $warnings[0], 45 qr/skip\(\) needs to know \$how_many tests are in the block/, 46 "Got expected warning" 47); 48 49done_testing; 50