summaryrefslogtreecommitdiff
path: root/test/scripts/0000-Basic/0300
diff options
context:
space:
mode:
Diffstat (limited to 'test/scripts/0000-Basic/0300')
-rw-r--r--test/scripts/0000-Basic/0300115
1 files changed, 115 insertions, 0 deletions
diff --git a/test/scripts/0000-Basic/0300 b/test/scripts/0000-Basic/0300
new file mode 100644
index 000000000..053aec804
--- /dev/null
+++ b/test/scripts/0000-Basic/0300
@@ -0,0 +1,115 @@
+# SMTP synchronization checks, with and without PIPELINING
+need_ipv4
+#
+exim -DSERVER=server -bd -oX PORT_D
+****
+client 127.0.0.1 PORT_D
+??? 220
+ehlo abcd\r\nmail from:<userx@test.ex>
+??? 554
+****
+# The pause (+++ 1) in the middle of this is to be sure the first message is
+# delivered before generating the sync error; without it, there's a race.
+client 127.0.0.1 PORT_D
+??? 220
+ehlo abcd
+??? 250-
+??? 250-
+??? 250-
+??? 250
+rset\r\nmail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata
+??? 250
+??? 250
+??? 250
+??? 354
+the message
+.\r\nmail from:<userx@test.ex>
++++ 1
+rcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
+??? 250
+??? 250
+??? 250
+??? 554
+****
+sleep 1
+# This time, don't send EHLO
+client 127.0.0.1 PORT_D
+??? 220
+helo abcd
+??? 250
+mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
+??? 554
+****
+# This shouldn't get advertised pipelining
+client HOSTIPV4 PORT_D
+??? 220
+ehlo abcd
+??? 250-
+??? 250-
+??? 250
+mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
+??? 554
+****
+# Check on unrecognized commands
+client HOSTIPV4 PORT_D
+??? 220
+junk0
+??? 500
+junk1\r\njunk2
+??? 554
+****
+# Check on RSET and QUIT
+client 127.0.0.1 PORT_D
+??? 220
+ehlo abcd
+??? 250-
+??? 250-
+??? 250-
+??? 250
+rset\r\nquit
+??? 250
+??? 221
+****
+# Check on RSET and QUIT
+client HOSTIPV4 PORT_D
+??? 220
+ehlo abcd
+??? 250-
+??? 250-
+??? 250
+rset\r\nquit
+??? 554
+****
+# This one disables the check dynamically
+client 127.0.0.1 PORT_D
+??? 220
+ehlo dis.able
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
+.
+??? 250
+??? 250
+??? 354
+??? 250
+quit
+??? 221
+****
+killdaemon
+# In these next tests, PIPELINING is not advertised, and the server delays for
+# 1s before trying to send the banner to give the client time to send input.
+exim -DPAH= -DDELAY=1s -DSERVER=server -bd -oX PORT_D
+****
+# Send HELO without waiting for greeting
+client -t2 127.0.0.1 PORT_D
+helo abcd
+??? 554
+****
+# Disconnect without waiting for the greeting. This should
+# test the check for input that happens before sending the
+# banner (there was a bug at one point; missing error check).
+client -t2 127.0.0.1 PORT_D
+****
+killdaemon