X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/da47dd4d092ba35e4f8ff055d79693cc1266c816..44b6e099b76f403a55e77650821f8a69e9d2682e:/test/scripts/0000-Basic/0002 diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 index a8fc0bcb2..5ddc9b678 100644 --- a/test/scripts/0000-Basic/0002 +++ b/test/scripts/0000-Basic/0002 @@ -90,6 +90,8 @@ filter: ${filter{a:b:c}{!eq{$item}{b}}} filter: ${filter{<' a'b'c}{!eq{$item}{b}}} filter: ${filter{<' ''a'b' ''c}{!eq{$item}{b}}} filter: "${filter{}{!eq{$item}{b}}}" +# check operation when the condition modifies the 'value' variable +${filter {E} {inlisti{$item}{ e }}} map: "${map{}{$item}}" map: ${map{a:b:c}{$item}} @@ -248,6 +250,10 @@ mask: ${mask:192.168.10.206/33} mask: ${mask:192.168.10.206/0} mask: ${mask:192.168.10.206} mask: ${mask:a.b.c.d} +mask: ${mask:2a00:2:3:4:5:6:7:8/79} +mask: ${mask:2a00:2:3:4:5:6:7:8/128} +mask: ${mask:2a00:2:3:4:5:6:7:8/129} +mask_n: ${mask_n:2a00:2:3:4:5:6:7:8/79} ipv6denorm: ${ipv6denorm:::1} ipv6denorm: ${ipv6denorm:fe00::1} ipv6denorm: ${ipv6denorm:192.168.0.1} @@ -258,7 +264,7 @@ ipv6norm: ${ipv6norm:2a00::1} ipv6norm: ${ipv6norm:2a00:eadf:0000:0000:0000:0000:0001:0000} ipv6norm: ${ipv6norm:2a00:eadf:0000:0001:0000:0000:0000:0000} ipv6norm: ${ipv6norm:2a00:0:0:0::} -ipv6norm: ${ipv6norm:2a00:2:3:4:5:6:7:8} +ipv6norm: ${ipv6norm:2a00:2:3:4:5:6:7:8}trailing_text nhash: ${nhash_24:monty} ${nhash_8_63:monty python} lc/uc: ${lc:The Quick} ${uc: Brown Fox} length: ${length_10:The quick brown fox} ${l_10:abc} @@ -461,6 +467,8 @@ match: ${if match{abcd}{^\N([ab]+)(\w+)$\N}{$2$1}fail} match: ${if match{abcd}{^([ab]+)(\\w+)\$}{$2$1}fail} match: ${if match{wxyz}{^([ab]+)(\\w+)\$}{$2$1}fail} match: ${if match{abcd}{^([ab]+)(\\w+)\$}{$2[${if match{xyz}{(.*)}{$1}fail}]$1}fail} +# check for empty capture group +match: ${if match{abc}{\N^(\S+)\s*(\S.+)*$\N}{<$2>}{}} match_domain: ${if match_domain{a.b.c}{x.y.z:a.b.c:p.q.r}{yes}{no}} match_domain: ${if match_domain{a.b.c}{x.y.z:p.q.r}{yes}{no}} @@ -526,28 +534,50 @@ acl if: ${if acl {{a_defer}{argN}{arg2}} {Y:$value}{N:$value}} # Lookups: DIR is the testing directory. In this test we can only use the # lookups that are required in all cases. -${lookup{postmaster}lsearch{DIR/aux-fixed/0002.aliases}{$value}fail} +${lookup{postmaster}lsearch {DIR/aux-fixed/0002.aliases}{$value}fail} +${lookup{postmaster}lsearch,ret=full{DIR/aux-fixed/0002.aliases}{$value}fail} ${lookup{x@y}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail} -${lookup{x@z}lsearch*{DIR/aux-fixed/0002.starat}{$value}fail} +${lookup{x@z}lsearch* {DIR/aux-fixed/0002.starat}{$value}fail} ${lookup{x@z}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail} ${lookup{x@w}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail} -${lookup{a.b.c.d}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} -${lookup{x.y.z}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}{failed x.y.z}} -${lookup{p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} -${lookup{o.p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} -${lookup{m.n.o.p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} -${lookup{x.y.z}partial1-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} -${lookup{x.y.z}partial0-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} - -q1: ${lookup{abc}lsearch{DIR/aux-fixed/0002.quoted}} -q2: ${lookup{xyz}lsearch{DIR/aux-fixed/0002.quoted}} -q3: ${lookup{pqr}lsearch{DIR/aux-fixed/0002.quoted}} -q4: ${lookup{a:b}lsearch{DIR/aux-fixed/0002.quoted}} -q5: ${lookup{"quoted"}lsearch{DIR/aux-fixed/0002.quoted}} +${lookup{x@y}lsearch*@,ret=full {DIR/aux-fixed/0002.starat}{$value}fail} +${lookup{x@z}lsearch*,ret=full {DIR/aux-fixed/0002.starat}{$value}fail} +${lookup{x@z}lsearch*@,ret=full {DIR/aux-fixed/0002.starat}{$value}fail} +${lookup{x@w}lsearch*@,ret=full {DIR/aux-fixed/0002.starat}{$value}fail} + +${lookup{a.b.c.d} partial-lsearch {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial-lsearch {DIR/aux-fixed/0002.domains}{$value}{failed x.y.z}} +${lookup{p.q} partial-lsearch {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{o.p.q} partial-lsearch {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{m.n.o.p.q}partial-lsearch {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial1-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial0-lsearch{DIR/aux-fixed/0002.domains}{$value}fail} + +${lookup{a.b.c.d} partial-lsearch,ret=full {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial-lsearch,ret=full {DIR/aux-fixed/0002.domains}{$value}{failed x.y.z}} +${lookup{p.q} partial-lsearch,ret=full {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{o.p.q} partial-lsearch,ret=full {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{m.n.o.p.q}partial-lsearch,ret=full {DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial1-lsearch,ret=full{DIR/aux-fixed/0002.domains}{$value}fail} +${lookup{x.y.z} partial0-lsearch,ret=full{DIR/aux-fixed/0002.domains}{$value}fail} + +q1: ${lookup{abc} lsearch{DIR/aux-fixed/0002.quoted}} +q2: ${lookup{xyz} lsearch{DIR/aux-fixed/0002.quoted}} +q3: ${lookup{pqr} lsearch{DIR/aux-fixed/0002.quoted}} +q4: ${lookup{a:b} lsearch{DIR/aux-fixed/0002.quoted}} +q5: ${lookup{"quoted"} lsearch{DIR/aux-fixed/0002.quoted}} q6: ${lookup{white space}lsearch{DIR/aux-fixed/0002.quoted}} -q7: ${lookup{b\\s}lsearch{DIR/aux-fixed/0002.quoted}} +q7: ${lookup{b\\s} lsearch{DIR/aux-fixed/0002.quoted}} + +q1f: ${lookup{abc} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q2f: ${lookup{xyz} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q3f: ${lookup{pqr} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q4f: ${lookup{a:b} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q5f: ${lookup{"quoted"} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q6f: ${lookup{white space}lsearch,ret=full{DIR/aux-fixed/0002.quoted}} +q7f: ${lookup{b\\s} lsearch,ret=full{DIR/aux-fixed/0002.quoted}} abc: ${lookup{abc}wildlsearch{DIR/aux-var/0002.wild}} a.b.c: ${lookup{a.b.c}wildlsearch{DIR/aux-var/0002.wild}} @@ -776,6 +806,10 @@ rc=$runrc rc=$runrc ${if eq{1}{2}{${run{/non/exist}}}{1!=2}} rc=$runrc +${run,preexpand {DIR/aux-fixed/0002.runfile 0}} +rc=$runrc +${run{DIR/aux-fixed/0002.runfile ${quote:1}}{$value}{2}} +rc=$runrc # PRVS @@ -1029,6 +1063,7 @@ exim -d -bh V4NET.0.0.2 **** # Test $reply_address exim -bh V4NET.0.0.0 +helo test mail from:<> rcpt to: data @@ -1059,6 +1094,7 @@ quit **** # Check RFC 2047 decoding with (default) length check exim -bh V4NET.0.0.0 +helo test mail from:<> rcpt to: data @@ -1068,6 +1104,7 @@ quit **** # Check RFC 2047 decoding with length check disabled exim -DLENCHECK=check_rfc2047_length=false -bh V4NET.0.0.0 +helo test mail from:<> rcpt to: data @@ -1085,3 +1122,7 @@ exim -be ${if inlist{aa}{aa} {in list}{not in list}} ${if !inlist{aa}{aa} {not in list}{in list}} **** +# listextract from tainted list +exim -be -oMs my.target.host.name +'\${listextract {2} {<. $sender_host_name}}' => '${listextract {2} {<. $sender_host_name}}' +****