xref: /aosp_15_r20/external/pcre/testdata/testinput20 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# This set of tests exercises the serialization/deserialization and code copy
2*22dc650dSSadaf Ebrahimi# functions in the library. It does not use UTF or JIT.
3*22dc650dSSadaf Ebrahimi
4*22dc650dSSadaf Ebrahimi#forbid_utf
5*22dc650dSSadaf Ebrahimi
6*22dc650dSSadaf Ebrahimi# Compile several patterns, push them onto the stack, and then write them
7*22dc650dSSadaf Ebrahimi# all to a file.
8*22dc650dSSadaf Ebrahimi
9*22dc650dSSadaf Ebrahimi#pattern push
10*22dc650dSSadaf Ebrahimi
11*22dc650dSSadaf Ebrahimi/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
12*22dc650dSSadaf Ebrahimi  (?(DEFINE)
13*22dc650dSSadaf Ebrahimi  (?<NAME_PAT>[a-z]+)
14*22dc650dSSadaf Ebrahimi  (?<ADDRESS_PAT>\d+)
15*22dc650dSSadaf Ebrahimi  )/x
16*22dc650dSSadaf Ebrahimi/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i
17*22dc650dSSadaf Ebrahimi
18*22dc650dSSadaf Ebrahimi#save testsaved1
19*22dc650dSSadaf Ebrahimi
20*22dc650dSSadaf Ebrahimi# Do it again for some more patterns.
21*22dc650dSSadaf Ebrahimi
22*22dc650dSSadaf Ebrahimi/(*MARK:A)(*SKIP:B)(C|X)/mark
23*22dc650dSSadaf Ebrahimi/(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames
24*22dc650dSSadaf Ebrahimi
25*22dc650dSSadaf Ebrahimi#save testsaved2
26*22dc650dSSadaf Ebrahimi#pattern -push
27*22dc650dSSadaf Ebrahimi
28*22dc650dSSadaf Ebrahimi# Reload the patterns, then pop them one by one and check them.
29*22dc650dSSadaf Ebrahimi
30*22dc650dSSadaf Ebrahimi#load testsaved1
31*22dc650dSSadaf Ebrahimi#load testsaved2
32*22dc650dSSadaf Ebrahimi
33*22dc650dSSadaf Ebrahimi#pop info
34*22dc650dSSadaf Ebrahimi    foofoo
35*22dc650dSSadaf Ebrahimi    barbar
36*22dc650dSSadaf Ebrahimi
37*22dc650dSSadaf Ebrahimi#pop mark
38*22dc650dSSadaf Ebrahimi    C
39*22dc650dSSadaf Ebrahimi\= Expect no match
40*22dc650dSSadaf Ebrahimi    D
41*22dc650dSSadaf Ebrahimi
42*22dc650dSSadaf Ebrahimi#pop
43*22dc650dSSadaf Ebrahimi    AmanaplanacanalPanama
44*22dc650dSSadaf Ebrahimi
45*22dc650dSSadaf Ebrahimi#pop info
46*22dc650dSSadaf Ebrahimi    metcalfe 33
47*22dc650dSSadaf Ebrahimi
48*22dc650dSSadaf Ebrahimi# Check for an error when different tables are used.
49*22dc650dSSadaf Ebrahimi
50*22dc650dSSadaf Ebrahimi/abc/push,tables=1
51*22dc650dSSadaf Ebrahimi/xyz/push,tables=2
52*22dc650dSSadaf Ebrahimi#save testsaved1
53*22dc650dSSadaf Ebrahimi
54*22dc650dSSadaf Ebrahimi#pop
55*22dc650dSSadaf Ebrahimi    xyz
56*22dc650dSSadaf Ebrahimi
57*22dc650dSSadaf Ebrahimi#pop
58*22dc650dSSadaf Ebrahimi    abc
59*22dc650dSSadaf Ebrahimi
60*22dc650dSSadaf Ebrahimi#pop should give an error
61*22dc650dSSadaf Ebrahimi    pqr
62*22dc650dSSadaf Ebrahimi
63*22dc650dSSadaf Ebrahimi/abcd/pushcopy
64*22dc650dSSadaf Ebrahimi    abcd
65*22dc650dSSadaf Ebrahimi
66*22dc650dSSadaf Ebrahimi#pop
67*22dc650dSSadaf Ebrahimi    abcd
68*22dc650dSSadaf Ebrahimi
69*22dc650dSSadaf Ebrahimi#pop should give an error
70*22dc650dSSadaf Ebrahimi
71*22dc650dSSadaf Ebrahimi/abcd/push
72*22dc650dSSadaf Ebrahimi#popcopy
73*22dc650dSSadaf Ebrahimi    abcd
74*22dc650dSSadaf Ebrahimi
75*22dc650dSSadaf Ebrahimi#pop
76*22dc650dSSadaf Ebrahimi    abcd
77*22dc650dSSadaf Ebrahimi
78*22dc650dSSadaf Ebrahimi/abcd/push
79*22dc650dSSadaf Ebrahimi#save testsaved1
80*22dc650dSSadaf Ebrahimi#pop should give an error
81*22dc650dSSadaf Ebrahimi
82*22dc650dSSadaf Ebrahimi#load testsaved1
83*22dc650dSSadaf Ebrahimi#popcopy
84*22dc650dSSadaf Ebrahimi    abcd
85*22dc650dSSadaf Ebrahimi
86*22dc650dSSadaf Ebrahimi#pop
87*22dc650dSSadaf Ebrahimi    abcd
88*22dc650dSSadaf Ebrahimi
89*22dc650dSSadaf Ebrahimi#pop should give an error
90*22dc650dSSadaf Ebrahimi
91*22dc650dSSadaf Ebrahimi/abcd/pushtablescopy
92*22dc650dSSadaf Ebrahimi    abcd
93*22dc650dSSadaf Ebrahimi
94*22dc650dSSadaf Ebrahimi#popcopy
95*22dc650dSSadaf Ebrahimi    abcd
96*22dc650dSSadaf Ebrahimi
97*22dc650dSSadaf Ebrahimi#pop
98*22dc650dSSadaf Ebrahimi    abcd
99*22dc650dSSadaf Ebrahimi
100*22dc650dSSadaf Ebrahimi# Must only specify one of these
101*22dc650dSSadaf Ebrahimi
102*22dc650dSSadaf Ebrahimi//push,pushcopy
103*22dc650dSSadaf Ebrahimi
104*22dc650dSSadaf Ebrahimi//push,pushtablescopy
105*22dc650dSSadaf Ebrahimi
106*22dc650dSSadaf Ebrahimi//pushcopy,pushtablescopy
107*22dc650dSSadaf Ebrahimi
108*22dc650dSSadaf Ebrahimi# End of testinput20
109