X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/59371ea735c941334861aa5b8e1e9a06facf044f..9c57cbc06f4506e05f63190afddfc9b3648813cb:/test/scripts/0000-Basic/0002 diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 index eaa0dd82a..f32b605b0 100644 --- a/test/scripts/0000-Basic/0002 +++ b/test/scripts/0000-Basic/0002 @@ -67,6 +67,20 @@ eval: ${eval:077} eval: ${eval:08} eval10: ${eval10:077} eval10: ${eval10:08} +eval10: ${eval10:0x1234} +eval: ${eval:2+42%5} +eval: ${eval:0xc&5} +eval: ${eval:0xc & 5 } +eval: ${eval:0x0c|5} +eval: ${eval:0xc^5} +eval: ${eval:0xc>>1} +eval: ${eval:0xc >> 2} +eval: ${eval:0xc >> 4 } +eval: ${eval:0xc<<1} +eval: ${eval:~255&0x1234} +eval: ${eval:~ 255&0x1234} +eval: ${eval: -(~255&0x1234)} + expand: \$primary_hostname ${expand:\$primary_hostname} hash: ${hash_3:monty} ${hash_5:monty} ${hash_4_62:monty python} hash: ${hash_3:abc}X ${hash_3:ab}X ${hash_3:a}X ${hash_3:}X @@ -142,6 +156,12 @@ str2b64:${str2b64:The quick brown \n fox} strlen: ${strlen:} strlen: ${strlen:a} strlen: ${strlen:abcdefgh} +time_eval: ${time_eval:10s} +time_eval: ${time_eval:2h} +time_eval: ${time_eval:1d5m} +time_eval: ${time_eval:1w2d3h4m5s} +time_eval: ${time_eval:14} +time_eval: ${time_eval:rhubarb} time_interval: ${time_interval:0} time_interval: ${time_interval:44} time_interval: ${time_interval:999999} @@ -181,6 +201,11 @@ hash: ${if eq {1}{2}{${hash_3:invalid}}{NO}} md5: ${if eq {1}{2}{${md5:invalid}}{NO}} mask: ${if eq {1}{2}{${mask:invalid}}{NO}} +# Numeric overflow + +4096M ${if >{1}{4096M}{y}{n}} +4096000000 ${if >{1}{4096000000}{y}{n}} + # Conditions 2=2: ${if ={2}{2}{y}{n}} @@ -194,6 +219,7 @@ mask: ${if eq {1}{2}{${mask:invalid}}{NO}} 2>3: ${if >{2}{3}{y}{n}} 3>3: ${if >{3}{3}{y}{n}} 4>3: ${if >{4}{3}{y}{n}} +1>-1: ${if >{1}{-1}{y}{n}} 2>=3: ${if >={2}{3}{y}{n}} 3>=3: ${if >={3}{3}{y}{n}} 4>=3: ${if >={4}{3}{y}{n}} @@ -204,12 +230,19 @@ mask: ${if eq {1}{2}{${mask:invalid}}{NO}} 3<=3: ${if <={3}{3}{y}{n}} 4<=3: ${if <={4}{3}{y}{n}} 5<=3: ${if <={ 5 } { 3 } {y}{n}} +-3<=1: ${if <={-3}{1}{y}{n}} 5>3k: ${if >{5 } {3k }{y}{n}} 5>3m: ${if >{5 } {3m }{y}{n}} 5>3z: ${if >{5 } {3z }{y}{n}} 5>a: ${if >{ 5 } {a}{y}{n}} +>0: ${if > {}{0}{y}{n}} +=: ${if = {}{}{y}{n}} +-2<: ${if < {-2}{}{y}{n}} +08>07: ${if > {08}{07}{y}{n}} +011=11: ${if = {011}{11}{y}{n}} + def:y ${if def:tod_log{y}{n}} def:n ${if def:host{y}{n}} def:f ${if def:post{y}{n}} @@ -269,6 +302,22 @@ match_domain: ${if match_domain{5.aa.bb}{+dlist}{yes}{no}} match_domain: ${if match_domain{xxxyz}{+dlist}{yes}{no}} match_domain: ${if match_domain{xyz}{+dlist}{yes}{no}} +${if match{x@zz.aa.bb}{^(.*)} \ + { \ + >$1< \ + ${if match_domain{${domain:$1}}{+dlist}{[$1]}} \ + >$1< \ + } \ + { CAN'T HAPPEN}} + +${if match{x@xxxabc}{^(.*)} \ + { \ + >$1< \ + ${if match_domain{${domain:$1}}{^\Nxxx(.*)\N}{[$1]}} \ + >$1< \ + } \ + { CAN'T HAPPEN}} + match_address: ${if match_address{x@y.z}{p@q:*@y.z}{yes}{no}} match_address: ${if match_address{x@y.z}{p@q:x@*.z}{yes}{no}} @@ -365,6 +414,13 @@ a99b: ${lookup{a99b}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NO}} a\\:b: ${lookup{a\\:b}nwildlsearch{DIR/aux-var/0002.wild}} a\\:Xb: ${lookup{a\\:Xb}nwildlsearch{DIR/aux-var/0002.wild}} +# Some tests of case-(in)dependence + +MiXeD-CD: ${lookup{MiXeD-CD}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NOT FOUND}} +MixeD-CD: ${lookup{MixeD-CD}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NOT FOUND}} +MiXeD-Ncd: ${lookup{MiXeD-Ncd}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NOT FOUND}} +MixeD-Ncd: ${lookup{MixeD-Ncd}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NOT FOUND}} + # IP address (CIDR) lookups 1.2.3.4: ${lookup{1.2.3.4}iplsearch{DIR/aux-fixed/0002.iplsearch}} @@ -446,6 +502,13 @@ abcd ${rfc2047:abcd} Long: ${rfc2047: here we go: a string that is going to be encoded: it will go over the 75-char limit} Long: ${rfc2047: here we go: a string that is going to be encoded: it will go over the 75-char limit by a long way; in fact this one will go over the 150 character limit} +# RFC 2047 decode + +${rfc2047d:abcd abcd} +${rfc2047d:<:abcd:> =?iso-8859-8?Q?=3C=3Aabcd=3A=3E?=} +${rfc2047d:<:ab cd:> =?iso-8859-8?Q?=3C=3Aab_cd=3A=3E?=} +${rfc2047d:Long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_i?= =?iso-8859-8?Q?t_will_go_over_the_75-char_limit?=} +${rfc2047d:Long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_i?= =?iso-8859-8?Q?t_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fac?= =?iso-8859-8?Q?t_this_one_will_go_over_the_150_character_limit?=} # UTF-8 @@ -542,6 +605,8 @@ ${if and {xyz}{a}{b}} ${if and {{xya}}{a}{b}} ${if and {{${lookup{x}lsearch{/a/b}}}}{a}{b}} ${if eq {$h_xyz}{1}{y}{n}} +${if eq {$h_xyz:}{1}{y}{n} +${if def:h_xyz}{y}{n}} ${if or {eq {}{}{yes}{no}} ${if or {{eq {}{}{yes}{no}} ${if or {{eq {}{}}{yes}{no}} @@ -676,3 +741,8 @@ Subject: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_i . quit **** +# Certain kind of error +exim -d -be +match_ip: 15 ${if match_ip{1.2.3.4}{1.2.3}} +match_ip: 16 ${if match_ip{1.2.3.4}{1.2.3.4/abc}} +****