Commit | Line | Data |
2669196e |
1 | #!perl\r |
2 | # This is based on Class-MOP/t/312_anon_class_leak.t\r |
3 | use strict;\r |
4 | use warnings;\r |
5 | use Test::More;\r |
6 | \r |
7 | BEGIN {\r |
8 | eval "use Test::LeakTrace 0.10;";\r |
9 | plan skip_all => "Test::LeakTrace 0.10 is required for this test" if $@;\r |
10 | }\r |
11 | \r |
12 | plan tests => 6;\r |
13 | \r |
14 | use Mouse ();\r |
15 | {\r |
16 | package MyRole;\r |
17 | use Mouse::Role;\r |
18 | \r |
19 | sub my_role_method{ }\r |
20 | }\r |
21 | \r |
22 | # 5.10.0 has a bug on weaken($hash_ref) which leaks an AV.\r |
23 | my $expected = ( $] == 5.010_000 ? 1 : 0 );\r |
24 | \r |
25 | leaks_cmp_ok {\r |
26 | Mouse::Meta::Class->create_anon_class();\r |
27 | } '<=', $expected, 'create_anon_class()';\r |
28 | \r |
29 | leaks_cmp_ok {\r |
30 | Mouse::Meta::Class->create_anon_class(superclasses => ['Mouse::Meta::Class']);\r |
31 | } '<=', $expected, 'create_anon_class() with superclasses';\r |
32 | \r |
33 | leaks_cmp_ok {\r |
34 | Mouse::Meta::Class->create_anon_class(attributes => [\r |
69645eb8 |
35 | Mouse::Meta::Attribute->new('foo', is => 'bare'),\r |
2669196e |
36 | ]);\r |
37 | } '<=', $expected, 'create_anon_class() with attributes';\r |
38 | \r |
39 | leaks_cmp_ok {\r |
40 | Mouse::Meta::Class->create_anon_class(roles => [qw(MyRole)]);\r |
41 | } '<=', $expected, 'create_anon_class() with roles';\r |
42 | \r |
43 | \r |
44 | leaks_cmp_ok {\r |
45 | Mouse::Meta::Role->create_anon_role();\r |
46 | } '<=', $expected, 'create_anon_role()';\r |
47 | \r |
48 | leaks_cmp_ok {\r |
49 | Mouse::Meta::Role->create_anon_role(roles => [qw(MyRole)]);\r |
50 | } '<=', $expected, 'create_anon_role() with roles';\r |
51 | \r |