Commit | Line | Data |
57fcdb5b |
1 | #!/usr/bin/perl -w |
2 | |
3 | use strict; |
4 | use Test::More tests => 8; |
5 | use Devel::Size ':all'; |
6 | |
7 | sub zwapp; |
8 | sub swoosh($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$); |
9 | sub crunch { |
10 | } |
11 | |
12 | my $whack_size = total_size(\&whack); |
13 | my $zwapp_size = total_size(\&zwapp); |
14 | my $swoosh_size = total_size(\&swoosh); |
15 | my $crunch_size = total_size(\&crunch); |
16 | |
17 | cmp_ok($whack_size, '>', 0, 'CV generated at runtime has a size'); |
18 | cmp_ok($zwapp_size, '>', $whack_size, |
19 | 'CV stubbed at compiletime is larger (CvOUTSIDE is set and followed)'); |
20 | cmp_ok(length prototype \&swoosh, '>', 0, 'prototype has a length'); |
21 | cmp_ok($swoosh_size, '>', $zwapp_size + length prototype \&swoosh, |
22 | 'prototypes add to the size'); |
23 | cmp_ok($crunch_size, '>', $zwapp_size, 'sub bodies add to the size'); |
24 | |
25 | my $anon_proto = sub ($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$) {}; |
26 | my $anon_size = total_size(sub {}); |
27 | my $anon_proto_size = total_size($anon_proto); |
28 | cmp_ok($anon_size, '>', 0, 'anonymous subroutines have a size'); |
29 | cmp_ok(length prototype $anon_proto, '>', 0, 'prototype has a length'); |
30 | cmp_ok($anon_proto_size, '>', $anon_size + length prototype $anon_proto, |
31 | 'prototypes add to the size'); |