| # 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 | |
| /abcd/pushtablescopy | |
| abcd | |
| #popcopy | |
| abcd | |
| #pop | |
| abcd | |
| # Must only specify one of these | |
| //push,pushcopy | |
| //push,pushtablescopy | |
| //pushcopy,pushtablescopy | |
| # End of testinput20 | |