update test suite
[gitmo/Package-Stash-XS.git] / t / 21-leaks-debug.t
index 292a28c..5b7ff20 100644 (file)
@@ -61,6 +61,9 @@ 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);
         $foo->add_symbol('@array_init' => []);
@@ -68,6 +71,7 @@ use Symbol;
         $foo->add_symbol('&code_init' => sub { "foo" });
         $foo->add_symbol('io_init' => Symbol::geniosym);
     } "add_symbol doesn't leak";
+    }
     is(exception {
         is(Foo->code_init, 'foo', "sub installed correctly")
     }, undef, "code_init exists");
@@ -125,7 +129,9 @@ 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 ? "undef scalars aren't visible on 5.8" : undef;
+    { local $TODO = ($] < 5.010 || $Package::Stash::IMPLEMENTATION eq 'PP')
+        ? "undef scalars aren't visible on 5.8, or from pure perl at all"
+        : undef;
     ok($foo->has_symbol('$glob'));
     }
     is(ref($foo->get_symbol('$glob')), 'SCALAR');
@@ -159,7 +165,7 @@ use Symbol;
         $foo->get_all_symbols('SCALAR');
         $foo->get_all_symbols('CODE');
         $blah->get_all_symbols('CODE');
-    } "list_all_symbols doesn't leak";
+    } "get_all_symbols doesn't leak";
 }
 
 # mimic CMOP::create_anon_class
@@ -177,6 +183,10 @@ use Symbol;
 }
 
 {
+    local $TODO = ($Package::Stash::IMPLEMENTATION eq 'PP'
+                && $Carp::VERSION ge '1.17')
+        ? "Carp is leaky on 5.12.2 apparently?"
+        : undef;
     my $foo = Package::Stash->new('Foo');
     no_leaks_ok {
         eval { $foo->get_or_add_symbol('&blorg') };