Add testsuite case retry (without update) option on failed file compare.
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 22 Apr 2012 13:32:03 +0000 (14:32 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 22 Apr 2012 13:32:03 +0000 (14:32 +0100)
test/README
test/runtest

index 2a61503a2cf0eb7befd2f90fa28c4848c14d3836..b6d06e540f207aab9c0d89aaa7a97a008c64aa24 100644 (file)
@@ -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.
 
   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
 
 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
 
 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
 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.
 
 "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:
 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:
index 31aaaa902e83364e7cbb081e9da724915447c2ec..c199539a54e41ccd785fff9efa0da5113dc21840 100755 (executable)
@@ -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
 #             [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.
 
 #
 # Does not return if the user replies "Q" to a prompt.
 
@@ -1096,9 +1096,10 @@ if (-e $sf)
   print "\n";
   for (;;)
     {
   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;
     tests_exit(1) if /^q?$/i;
     return 0 if /^c$/i;
+    return 1 if /^r$/i;
     last if (/^u$/i);
     }
   }
     last if (/^u$/i);
     }
   }
@@ -1130,7 +1131,7 @@ return 1;
 #
 # Arguments: none
 # Returns:   0 if the output compared equal
 #
 # 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;
 
 sub check_output{
 my($yield) = 0;