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