You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# 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 ** Ignored when compiled pattern is stacked with 'push': 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 Capture group count = 2 Max back reference = 2 Named capture groups: n 1 n 2 Options: dupnames Starting code units: b f Subject length lower bound = 6 foofoo 0: foofoo 1: foo barbar 0: barbar 1: <unset> 2: bar
#pop mark C 0: C 1: C MK: A \= Expect no match D No match, mark = A
#pop AmanaplanacanalPanama 0: AmanaplanacanalPanama 1: <unset> 2: <unset> 3: AmanaplanacanalPanama 4: A
#pop info Capture group count = 4 Named capture groups: ADDR 2 ADDRESS_PAT 4 NAME 1 NAME_PAT 3 Options: extended Subject length lower bound = 3 metcalfe 33 0: metcalfe 33 1: metcalfe 2: 33
# Check for an error when different tables are used.
/abc/push,tables=1 /xyz/push,tables=2 #save testsaved1 Serialization failed: error -30: patterns do not all use the same character tables
#pop xyz 0: xyz
#pop abc 0: abc
#pop should give an error ** Can't pop off an empty stack pqr
/abcd/pushcopy abcd 0: abcd
#pop abcd 0: abcd
#pop should give an error ** Can't pop off an empty stack
/abcd/push #popcopy abcd 0: abcd
#pop abcd 0: abcd
/abcd/push #save testsaved1 #pop should give an error ** Can't pop off an empty stack
#load testsaved1 #popcopy abcd 0: abcd
#pop abcd 0: abcd
#pop should give an error ** Can't pop off an empty stack
/abcd/pushtablescopy abcd 0: abcd
#popcopy abcd 0: abcd
#pop abcd 0: abcd
# Must only specify one of these
//push,pushcopy ** Not allowed together: push pushcopy
//push,pushtablescopy ** Not allowed together: push pushtablescopy
//pushcopy,pushtablescopy ** Not allowed together: pushcopy pushtablescopy
# End of testinput20
|