The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use warnings;
use lib 'lib';
use Test::More tests => 21;
use Devel::ebug;

my $ebug = Devel::ebug->new;
$ebug->program("t/calc.pl");
$ebug->backend("$^X bin/ebug_backend_perl");
$ebug->load;

is($ebug->line, 3);
is($ebug->subroutine, "main");
is($ebug->package, "main");
is($ebug->filename, "t/calc.pl");
$ebug->step;
is($ebug->line, 4);
$ebug->step;
is($ebug->line, 5);
$ebug->undo;
is($ebug->line, 4);
$ebug->undo;
is($ebug->line, 3);

$ebug->break_point(6);
$ebug->break_point(12);
$ebug->break_point(9);

$ebug->undo;
is_deeply([$ebug->break_points], [6, 12]);
is($ebug->line, 3);
is($ebug->subroutine, "main");
is($ebug->package, "main");
is($ebug->filename, "t/calc.pl");
$ebug->run;
is($ebug->line, 12);
$ebug->run;
is($ebug->line, 6);
$ebug->step;
$ebug->step;
is($ebug->pad->{'$e'}, 5);

$ebug->undo;
is($ebug->line, 7);
is($ebug->subroutine, "main");
is($ebug->package, "main");
is($ebug->filename, "t/calc.pl");
is($ebug->pad->{'$e'}, 4);