#!perl
# This is based on Class-MOP/t/312_anon_class_leak.t
use strict;
use warnings;
use Test::More;
BEGIN {
eval "use Test::LeakTrace 0.10;";
plan skip_all => "Test::LeakTrace 0.10 is required for this test" if $@;
}
plan tests => 11;
{
package MyClass;
use Mouse;
has simple => (is => 'rw');
has w_int => (is => 'rw', isa => 'Int');
has w_int_or_undef
=> (is => 'rw', isa => 'Int | Undef');
has w_foo => (is => 'rw', isa => 'Foo');
has w_aint=> (is => 'rw', isa => 'ArrayRef[Int]');
}
no_leaks_ok{
MyClass->new();
};
my $o = MyClass->new;
no_leaks_ok {
$o->simple(10);
};
no_leaks_ok {
$o->simple();
};
no_leaks_ok {
$o->w_int(10);
};
no_leaks_ok {
$o->w_int();
};
no_leaks_ok {
$o->w_int_or_undef(10);
};
no_leaks_ok {
$o->w_int_or_undef();
};
my $foo = bless {}, 'Foo';
no_leaks_ok {
$o->w_foo($foo);
};
no_leaks_ok {
$o->w_int();
};
my $aref = [10];
no_leaks_ok {
$o->w_aint($aref);
};
no_leaks_ok {
$o->w_aint();
};