Testsuite: output changes resulting
[exim.git] / test / README
index a399765e2e9e5f1078e31591fd7b11b1f34c867a..6c9a2d8da52189ef53723f03365c48c50442a29b 100644 (file)
@@ -696,6 +696,17 @@ be replaced by the local host's name. Long commands can be continued over
 several lines by using \ as a continuation character. This does *not* apply to
 data lines.
 
+A line with a leading number followed by a space and then an uppercase
+word, equals character, value sets an expected return code as above
+plus an environment variable.  Example:
+
+  255 TZ=GB
+  exim_msgdate -l -u -z -localhost_number=20 000000 1PANS3 ZZZZZZ
+  ****
+
+
+
+
 Here follows a list of supported commands. They can be divided into two groups:
 
 
@@ -747,6 +758,12 @@ This command runs the exigrep utility with the given data (the search pattern)
 on the current mainlog file.
 
 
+  exiqgrep <data>
+
+This command runs the exiqgrep utility with the given options
+on the current spool directory.
+
+
   gnutls
 
 This command is present at the start of all but one of the tests that use
@@ -814,6 +831,14 @@ are still in existence at the end of the run (for messages that were not
 delivered) are not compared with saved versions.
 
 
+  no_munge
+
+If this command is encountered anywhere in the script, the output is not
+munged before it is compared with a saved version.
+This option allows meaningful tests of the exim_msgdate utility;
+without it all date comparison checks would succeed.
+
+
   no_stderr_check
 
 If this command is encountered anywhere in the script, the stderr output from
@@ -862,15 +887,21 @@ The remaining commands are followed by data lines for their standard input,
 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', or '\r'.  If you need a line feed there, you need to encode it
-according to your needs.
+If the input line starts with ':<cmd>:', this prefix is removed and the
+line is processed by the runtest script before sending. The following
+commands are recognised:
 
-If the input line starts with '\>>> ', the backslash is removed and the
-rest of the line is passed as input. This is used by the client tool,
-which understands the '>>> ' prefix for similar processing.
+- "eval": process the reset of the line with Perl's string eval()
+  function. This can be used to send arbitrary data by encoding it as
+  escape sequences (e.g. "\x41\101"). If you need a line ending, you have
+  to append it accordingly (e.g. "\r\n").
+
+- "noeol": do not terminate the data sent to the application with an end
+  of line character.
+
+- "sleep": interpret the rest of the line as an integer and sleep for
+  that number of seconds before proceeding. No data will be output to
+  the application.
 
 
   background
@@ -1056,10 +1087,7 @@ Lines in client scripts are of several kinds:
 
 (5) ">>> ": If a line begins with three '>' characters and a space, the rest of the
     line is input to be sent to the server.  Backslash escaping is done as
-    described below, but no trailing "\r\n" is sent. As the runtest's 
-    input processing catches the '>>> ' for its string eval, you may
-    want to escape from this first stage processing by prefixing your
-    line with '\'.
+    described below, but no trailing "\r\n" is sent.
 
 (6) "<<< ": If a line begin with three '<' characters and a space, the rest of the
     line is a filename; the content of the file is inserted into the script
@@ -1116,13 +1144,16 @@ are of the following kinds:
 (2) A line that starts with "*sleep" specifies a number of seconds to wait
     before proceeding.
 
-(3) A line containing "*eof" specifies that the client is expected to close
+(3) A line containing "*data" and a number specifies that the client is
+    expected to send that many byte; the server discards them
+
+(4) A line containing "*eof" specifies that the client is expected to close
     the connection at this point.
 
-(4) A line containing just '.' specifies that the client is expected to send
+(5) A line containing just '.' specifies that the client is expected to send
     many lines, terminated by one that contains just a dot.
 
-(5) Otherwise, the line defines the start of an input line that the client
+(6) Otherwise, the line defines the start of an input line that the client
     is expected to send. To allow for lines that start with digits, the line
     may start with '<', which is not taken as part of the input data. If the
     lines starts with '<<' then only the characters are expected; no return-