# This set of tests exercises the serialization/deserialization and code copy # functions in the library. It does not use UTF or JIT. #forbid_utf # Compile several patterns, push them onto the stack, and then write them # all to a file. #pattern push /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) (?(DEFINE) (?<NAME_PAT>[a-z]+) (?<ADDRESS_PAT>\d+) )/x /^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i #save testsaved1 # Do it again for some more patterns. /(*MARK:A)(*SKIP:B)(C|X)/mark /(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames #save testsaved2 #pattern -push # Reload the patterns, then pop them one by one and check them. #load testsaved1 #load testsaved2 #pop info foofoo barbar #pop mark C \= Expect no match D #pop AmanaplanacanalPanama #pop info metcalfe 33 # Check for an error when different tables are used. /abc/push,tables=1 /xyz/push,tables=2 #save testsaved1 #pop xyz #pop abc #pop should give an error pqr /abcd/pushcopy abcd #pop abcd #pop should give an error /abcd/push #popcopy abcd #pop abcd /abcd/push #save testsaved1 #pop should give an error #load testsaved1 #popcopy abcd #pop abcd #pop should give an error # End of testinput20