exim -be
test.ex ${lookup dnsdb{test.ex}{$value}fail}
+s/lash.test.ex ${lookup dnsdb{s/lash.test.ex}{$value}fail}
txt=test.ex ${lookup dnsdb{txt=test.ex}{$value}fail}
a=black-1.test.ex ${lookup dnsdb{a=black-1.test.ex}{$value}fail}
xxx=test.ex ${lookup dnsdb{xxx=test.ex}{$value}fail}
csa=csa1.test.ex ${lookup dnsdb{csa=csa1.test.ex}}
csa=csa2.test.ex ${lookup dnsdb{csa=csa2.test.ex}}
+soa=test.ex ${lookup dnsdb{soa=test.ex}{$value}{fail}}
+soa=a.test.ex ${lookup dnsdb{>:, soa=test.ex}{$value}{fail}}
+
# DNS lookups with multiple items
ten-1:ten2 ${lookup dnsdb{a=ten-1.test.ex:ten-2.test.ex}}
ten-1:defer:ten2 ${lookup dnsdb{a=ten-1.test.ex:test.again.dns:ten-2.test.ex}}
ten-1|ten2 ${lookup dnsdb{a=<|ten-1.test.ex|ten-2.test.ex}}
mxt1;mxt2 | output ${lookup dnsdb{>|mx=<;mxt1.test.ex;mxt2.test.ex}}
+mxt1;mxt2 | output+field ${lookup dnsdb{>|,:mx=<;mxt1.test.ex;mxt2.test.ex}}
mxt1;mxt2 | output ${lookup dnsdb{>|mxh=<;mxt1.test.ex;mxt2.test.ex}}
13/14 rbl ${lookup dnsdb{> 13.12.11.V4NET.rbl.test.ex:13.12.11.V4NET.rbl.test.ex}}
double ptr ${lookup dnsdb{ptr=V4NET.0.0.1:V4NET.0.0.2}}
defer_never:ten-1 ${lookup dnsdb{defer_never,a=test.again.dns:ten-1.test.ex}}
defer_never:defer ${lookup dnsdb{defer_never,a=test.again.dns:test.again.dns}}
defer_strict:ten-1 ${lookup dnsdb{defer_strict,a=test.again.dns:ten-1.test.ex}}
+
+# Retry timeout and count. This only tests the syntax; we do not
+# have any good way of testing the function.
+
+delay1500 ${lookup dnsdb{retrans_1s,retry_2,a=delay1500.test.ex}}
+****
+#
+# Cacheability
+exim -d-all+lookup -be
+a=localhost.test.ex ${lookup dnsdb{a=localhost.test.ex}{$value}fail}
+a=localhost.test.ex ${lookup dnsdb{a=localhost.test.ex}{$value}fail}
+****
+#
+# TTL-limited noncacheability
+exim -d-all+lookup -odq user@shorthost.test.ex
+****
+#
+# ACL defer_strict
+exim -bs
+HELO test
+MAIL FROM:<>
+RCPT TO:<defer_strict@test.again.dns>
+QUIT
****
+#
+no_msglog_check
+#