This mimics the '>>> ' prefix for the test client. Any line prefixed
with '>>> ' will be processed by Perl's string eval().
As '>>> ' is generic and documented, it replaces the
(undocumented) '\NONL\' tag.
terminated by four asterisks. Even if no data is required for the particular
usage, the asterisks must be given.
terminated by four asterisks. Even if no data is required for the particular
usage, the asterisks must be given.
+If the input line starts with '>>> ', this prefix and any trailing spaces
+(including line feed) are removed. The reminder is processed with Perl's string
+eval() function, effectivly evaluatiing escape sequences like '\x41', '\r', and
+such. If you need a line feed there, you need to encode it according to your
+needs.
+
as well as to the named file.
as well as to the named file.
client [<options>] <ip address> <port> [<outgoing interface>]
This command runs the auxiliary "client" program that simulates an SMTP client.
client [<options>] <ip address> <port> [<outgoing interface>]
This command runs the auxiliary "client" program that simulates an SMTP client.
# Run the command, with stdin connected to a pipe, and write the stdin data
# Run the command, with stdin connected to a pipe, and write the stdin data
-# to it, with appropriate substitutions. If a line ends with \NONL\, chop off
-# the terminating newline (and the \NONL\). If the command contains
+# to it, with appropriate substitutions. If a starts with '>>> ', process it
+# via Perl's string eval().
+# If the command contains
# -DSERVER=server add "-server" to the command, where it will adjoin the name
# for the stderr file. See comment above about the use of -DSERVER.
# -DSERVER=server add "-server" to the command, where it will adjoin the name
# for the stderr file. See comment above about the use of -DSERVER.
$lineno++;
last if /^\*{4}\s*$/;
do_substitute($testno);
$lineno++;
last if /^\*{4}\s*$/;
do_substitute($testno);
- if (/^(.*)\\NONL\\\s*$/) { print CMD $1; } else { print CMD; }
+ s/^>>>\s(.*)\s*$/$1/ and $_ = eval "\"$1\"";
+ print CMD;
}
# For timeout tests, wait before closing the pipe; we expect a
}
# For timeout tests, wait before closing the pipe; we expect a
****
exim -odi userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi filter-userx@test.ex
Test message
****
exim -odi filter-userx@test.ex
Test message
****
exim -odi filter-userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi filter-userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi userx@test.ex
Last line ending without a newline and being a single dot:
****
exim -odi userx@test.ex
Last line ending without a newline and being a single dot:
****
exim -odi mmdf-userx@test.ex
Line consisting of four ^A characters
****
exim -odi mmdf-userx@test.ex
Line consisting of four ^A characters
****
exim -odi userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi filter-userx@test.ex
Test message
****
exim -odi filter-userx@test.ex
Test message
****
exim -odi filter-userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi filter-userx@test.ex
Last line ending without a newline and with a partial match:
****
exim -odi userx@test.ex
Last line ending without a newline and being a single dot:
****
exim -odi userx@test.ex
Last line ending without a newline and being a single dot:
****
exim -odi mmdf-userx@test.ex
Line consisting of four ^A characters
****
exim -odi mmdf-userx@test.ex
Line consisting of four ^A characters
250 OK
****
exim -odi abc@x.y.z
250 OK
****
exim -odi abc@x.y.z
****
server PORT_S
220 Server ready
****
server PORT_S
220 Server ready
250 OK
****
exim -odi abc@x.y.z
250 OK
****
exim -odi abc@x.y.z
-Subject: Test message\NONL\
+>>> Subject: Test message