xref: /openbsd-src/gnu/usr.bin/perl/ext/re/t/lexical_debug.t (revision 2b0358df1d88d06ef4139321dd05bd5e05d91eaf)
1#!./perl
2
3BEGIN {
4    chdir 't' if -d 't';
5    @INC = '../lib';
6    require Config;
7    if (($Config::Config{'extensions'} !~ /\bre\b/) ){
8	print "1..0 # Skip -- Perl configured without re module\n";
9	exit 0;
10    }
11}
12
13use strict;
14
15# must use a BEGIN or the prototypes wont be respected meaning
16    # tests could pass that shouldn't
17BEGIN { require "./test.pl"; }
18my $out = runperl(progfile => "../ext/re/t/lexical_debug.pl", stderr => 1 );
19
20print "1..10\n";
21
22# Each pattern will produce an EXACT node with a specific string in
23# it, so we will look for that. We can't just look for the string
24# alone as the string being matched against contains all of them.
25
26ok( $out =~ /EXACT <foo>/, "Expect 'foo'"    );
27ok( $out !~ /EXACT <bar>/, "No 'bar'"        );
28ok( $out =~ /EXACT <baz>/, "Expect 'baz'"    );
29ok( $out !~ /EXACT <bop>/, "No 'bop'"        );
30ok( $out =~ /EXACT <fip>/, "Expect 'fip'"    );
31ok( $out !~ /EXACT <fop>/, "No 'baz'"        );
32ok( $out =~ /<liz>/,       "Got 'liz'"       ); # in a TRIE so no EXACT
33ok( $out =~ /<zoo>/,       "Got 'zoo'"       ); # in a TRIE so no EXACT
34ok( $out =~ /<zap>/,       "Got 'zap'"       ); # in a TRIE so no EXACT
35ok( $out =~ /Count=7\n/,   "Count is 7")
36    or diag($out);
37
38