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