tests: catch re.error if test line is not a valid regular expression
[ original upstream message ]
--- a/tests/run-tests.py Mon Aug 02 23:27:22 2010 -0500
+++ b/tests/run-tests.py Thu Aug 12 14:53:34 2010 +0900
@@ -499,6 +499,13 @@
finally:
os.remove(name)
+ def rematch(el, l):
+ try:
+ return re.match(el, l)
+ except re.error:
+ # el is an invalid regex
+ return False
+
pos = -1
postout = []
for n, l in enumerate(output):
@@ -513,7 +520,7 @@
if el == l: # perfect match (fast)
postout.append(" " + l)
- elif el and re.match(el, l): # fallback regex match
+ elif el and rematch(el, l): # fallback regex match
postout.append(" " + el)
else: # mismatch - let diff deal with it
postout.append(" " + l)