use strict; use Test::More; use lib qw(t/lib); use NYTProfTest; run_test_group({ extra_test_count => 3, extra_test_code => sub { my ($profile, $env) = @_; is_deeply(sub_calls($profile), { 'main::sub1' => 1, 'DB::disable_profile' => 1, 'main::CORE:unlink' => 1, }); my $file_b = "nytprof-test51-b.out"; my $file_c = "nytprof-test51-c.out"; my $pb = Devel::NYTProf::Data->new( { filename => $file_b, quiet => 0 } ); is_deeply(sub_calls($pb), { 'main::sub1' => 1, 'main::sub3' => 1, 'DB::disable_profile' => 1, 'main::CORE:unlink' => 1, }, "$file_b sub calls"); my $pc = Devel::NYTProf::Data->new( { filename => $file_c, quiet => 0 } ); is_deeply(sub_calls($pc), { 'main::sub7' => 1, 'DB::finish_profile' => 1, }, "$file_c sub calls"); }, }); sub sub_calls { my ($profile) = @_; my %sub_calls; for my $si (values %{ $profile->subname_subinfo_map }) { my $calls = $si->calls or next; $sub_calls{ $si->subname } = $calls; } print "sub_calls: { @{[ %sub_calls ]} }\n"; return \%sub_calls; }