This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
line_debug.t: Add diagnostics
[perl5.git] / t / comp / line_debug.t
1 #!./perl
2
3 chdir 't' if -d 't';
4
5 sub ok {
6     my($test,$ok) = @_;
7     print "not " unless $ok;
8     print "ok $test\n";
9     $ok;
10 }
11
12 # The auxiliary file contains a bunch of code that systematically exercises
13 # every place that can call lex_next_chunk() (except for the one that's not
14 # used by the main Perl parser).
15 open AUX, "<", "comp/line_debug_0.aux" or die $!;
16 my @lines = <AUX>;
17 close AUX;
18 my $nlines = @lines;
19
20 print "1..", 2+$nlines, "\n";
21
22 $^P = 0x2;
23 do "comp/line_debug_0.aux";
24
25 ok 1, scalar(@{"_<comp/line_debug_0.aux"}) == 1+$nlines;
26 ok 2, !defined(${"_<comp/line_debug_0.aux"}[0]);
27
28 for(1..$nlines) {
29     if (!ok 2+$_, ${"_<comp/line_debug_0.aux"}[$_] eq $lines[$_-1]) {
30         print "# Got: ", ${"_<comp/line_debug_0.aux"}[$_]//"undef\n";
31         print "# Expected: $lines[$_-1]";
32     }
33 }
34
35 1;