tests: catch re.error if test line is not a valid regular expression stable
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Thu, 12 Aug 2010 14:53:34 +0900
branchstable
changeset 777 cd294ce45931
parent 776 1869efbf104d
child 779 0970d7c7ff42
tests: catch re.error if test line is not a valid regular expression [ original upstream message ]
tests/run-tests.py
--- 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)