1#!perl
2use strict;
3use warnings;
4use Test::More tests => 30;
5use Test::Expect;
6
7expect_run
8(
9    command => "$^X -Ilib -MCarp::REPL=noprofile t/scripts/12-env.pl",
10    prompt  => '$ ',
11    quit    => 'exit',
12);
13
14expect_send('1 + 1');
15expect_like(qr/\b2\b/, 'in the REPL');
16
17expect_send(':l');
18expect_like(qr/12-env\.pl/, 'filename is given');
19expect_like(qr/^\*49:     die \@_;/m, 'line with the error has a star');
20expect_like(qr/^ 44:     \$closure->\(sort values \%args\);/m);
21expect_like(qr/^ 45: \}/m);
22expect_like(qr/^ 46: /m);
23expect_like(qr/^ 47: sub five/m);
24expect_like(qr/^ 48: \{/m);
25expect_like(qr/^ 50: \}/m);
26expect_like(qr/^ 51: /m);
27expect_like(qr/^ 52: zero\(\);/m);
28expect_like(qr/^ 53: /m);
29
30expect_send(':u');
31expect_like(qr/Now at.*frame 1/, 'up a frame');
32
33expect_send(':l');
34expect_like(qr/12-env\.pl/, 'filename is given');
35expect_like(qr/^ 37: \{/m);
36expect_like(qr/^ 38:     my \%args = \@_;/m);
37expect_like(qr/^ 39: /m);
38expect_like(qr/^ 40:     my \$closure = sub \{/m);
39expect_like(qr/^ 41:         my \(\$alpha, \$beta, \$gamma, \$delta\) = \@_;/m);
40expect_like(qr/^\*42:         five\(\$alpha \+ \$beta \+ \$gamma \+ \$delta\);/m);
41expect_like(qr/^ 43:     \};/m);
42expect_like(qr/^ 44:     \$closure->\(sort values %args\);/m);
43expect_like(qr/^ 45: \}/m);
44expect_like(qr/^ 46: /m);
45expect_like(qr/^ 47: sub five/m);
46
47