Commit | Line | Data |
cd326e2d |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Class::MOP; |
5 | use Test::More; |
6 | |
7 | BEGIN { |
8 | eval "use Test::LeakTrace;"; |
9 | plan skip_all => "Test::LeakTrace is required for this test" if $@; |
10 | } |
11 | |
87cfe982 |
12 | plan tests => 4; |
cd326e2d |
13 | |
14 | # 5.10.0 has a bug on weaken($hash_ref) which leaks an AV. |
15 | my $expected = ( $] == 5.010_000 ? 1 : 0 ); |
16 | |
17 | leaks_cmp_ok { |
18 | Class::MOP::Class->create_anon_class(); |
19 | } |
20 | '<=', $expected, 'create_anon_class()'; |
21 | |
22 | leaks_cmp_ok { |
23 | Class::MOP::Class->create_anon_class( superclasses => [qw(Exporter)] ); |
24 | } |
25 | '<=', $expected, 'create_anon_class(superclass => [...])'; |
26 | |
87cfe982 |
27 | leaks_cmp_ok { |
28 | Class::MOP::Class->create_anon_class()->new_object(); |
29 | } |
30 | '<=', $expected, 'create_anon_class->new_object'; |
31 | |
32 | leaks_cmp_ok { |
33 | my $meta = Class::MOP::Class->create_anon_class(); |
34 | $meta->make_immutable(); |
35 | } |
36 | '<=', $expected, 'create_anon_class->make_immutable'; |