X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcode.t;h=f2e1e2625f7e29cb213f4a1f9652beab9727f310;hb=95dc1714d10e347894254292580004dd194f58db;hp=65aca0e88297e7cffb09a082a1b3c0d04d43210e;hpb=57fcdb5b2135b53c38a100282adcf8a239eb918c;p=p5sagit%2FDevel-Size.git diff --git a/t/code.t b/t/code.t index 65aca0e..f2e1e26 100644 --- a/t/code.t +++ b/t/code.t @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use Test::More tests => 8; +use Test::More tests => 12; use Devel::Size ':all'; sub zwapp; @@ -29,3 +29,22 @@ cmp_ok($anon_size, '>', 0, 'anonymous subroutines have a size'); cmp_ok(length prototype $anon_proto, '>', 0, 'prototype has a length'); cmp_ok($anon_proto_size, '>', $anon_size + length prototype $anon_proto, 'prototypes add to the size'); + +SKIP: { + use vars '@b'; + my $aelemfast_lex = total_size(sub {my @a; $a[0]}); + my $aelemfast = total_size(sub {my @a; $b[0]}); + + # This one is sane even before Dave's lexical aelemfast changes: + cmp_ok($aelemfast_lex, '>', $anon_size, + 'aelemfast for a lexical is handled correctly'); + skip('alemfast was extended to lexicals after this perl was released', 1) + if $] < 5.008004; + cmp_ok($aelemfast, '>', $aelemfast_lex, + 'aelemfast for a package variable is larger'); +} + +my $short_pvop = total_size(sub {goto GLIT}); +my $long_pvop = total_size(sub {goto KREEK_KREEK_CLANK_CLANK}); +cmp_ok($short_pvop, '>', $anon_size, 'OPc_PVOP can be measured'); +is($long_pvop, $short_pvop + 19, 'the only size difference is the label length');