The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use 5.010;
use strict;
use warnings FATAL => 'all';

# Turn on $OUTPUT_AUTOFLUSH
local $| = 1;

use Test::More;
use Test::Deep;
plan( tests => 7 );


#Top
BEGIN {
  require "./t/lib/Debugger.pm";
  t::lib::Debugger->import;
}

start_script('t/eg/03-return.pl');
my $debugger;
$debugger = start_debugger();
my $out = $debugger->get;


#Body
$debugger->step_in;

ok( $debugger->set_breakpoint( 't/eg/03-return.pl', 'g' ), 'set_breakpoint' );

ok( $debugger->show_breakpoints() =~ m{t/eg/03-return.pl:}, 'show_breakpoints' );

$debugger->run;

#lets ask debugger where we are then :)
like( $debugger->show_line(), qr/return.pl:22/, 'check breakpoint' );

ok( $debugger->remove_breakpoint( 't/eg/03-return.pl', 'g' ), 'remove breakpoint' );

ok( $debugger->show_breakpoints() =~ m{t/eg/03-return.pl:}, 'show_breakpoints' );

ok( !$debugger->set_breakpoint( 't/eg/03-return.pl', 'missing' ), 'set_breakpoint against missing sub' );

ok( !$debugger->set_breakpoint( 't/eg/03-return.pl', '03' ), 'set_breakpoint line not breakable' );


#Tail
$debugger->quit;
done_testing();

1;

__END__