Mercurial > public > mercurial-scm > hg
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)