# Tests CORE::GLOBAL::foo plus assorted data model methods use strict; use Test::More; use lib qw(t/lib); use NYTProfTest; eval "use Sub::Name 0.04; 1" or plan skip_all => "Sub::Name 0.04 required (0.06+ preferred)"; print "Sub::Name $Sub::Name::VERSION $INC{'Sub/Name.pm'}\n"; use Devel::NYTProf::Run qw(profile_this); my $src_code = join("", ); run_test_group( { extra_options => { start => 'init', compress => 1, leave => 0, stmts => 0, slowops => 0, }, extra_test_count => 6, extra_test_code => sub { my ($profile, $env) = @_; $profile = profile_this( src_code => $src_code, out_file => $env->{file}, skip_sitecustomize => 1, #htmlopen => 1, ); isa_ok $profile, 'Devel::NYTProf::Data'; my $subs = $profile->subname_subinfo_map; my $sub = $subs->{'main::named'}; ok $sub; is $sub->calls, 1; is $sub->subname, 'main::named'; SKIP: { skip "Sub::Name 0.06 required for subname line numbers", 2 if $Sub::Name::VERSION <= 0.06; is $sub->first_line, 3; is $sub->last_line, 3; } }, }); __DATA__ #!perl use Sub::Name; (subname 'named' => sub { print "sub called\n" })->();