From: Heiko Schlittermann (HS12-RIPE) Date: Mon, 5 Oct 2020 06:59:25 +0000 (+0200) Subject: Testsuite: Allow input lines starting with "::", like ":sleep:". X-Git-Tag: exim-4.95-RC0~225 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/d0de84b2d250e2f066286db3a3f5400a0f931b67 Testsuite: Allow input lines starting with "::", like ":sleep:". This somehow mimics the behaviour of the client tool, but works for *any* input line that is sent to the application. This reverts the unfortunate take abusing the client's special notation '>>> '. Currently implemented: - :eval: - :neol: - :sleep: --- diff --git a/test/README b/test/README index a399765e2..c0f548292 100644 --- a/test/README +++ b/test/README @@ -862,15 +862,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 '::', 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 +1062,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 diff --git a/test/runtest b/test/runtest index 26a404713..5fb7cd737 100755 --- a/test/runtest +++ b/test/runtest @@ -2807,12 +2807,28 @@ print ">> |${cmd}${stderrsuffix}\n" if ($debug); open CMD, "|${cmd}${stderrsuffix}" || tests_exit(1, "Failed to run $cmd"); CMD->autoflush(1); -while (