Skip tests for strict constructor on Moose
[gitmo/Mouse.git] / t / 001_mouse / 058-accessor-leaks.t
CommitLineData
460eb22d 1#!perl
2# This is based on Class-MOP/t/312_anon_class_leak.t
3use strict;
4use warnings;
5use Test::More;
6
7BEGIN {
8 eval "use Test::LeakTrace 0.10;";
9 plan skip_all => "Test::LeakTrace 0.10 is required for this test" if $@;
10}
11
12plan tests => 11;
13
14{
15 package MyClass;
16 use Mouse;
17
18 has simple => (is => 'rw');
19
20 has w_int => (is => 'rw', isa => 'Int');
21 has w_int_or_undef
22 => (is => 'rw', isa => 'Int | Undef');
23 has w_foo => (is => 'rw', isa => 'Foo');
24 has w_aint=> (is => 'rw', isa => 'ArrayRef[Int]');
25}
26
27no_leaks_ok{
28 MyClass->new();
29};
30
31my $o = MyClass->new;
32no_leaks_ok {
33 $o->simple(10);
34};
35no_leaks_ok {
36 $o->simple();
37};
38
39no_leaks_ok {
40 $o->w_int(10);
41};
42no_leaks_ok {
43 $o->w_int();
44};
45
46no_leaks_ok {
47 $o->w_int_or_undef(10);
48};
49no_leaks_ok {
50 $o->w_int_or_undef();
51};
52
53my $foo = bless {}, 'Foo';
54no_leaks_ok {
55 $o->w_foo($foo);
56};
57no_leaks_ok {
58 $o->w_int();
59};
60
61my $aref = [10];
62no_leaks_ok {
63 $o->w_aint($aref);
64};
65no_leaks_ok {
66 $o->w_aint();
67};
68
69
70