Blame t/10-set-frames.t

Packit 985e12
use strict;
Packit 985e12
use warnings;
Packit 985e12
Packit 985e12
use Test::More;
Packit 985e12
Packit 985e12
use Devel::StackTrace;
Packit 985e12
Packit 985e12
{
Packit 985e12
    my $trace       = baz();
Packit 985e12
    my $other_trace = bar();
Packit 985e12
Packit 985e12
    $trace->frames( $other_trace->frames );
Packit 985e12
Packit 985e12
    my @f;
Packit 985e12
    while ( my $f = $trace->next_frame ) { push @f, $f; }
Packit 985e12
Packit 985e12
    ok( @f == 1, 'only one frame' );
Packit 985e12
Packit 985e12
    is(
Packit 985e12
        $f[0]->subroutine, 'main::bar',
Packit 985e12
        'First frame subroutine should be main::bar'
Packit 985e12
    );
Packit 985e12
}
Packit 985e12
Packit 985e12
done_testing();
Packit 985e12
Packit 985e12
sub foo {
Packit 985e12
    return Devel::StackTrace->new( skip_frames => 2 );
Packit 985e12
}
Packit 985e12
Packit 985e12
sub bar {
Packit 985e12
    foo();
Packit 985e12
}
Packit 985e12
Packit 985e12
sub baz {
Packit 985e12
    bar();
Packit 985e12
}