Move t/*/t into t/001_mouse
[gitmo/Mouse.git] / t / 001_mouse / 054-anon-leak.t
CommitLineData
2669196e 1#!perl\r
2# This is based on Class-MOP/t/312_anon_class_leak.t\r
3use strict;\r
4use warnings;\r
5use Test::More;\r
6\r
7BEGIN {\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
12plan tests => 6;\r
13\r
14use 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
23my $expected = ( $] == 5.010_000 ? 1 : 0 );\r
24\r
25leaks_cmp_ok {\r
26 Mouse::Meta::Class->create_anon_class();\r
27} '<=', $expected, 'create_anon_class()';\r
28\r
29leaks_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
33leaks_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
39leaks_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
44leaks_cmp_ok {\r
45 Mouse::Meta::Role->create_anon_role();\r
46} '<=', $expected, 'create_anon_role()';\r
47\r
48leaks_cmp_ok {\r
49 Mouse::Meta::Role->create_anon_role(roles => [qw(MyRole)]);\r
50} '<=', $expected, 'create_anon_role() with roles';\r
51\r