Re: Off by one in the trie code?
[p5sagit/p5-mst-13.2.git] / ext / re / t / lexical_debug.t
1 #!./perl
2
3 BEGIN {
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
13 use strict;
14
15 # must use a BEGIN or the prototypes wont be respected meaning 
16     # tests could pass that shouldn't
17 BEGIN { require "./test.pl"; }
18 my $out = runperl(progfile => "../ext/re/t/lexical_debug.pl", stderr => 1 );
19
20 print "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
26 ok( $out =~ /EXACT <foo>/, "Expect 'foo'"    );
27 ok( $out !~ /EXACT <bar>/, "No 'bar'"        );
28 ok( $out =~ /EXACT <baz>/, "Expect 'baz'"    );
29 ok( $out !~ /EXACT <bop>/, "No 'bop'"        );
30 ok( $out =~ /EXACT <fip>/, "Expect 'fip'"    );
31 ok( $out !~ /EXACT <fop>/, "No 'baz'"        );
32 ok( $out =~ /<zil>/,       "Got 'zil'"       ); # in a TRIE so no EXACT
33 ok( $out =~ /<zoo>/,       "Got 'zoo'"       ); # in a TRIE so no EXACT
34 ok( $out =~ /<zap>/,       "Got 'zap'"       ); # in a TRIE so no EXACT
35 ok( $out =~ /Count=7\n/,   "Count is 7") 
36     or diag($out);
37