The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# vim:ft=perl
use Test::More qw(no_plan);

use_ok("Devel::DProfPP");
my $thing;
my ($call_count, $leave_count);

my @times;

sub my_enter { $call_count++; }

sub my_leave { my $name = $_[1];
    $leave_count++;
    if ($name eq "main::_path") { @times = ($thing->stack)[-1]->cum_times; }
}

eval {$thing = new Devel::DProfPP; };
like ($@, qr/^Can't open/);
eval { $thing = new Devel::DProfPP(
    file => "t/tmon.out", 
    enter => \&my_enter, 
    leave => \&my_leave); };
isa_ok($thing, "Devel::DProfPP");
$thing->parse;
is_deeply($thing->{header}, {
    hz=>100,
    XS_VERSION=>'DProf 20000000.00_00',
    over_utime=>21, over_stime=>0, over_rtime=>46,
    over_tests=>10000,
    rrun_utime=>67, rrun_stime=>0, rrun_rtime=>135,
    total_marks=>7736              
}, "header is parsed correctly");
is($call_count, 3869, "Right number of enters");
is($leave_count, 3869, "Right number of leaves");
is_deeply(\@times, [0.21,0,0.36], "Correct cumulative times");