Scope-Cleanup
view release on metacpan or search on metacpan
t/context.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 7;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", wantarray ] };
push @events, [ "aa1" ];
"aa2";
}
@events = ();
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
use warnings;
use strict;
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] }
if 1;
establish_cleanup sub { push @events, [ "bb1", @_ ] }
if 0;
establish_cleanup sub { push @events, [ "bb2", @_ ] }
if 1;
push @events, [ "aa1" ];
"aa2";
}
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb2" ],
[ "bb0" ],
[ "cc2", "aa2" ],
];
sub dd(@) {
push @events, [ "dd0", @_ ];
do { establish_cleanup sub { push @events, [ "ee0", @_ ] } }
if 1;
do { establish_cleanup sub { push @events, [ "ee1", @_ ] } }
if 0;
do { establish_cleanup sub { push @events, [ "ee2", @_ ] } }
if 1;
push @events, [ "dd1" ];
"dd2";
}
t/via_death.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
my $value = eval {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] };
push @events, [ "aa1" ];
my $zero = 0;
push @events, [ "aa2", $zero/$zero ];
push @events, [ "aa3" ];
"aa4";
};
my $err = $@;
t/via_death.t view on Meta::CPAN
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb0" ],
[ "cc2", [ "aa5", undef, "Illegal division by zero\n" ] ],
];
sub dd(@) {
my $value = eval {
push @events, [ "dd0", @_ ];
establish_cleanup sub { push @events, [ "ee0", @_ ] };
push @events, [ "dd1" ];
my $v = do {
push @events, [ "dd2" ];
establish_cleanup sub { push @events, [ "ee1", @_ ] };
push @events, [ "dd3" ];
my $zero = 0;
push @events, [ "dd4", $zero/$zero ];
t/via_die.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
my $value = eval {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] };
push @events, [ "aa1" ];
die "aa2\n";
push @events, [ "aa3" ];
"aa4";
};
[ "aa5", $value, $@ ];
}
t/via_die.t view on Meta::CPAN
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb0" ],
[ "cc2", [ "aa5", undef, "aa2\n" ] ],
];
sub dd(@) {
my $value = eval {
push @events, [ "dd0", @_ ];
establish_cleanup sub { push @events, [ "ee0", @_ ] };
push @events, [ "dd1" ];
my $v = do {
push @events, [ "dd2" ];
establish_cleanup sub { push @events, [ "ee1", @_ ] };
push @events, [ "dd3" ];
die "dd4\n";
push @events, [ "dd5" ];
t/via_escape.t view on Meta::CPAN
}
Scope::Escape->import(qw(current_escape_function));
}
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
my $escape = current_escape_function;
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] };
push @events, [ "aa1" ];
$escape->("aa2");
push @events, [ "aa3" ];
"aa4";
}
@events = ();
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb0" ],
[ "cc2", "aa2" ],
];
sub dd(@) {
my $escape = current_escape_function;
push @events, [ "dd0", @_ ];
establish_cleanup sub { push @events, [ "ee0", @_ ] };
push @events, [ "dd1" ];
my $v = do {
push @events, [ "dd2" ];
establish_cleanup sub { push @events, [ "ee1", @_ ] };
push @events, [ "dd3" ];
$escape->("dd4");
push @events, [ "dd5" ];
t/via_exit.t view on Meta::CPAN
use warnings;
use strict;
BEGIN { print "1..3\n"; }
use Scope::Cleanup qw(establish_cleanup);
establish_cleanup sub { print "ok 3\n" };
sub aa() {
establish_cleanup sub { print "ok 2\n" };
do {
establish_cleanup sub { print "ok 1\n" };
exit 0;
print "not ok 1\n";
};
print "not ok 2\n";
}
aa();
print "not ok 3\n";
t/via_return.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] };
push @events, [ "aa1" ];
return "aa2";
push @events, [ "aa3" ];
"aa4";
}
@events = ();
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb0" ],
[ "cc2", "aa2" ],
];
sub dd(@) {
push @events, [ "dd0", @_ ];
establish_cleanup sub { push @events, [ "ee0", @_ ] };
push @events, [ "dd1" ];
my $v = do {
push @events, [ "dd2" ];
establish_cleanup sub { push @events, [ "ee1", @_ ] };
push @events, [ "dd3" ];
return "dd4";
push @events, [ "dd5" ];
"dd6";
t/via_sublocalret.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 3;
BEGIN { use_ok "Scope::Cleanup", qw(establish_cleanup); }
my @events;
sub aa(@) {
push @events, [ "aa0", @_ ];
establish_cleanup sub { push @events, [ "bb0", @_ ] };
push @events, [ "aa1" ];
"aa2";
}
@events = ();
push @events, [ "cc0" ];
push @events, [ "cc2", aa("cc1a", "cc1b") ];
is_deeply \@events, [
[ "cc0" ],
[ "aa0", "cc1a", "cc1b" ],
[ "aa1" ],
[ "bb0" ],
[ "cc2", "aa2" ],
];
sub dd(@) {
push @events, [ "dd0", @_ ];
establish_cleanup sub { push @events, [ "ee0", @_ ] };
push @events, [ "dd1" ];
my $v = do {
push @events, [ "dd2" ];
establish_cleanup sub { push @events, [ "ee1", @_ ] };
push @events, [ "dd3" ];
"dd4";
};
push @events, [ "dd5", $v ];
( run in 2.064 seconds using v1.01-cache-2.11-cpan-524268b4103 )