run-tests: make rematch a static method of TTest
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 19 Apr 2014 16:13:02 -0700
changeset 21316 ab9bf8a5e573
parent 21315 56610da39b48
child 21317 58a599784a0c
run-tests: make rematch a static method of TTest
tests/run-tests.py
--- a/tests/run-tests.py	Sat Apr 19 16:11:49 2014 -0700
+++ b/tests/run-tests.py	Sat Apr 19 16:13:02 2014 -0700
@@ -695,16 +695,6 @@
 def stringescape(s):
     return escapesub(escapef, s)
 
-def rematch(el, l):
-    try:
-        # use \Z to ensure that the regex matches to the end of the string
-        if os.name == 'nt':
-            return re.match(el + r'\r?\n\Z', l)
-        return re.match(el + r'\n\Z', l)
-    except re.error:
-        # el is an invalid regex
-        return False
-
 def globmatch(el, l):
     # The only supported special characters are * and ? plus / which also
     # matches \ on windows. Escaping of these characters is supported.
@@ -729,7 +719,7 @@
             res += '[/\\\\]'
         else:
             res += re.escape(c)
-    return rematch(res, l)
+    return TTest.rematch(res, l)
 
 class TTest(Test):
     """A "t test" is a test backed by a .t file."""
@@ -944,6 +934,17 @@
         return exitcode, postout
 
     @staticmethod
+    def rematch(el, l):
+        try:
+            # use \Z to ensure that the regex matches to the end of the string
+            if os.name == 'nt':
+                return re.match(el + r'\r?\n\Z', l)
+            return re.match(el + r'\n\Z', l)
+        except re.error:
+            # el is an invalid regex
+            return False
+
+    @staticmethod
     def linematch(el, l):
         if el == l: # perfect match (fast)
             return True
@@ -953,7 +954,7 @@
             if el == l or os.name == 'nt' and el[:-1] + '\r\n' == l:
                 return True
             if el.endswith(" (re)\n"):
-                return rematch(el[:-6], l)
+                return TTest.rematch(el[:-6], l)
             if el.endswith(" (glob)\n"):
                 return globmatch(el[:-8], l)
             if os.altsep and l.replace('\\', '/') == el: