diff tests/common-pattern.py @ 35230:feecfefeba25

tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages Automatic replacement seems better than trying to figure out a check-code rule. I didn't bother looking to see why the error message and file name is reversed in the annotate and histedit tests, based on Windows or not. I originally had this as a list of tuples, conditional on the platform. But there are a couple of 'No such file or directory' messages emitted by Mercurial itself, so unconditional is required for stability. There are also several variants of what I assume is 'connection refused' and 'unknown host' in test-clone.t and test-clonebundles.t for Docker, FreeBSD jails, etc. Yes, these are handled by (re) tags, but maybe it would be better to capture those strings in order to avoid whack-a-mole in future tests. All of this points to using a dictionary containing one or more strings-to-be-replaced values.
author Matt Harbison <matt_harbison@yahoo.com>
date Sat, 02 Dec 2017 19:33:34 -0500
parents 7f0c9e28a816
children b33d4cf38666
line wrap: on
line diff
--- a/tests/common-pattern.py	Sun Dec 03 20:55:35 2017 -0800
+++ b/tests/common-pattern.py	Sat Dec 02 19:33:34 2017 -0500
@@ -37,3 +37,17 @@
      br' - - [$LOGDATE$] "GET'
     ),
 ]
+
+# Various platform error strings, keyed on a common replacement string
+_errors = {
+    br'$ENOENT$': (
+        # strerror()
+        br'No such file or directory',
+
+        # FormatMessage(ERROR_FILE_NOT_FOUND)
+        br'The system cannot find the file specified',
+    ),
+}
+
+for replace, msgs in _errors.items():
+    substitutions.extend((m, replace) for m in msgs)