From cc442294b8c9abfd87bdcb8019574f4e1ed23ea9 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 22 Apr 2012 14:32:03 +0100 Subject: [PATCH] Add testsuite case retry (without update) option on failed file compare. --- test/README | 6 ++++-- test/runtest | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/test/README b/test/README index 2a61503a2..b6d06e540 100644 --- a/test/README +++ b/test/README @@ -361,7 +361,7 @@ default, the output is from the "cf" program, and might look like this: 1 difference found. "test-stdout-munged" contains 16 lines; "stdout/1300" contains 18 lines. - Continue, Update & retry, Quit? [Q] + Continue, Retry, Update & retry, Quit? [Q] This example was generated by running the test with a version of Exim that had a bug in the exim_dbmbuild utility (the bug was fixed at release @@ -370,7 +370,7 @@ used. In this case, the standard output differed from what was expected. The reply to the prompt must either be empty, in which case it takes the default that is given in brackets (in this case Q), or a single letter, in -upper or lower case (in this case, one of C, U, or Q). If you type anything +upper or lower case (in this case, one of C, R, U, or Q). If you type anything else, the prompt is repeated. "Continue" carries on as if the files had matched; that is, it ignores the @@ -380,6 +380,8 @@ moving on to the next test. "Update & retry" copies the new file to the saved file, and reruns the test after doing any further comparisons that may be necessary. +"Retry" does the same apart from the file copy. + Other circumstances give rise to other prompts. If a test generates output for which there is no saved data, the prompt (after a message stating which file is unexpectely not empty) is: diff --git a/test/runtest b/test/runtest index 31aaaa902..c199539a5 100755 --- a/test/runtest +++ b/test/runtest @@ -938,7 +938,7 @@ if ($_[1]) { $_ = "u"; print "... update forced\n"; } # [4] TRUE if this is a log file whose deliveries must be sorted # # Returns: 0 comparison succeeded or differences to be ignored -# 1 comparison failed; files were updated (=> re-compare) +# 1 comparison failed; files may have been updated (=> re-compare) # # Does not return if the user replies "Q" to a prompt. @@ -1096,9 +1096,10 @@ if (-e $sf) print "\n"; for (;;) { - interact("Continue, Update & retry, Quit? [Q] ", $force_update); + interact("Continue, Retry, Update & retry, Quit? [Q] ", $force_update); tests_exit(1) if /^q?$/i; return 0 if /^c$/i; + return 1 if /^r$/i; last if (/^u$/i); } } @@ -1130,7 +1131,7 @@ return 1; # # Arguments: none # Returns: 0 if the output compared equal -# 1 if files were updated and the test must be re-run +# 1 if re-run needed (files may have been updated) sub check_output{ my($yield) = 0; -- 2.25.1