From: Jesse Luehrs Date: Tue, 30 Aug 2011 06:21:40 +0000 (-0500) Subject: update leak tests X-Git-Tag: 0.32~7 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=92b6eef309468251f4d4cf6be994c173cb5e4169;p=gitmo%2FPackage-Stash.git update leak tests --- diff --git a/xt/author/20-leaks.t b/xt/author/20-leaks.t index c37df91..767b4f1 100644 --- a/xt/author/20-leaks.t +++ b/xt/author/20-leaks.t @@ -59,16 +59,24 @@ use Symbol; { my $foo = Package::Stash->new('Foo'); - { local $TODO = $Package::Stash::IMPLEMENTATION eq 'PP' - ? "the pure perl implementation leaks here somehow" - : undef; no_leaks_ok { $foo->add_symbol('$scalar_init' => 1); + } "add_symbol scalar doesn't leak"; + no_leaks_ok { $foo->add_symbol('@array_init' => []); + } "add_symbol array doesn't leak"; + no_leaks_ok { $foo->add_symbol('%hash_init' => {}); + } "add_symbol hash doesn't leak"; + no_leaks_ok { $foo->add_symbol('&code_init' => sub { "foo" }); + } "add_symbol code doesn't leak"; + { local $TODO = $Package::Stash::IMPLEMENTATION eq 'PP' + ? "the pure perl implementation leaks here somehow" + : undef; + no_leaks_ok { $foo->add_symbol('io_init' => Symbol::geniosym); - } "add_symbol doesn't leak"; + } "add_symbol io doesn't leak"; } is(exception { is(Foo->code_init, 'foo', "sub installed correctly") @@ -127,8 +135,8 @@ use Symbol; @{$foo->get_or_add_symbol('@ISA')} = @super; $foo->get_or_add_symbol('$glob'); } "get_or_add_symbol doesn't leak"; - { local $TODO = ($] < 5.010 || $Package::Stash::IMPLEMENTATION eq 'PP') - ? "undef scalars aren't visible on 5.8, or from pure perl at all" + { local $TODO = $] < 5.010 + ? "undef scalars aren't visible on 5.8" : undef; ok($foo->has_symbol('$glob')); } diff --git a/xt/author/21-leaks-debug.t b/xt/author/21-leaks-debug.t index 7c453e7..0b7963f 100644 --- a/xt/author/21-leaks-debug.t +++ b/xt/author/21-leaks-debug.t @@ -61,16 +61,24 @@ use Symbol; { my $foo = Package::Stash->new('Foo'); - { local $TODO = $Package::Stash::IMPLEMENTATION eq 'PP' - ? "the pure perl implementation leaks here somehow" - : undef; no_leaks_ok { $foo->add_symbol('$scalar_init' => 1); + } "add_symbol scalar doesn't leak"; + no_leaks_ok { $foo->add_symbol('@array_init' => []); + } "add_symbol array doesn't leak"; + no_leaks_ok { $foo->add_symbol('%hash_init' => {}); + } "add_symbol hash doesn't leak"; + no_leaks_ok { $foo->add_symbol('&code_init' => sub { "foo" }); + } "add_symbol code doesn't leak"; + { local $TODO = $Package::Stash::IMPLEMENTATION eq 'PP' + ? "the pure perl implementation leaks here somehow" + : undef; + no_leaks_ok { $foo->add_symbol('io_init' => Symbol::geniosym); - } "add_symbol doesn't leak"; + } "add_symbol io doesn't leak"; } is(exception { is(Foo->code_init, 'foo', "sub installed correctly") @@ -129,8 +137,8 @@ use Symbol; @{$foo->get_or_add_symbol('@ISA')} = @super; $foo->get_or_add_symbol('$glob'); } "get_or_add_symbol doesn't leak"; - { local $TODO = ($] < 5.010 || $Package::Stash::IMPLEMENTATION eq 'PP') - ? "undef scalars aren't visible on 5.8, or from pure perl at all" + { local $TODO = $] < 5.010 + ? "undef scalars aren't visible on 5.8" : undef; ok($foo->has_symbol('$glob')); }