Commit | Line | Data |
192c1e27 |
1 | #!./perl |
2 | |
3 | BEGIN { |
0214bff6 |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | require './test.pl'; |
192c1e27 |
7 | } |
8 | |
9 | use strict; |
10 | use warnings; |
11 | |
192c1e27 |
12 | use re qw(is_regexp regexp_pattern |
13 | regname regnames regnames_count); |
14 | { |
15 | my $qr=qr/foo/pi; |
df052ff8 |
16 | my $rx = $$qr; |
17 | |
18 | ok(is_regexp($qr),'is_regexp(REGEXP ref)'); |
19 | ok(is_regexp($rx),'is_regexp(REGEXP)'); |
192c1e27 |
20 | ok(!is_regexp(''),'is_regexp("")'); |
df052ff8 |
21 | |
22 | is((regexp_pattern($qr))[0],'foo','regexp_pattern[0] (ref)'); |
23 | is((regexp_pattern($qr))[1],'ip','regexp_pattern[1] (ref)'); |
24 | is(regexp_pattern($qr),'(?pi-xsm:foo)','scalar regexp_pattern (ref)'); |
25 | |
26 | is((regexp_pattern($rx))[0],'foo','regexp_pattern[0] (bare REGEXP)'); |
27 | is((regexp_pattern($rx))[1],'ip','regexp_pattern[1] (bare REGEXP)'); |
28 | is(regexp_pattern($rx),'(?pi-xsm:foo)', |
29 | 'scalar regexp_pattern (bare REGEXP)'); |
30 | |
192c1e27 |
31 | ok(!regexp_pattern(''),'!regexp_pattern("")'); |
32 | } |
33 | |
34 | if ('1234'=~/(?:(?<A>\d)|(?<C>!))(?<B>\d)(?<A>\d)(?<B>\d)/){ |
35 | my @names = sort +regnames(); |
36 | is("@names","A B","regnames"); |
37 | @names = sort +regnames(0); |
38 | is("@names","A B","regnames"); |
39 | my $names = regnames(); |
40 | is($names, "B", "regnames in scalar context"); |
41 | @names = sort +regnames(1); |
42 | is("@names","A B C","regnames"); |
43 | is(join("", @{regname("A",1)}),"13"); |
44 | is(join("", @{regname("B",1)}),"24"); |
45 | { |
46 | if ('foobar'=~/(?<foo>foo)(?<bar>bar)/) { |
47 | is(regnames_count(),2); |
48 | } else { |
49 | ok(0); ok(0); |
50 | } |
51 | } |
52 | is(regnames_count(),3); |
53 | } |
54 | # New tests above this line, don't forget to update the test count below! |
df052ff8 |
55 | BEGIN { plan tests => 18 } |
192c1e27 |
56 | # No tests here! |