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