summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xt/author/leaks-debug.t46
-rw-r--r--xt/author/leaks.t44
2 files changed, 79 insertions, 11 deletions
diff --git a/xt/author/leaks-debug.t b/xt/author/leaks-debug.t
index 7435318..686a96e 100644
--- a/xt/author/leaks-debug.t
+++ b/xt/author/leaks-debug.t
@@ -45,18 +45,28 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->name;
+ } "name accessor doesn't leak";
+ no_leaks_ok {
$foo->namespace;
- } "accessors don't leak";
+ } "namespace accessor doesn't leak";
}
{
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->add_symbol('$scalar');
+ } "add_symbol scalar with no initializer doesn't leak";
+ no_leaks_ok {
$foo->add_symbol('@array');
+ } "add_symbol array with no initializer doesn't leak";
+ no_leaks_ok {
$foo->add_symbol('%hash');
+ } "add_symbol hash with no initializer doesn't leak";
+ { local $TODO = "not sure why this leaks";
+ no_leaks_ok {
$foo->add_symbol('io');
- } "add_symbol doesn't leak";
+ } "add_symbol io with no initializer doesn't leak";
+ }
}
{
@@ -85,11 +95,19 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->remove_symbol('$scalar_init');
+ } "remove_symbol scalar doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('@array_init');
+ } "remove_symbol array doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('%hash_init');
+ } "remove_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('&code_init');
+ } "remove_symbol code doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('io_init');
- } "remove_symbol doesn't leak";
+ } "remove_symbol io doesn't leak";
}
{
@@ -104,22 +122,38 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->has_symbol('io');
+ } "has_symbol io doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('%hash');
+ } "has_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('@array_init');
+ } "has_symbol array doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('$glob');
+ } "has_symbol nonexistent scalar doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('&something_else');
- } "has_symbol doesn't leak";
+ } "has_symbol nonexistent code doesn't leak";
}
{
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->get_symbol('io');
+ } "get_symbol io doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('%hash');
+ } "get_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('@array_init');
+ } "get_symbol array doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('$glob');
+ } "get_symbol nonexistent scalar doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('&something_else');
- } "get_symbol doesn't leak";
+ } "get_symbol nonexistent code doesn't leak";
}
{
@@ -189,7 +223,7 @@ use Symbol;
{
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
- eval { $foo->get_or_add_symbol('&blorg') };
+ eval { $foo->add_symbol('&blorg') };
} "doesn't leak on errors";
}
diff --git a/xt/author/leaks.t b/xt/author/leaks.t
index 18ec601..e3b50ab 100644
--- a/xt/author/leaks.t
+++ b/xt/author/leaks.t
@@ -43,18 +43,28 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->name;
+ } "name accessor doesn't leak";
+ no_leaks_ok {
$foo->namespace;
- } "accessors don't leak";
+ } "namespace accessor doesn't leak";
}
{
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->add_symbol('$scalar');
+ } "add_symbol scalar with no initializer doesn't leak";
+ no_leaks_ok {
$foo->add_symbol('@array');
+ } "add_symbol array with no initializer doesn't leak";
+ no_leaks_ok {
$foo->add_symbol('%hash');
+ } "add_symbol hash with no initializer doesn't leak";
+ { local $TODO = "not sure why this leaks";
+ no_leaks_ok {
$foo->add_symbol('io');
- } "add_symbol doesn't leak";
+ } "add_symbol io with no initializer doesn't leak";
+ }
}
{
@@ -83,11 +93,19 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->remove_symbol('$scalar_init');
+ } "remove_symbol scalar doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('@array_init');
+ } "remove_symbol array doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('%hash_init');
+ } "remove_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('&code_init');
+ } "remove_symbol code doesn't leak";
+ no_leaks_ok {
$foo->remove_symbol('io_init');
- } "remove_symbol doesn't leak";
+ } "remove_symbol io doesn't leak";
}
{
@@ -102,22 +120,38 @@ use Symbol;
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->has_symbol('io');
+ } "has_symbol io doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('%hash');
+ } "has_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('@array_init');
+ } "has_symbol array doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('$glob');
+ } "has_symbol nonexistent scalar doesn't leak";
+ no_leaks_ok {
$foo->has_symbol('&something_else');
- } "has_symbol doesn't leak";
+ } "has_symbol nonexistent code doesn't leak";
}
{
my $foo = Package::Stash->new('Foo');
no_leaks_ok {
$foo->get_symbol('io');
+ } "get_symbol io doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('%hash');
+ } "get_symbol hash doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('@array_init');
+ } "get_symbol array doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('$glob');
+ } "get_symbol nonexistent scalar doesn't leak";
+ no_leaks_ok {
$foo->get_symbol('&something_else');
- } "get_symbol doesn't leak";
+ } "get_symbol nonexistent code doesn't leak";
}
{