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