> +
> +
>
+> # List operations
+>
+> filter: "a:b:c"
+> filter: a:c
+> filter: a'c
+> filter: ''a' ''c
+> filter: ""
+>
+> map: ""
+> map: a:b:c
+> map: ::a::: ::b::: ::c::
+> map: fail string
+> map: []:[b]:[c]
+>
+> reduce: "+"
+> reduce: +abc
+> reduce: 6
+> reduce: 9
+>
+> # Tests with iscntrl() and illegal separators
+>
+> map: 'a'
+''
+'b'
+'c'
+>
+> Failed: error in expression evaluation: expecting number or opening parenthesis (after processing "0+") inside "reduce" item
+> reduce: 6
+> reduce: 6
+> reduce: 6
+>
> # Operators
>
> addrss: local-part@dom.ain
> addrss: local-part@dom.ain
> domain: dom.ain
> domain: dom.ain
+>
+> addresses: ''abc@xyz' ''pqr@xyz
+> addresses: local-part@dom.ain
+> addresses: local-part@dom.ain+xyz@abc
+> addresses: local-part@dom.ain:xyz@abc:p@q:r@s
+> addresses:
+>
> escape: B7\267F2\362
> eval: 2
> eval: 7
> match_ip: 12 true
> match_ip: 13 true
> match_ip: 14 true
+> match_ip: 15 true
>
> queue_running: n
> first_delivery: n
>
> # PRVS
>
-> prvs=userx/xxxxxxxxxx@test.ex
-> prvs=userx/xxxxxxxxxx@test.ex
-> prvs=userx/xxxxxxxxxx@test.ex
+> prvs=xxxxxxxxxx=userx@test.ex
+> prvs=xxxxxxxxxx=userx@test.ex
+> prvs=xxxxxxxxxx=userx@test.ex
>
> # Syntax errors
>
> Failed: non-digit after underscore in "substr_1_"
> Failed: non-digit after underscore in "substr__3"
>
+> # Iterations: forany and forall
+>
+> yes
+> yes
+> yes
+> no
+> yes
+> no
+> no
+> yes
+> yes
+>
+> Failed: unknown condition "yes" inside "forany" condition
+> Failed: missing } at end of condition inside "forany"
+>
+> yes
+> no
+> no
+> no
+>
+> no
+> yes
+> yes
+> yes
+>
+> # Expect yes
+> outer=yes item='' (unset)
+>
+> # Expect no
+> outer=no
+>
+> # Error inside nest - check message is helpful
+> Failed: missing } at end of condition inside "forall" inside "forany" condition
+>
+>
> # Miscellaneous (for bug fixes, etc)
>
> true