tests: catch re.error if test line is not a valid regular expression
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Thu, 12 Aug 2010 14:53:34 +0900
changeset 11781 6f59154fb604
parent 11780 3cdd6fdc3d9e
child 11782 992506c14217
tests: catch re.error if test line is not a valid regular expression
tests/run-tests.py
--- a/tests/run-tests.py	Wed Aug 11 12:30:18 2010 +0200
+++ 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)