tidying
[exim.git] / test / scripts / 4600-SPF / 4600
index 3907f6861466ab09336caba7d6bd5f30f2dc2afb..55e2e0aff696beb8c673f170662387864230fa84 100644 (file)
@@ -1,33 +1,91 @@
 # acl condition and variables
 #
 # acl condition and variables
 #
-# It is rather difficult to properly test spf.  We use libspf2 to do the work, and it
-# does the DNS lookups, so we cannot intercept them in the testsuite's usual fashion
-# to provide values for testcases.
+# The 127.0.0.1 source addr seems to be a builtin in the spf library; no dns lookup is done.
+# HOSTIPV4 does get a series of lookups (see server debug output to verify that).
 #
 #
-# For now just check that what should be working syntax does not cause us to fall over.
-# Be careful with envelope-domains used for testcases, as real DNS lookups will be done.
+# The libspf2 object stack is built with an exim-specific DNS lookup base object,
+# so the testsuite intercept to fakedns works.  Be careful of names and addresses
+# used, as nonhandled lookups are passed on to real DNS.
 #
 #
-exim -bd -DSERVER=server -oX PORT_D
+exim -bd -DSERVER=server -oX PORT_D:PORT_S:PORT_D2
 ****
 ****
-client HOSTIPV4 PORT_D
+client 127.0.0.1 PORT_S
 ??? 220
 helo testclient
 ??? 250
 mail from:<a@example.com>
 ??? 250
 rcpt to:<fred@test.ex>
 ??? 220
 helo testclient
 ??? 250
 mail from:<a@example.com>
 ??? 250
 rcpt to:<fred@test.ex>
-??? 550
+??? 250
+quit
+****
+client HOSTIPV4 PORT_S
+??? 220
+helo testclient
+??? 250
+mail from:<b@test.example.com>
+??? 250
+rcpt to:<fred@test.ex>
+??? 250
 quit
 ****
 client 127.0.0.1 PORT_D
 ??? 220
 helo testclient
 ??? 250
 quit
 ****
 client 127.0.0.1 PORT_D
 ??? 220
 helo testclient
 ??? 250
-mail from:<b@example.com>
+mail from:<c@example.com>
+??? 250
+rcpt to:<fred@test.ex>
+??? 250
+quit
+****
+client HOSTIPV4 PORT_D
+??? 220
+helo testclient
+??? 250
+mail from:<b@test.example.com>
+??? 250
+rcpt to:<fred@test.ex>
+??? 550
+quit
+****
+client 127.0.0.1 PORT_D2
+??? 220
+helo testclient
+??? 250
+mail from:<c@example.com>
+??? 250
+rcpt to:<fred@test.ex>
+??? 550
+quit
+****
+#
+#
+#
+#
+#
+# helo name gets used when mailfrom is null
+client HOSTIPV4 PORT_S
+??? 220
+helo passme.helo.example.com
+??? 250
+mail from:<>
 ??? 250
 rcpt to:<fred@test.ex>
 ??? 250
 quit
 ****
 #
 ??? 250
 rcpt to:<fred@test.ex>
 ??? 250
 quit
 ****
 #
+# helo name is overridden when a mailfrom is set
+client HOSTIPV4 PORT_S
+??? 220
+helo passme.helo.example.com
+??? 250
+mail from:<failme@example.com>
+??? 250
+rcpt to:<fred@test.ex>
+??? 550
+quit
+****
+#
 killdaemon
 killdaemon