Add tests for memory leaks
[gitmo/Moose.git] / t / bugs / memory_leaks.t
CommitLineData
98f27a2f 1use strict;
2use warnings;
3
4use Test::Requires {
5 'Test::LeakTrace' => '0.01',
6};
7
8use Test::More;
9
10use Moose;
11
12{
13 package MyRole;
14 use Moose::Role;
15 sub myname { "I'm a role" }
16}
17
18no_leaks_ok(
19 sub {
20 Moose::Meta::Class->create_anon_class->new_object;
21 },
22 'anonymous class with no roles is leak-free'
23);
24
25no_leaks_ok(
26 sub {
27 Moose::Meta::Role->initialize('MyRole2');
28 },
29 'Moose::Meta::Role->initialize is leak-free'
30);
31
32no_leaks_ok(
33 sub {
34 Moose::Meta::Class->create('MyClass2')->new_object;
35 },
36 'creating named class is leak-free'
37);
38
39no_leaks_ok(
40 sub {
41 Moose::Meta::Class->create( 'MyClass', roles => ['MyRole'] )
42 ->new_object;
43 },
44 'named class with roles is leak-free'
45);
46
47no_leaks_ok(
48 sub {
49 Moose::Meta::Role->create_anon_role;
50 },
51 'anonymous role is leak-free'
52);
53
54no_leaks_ok(
55 sub {
56 my $meta = Moose::Meta::Class->create_anon_class;
57 $meta->make_immutable;
58 $meta->new_object;
59 },
60 'making an anon class immutable is leak-free'
61);
62
63done_testing;