1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
use Test::Effects;
plan tests => 4;
effects_ok {
sleep 1;
print 'stdout';
say {*STDERR} 'stderr';
warn 'warning';
die 'died';
}
VERBOSE {
stdout => "stdout",
stderr => qr{stderr\nwarning \s+ at}x,
warn => [qr{\A warning \s+ at}x],
die => qr{\A died \s+ at}x,
}
=> 'Not in scope';
{
use Test::Effects::TIME;
effects_ok {
sleep 1;
print 'stdout';
say {*STDERR} 'stderr';
warn 'warning';
die 'died';
}
VERBOSE {
stdout => "stdout",
stderr => qr{stderr\nwarning \s+ at}x,
warn => [qr{\A warning \s+ at}x],
die => qr{\A died \s+ at}x,
}
=> 'In scope';
no Test::Effects::TIME;
effects_ok {
sleep 1;
print 'stdout';
say {*STDERR} 'stderr';
warn 'warning';
die 'died';
}
VERBOSE {
stdout => "stdout",
stderr => qr{stderr\nwarning \s+ at}x,
warn => [qr{\A warning \s+ at}x],
die => qr{\A died \s+ at}x,
}
=> 'In scope (after no)';
}
effects_ok {
sleep 1;
print 'stdout';
say {*STDERR} 'stderr';
warn 'warning';
die 'died';
}
VERBOSE {
stdout => "stdout",
stderr => qr{stderr\nwarning \s+ at}x,
warn => [qr{\A warning \s+ at}x],
die => qr{\A died \s+ at}x,
}
=> 'Back out of scope';
done_testing();
|