Commits

kiilerix committed 80fe645

run-tests: make it possible to combine (esc) with (glob) and (re)

This makes it possible to combine the annotations ... if done in the right
order.

  • Participants
  • Parent commits af7c6bc

Comments (0)

Files changed (2)

tests/run-tests.py

 def linematch(el, l):
     if el == l: # perfect match (fast)
         return True
-    if (el and
-        (el.endswith(" (re)\n") and rematch(el[:-6], l) or
-         el.endswith(" (glob)\n") and globmatch(el[:-8], l) or
-         el.endswith(" (esc)\n") and
-             (el[:-7].decode('string-escape') + '\n' == l or
-              os.name == 'nt' and
-              el[:-7].decode('string-escape') + '\n' == l))):
-        return True
+    if el:
+        if el.endswith(" (esc)\n"):
+            el = el[:-7].decode('string-escape') + '\n'
+        if el == l or os.name == 'nt' and el[:-1] + '\r\n' == l:
+            return True
+        if (el.endswith(" (re)\n") and rematch(el[:-6], l) or
+            el.endswith(" (glob)\n") and globmatch(el[:-8], l)):
+            return True
     return False
 
 def tsttest(test, wd, options, replacements):

tests/test-run-tests.t

   crcrlf\r (esc)
 #endif
 
+Combining esc with other markups - and handling lines ending with \r instead of \n:
+
+  $ printf 'foo/bar\r'
+  foo/bar\r (no-eol) (glob) (esc)
+#if windows
+  $ printf 'foo\\bar\r'
+  foo/bar\r (no-eol) (glob) (esc)
+#endif
+  $ printf 'foo/bar\rfoo/bar\r'
+  foo.bar\r \(no-eol\) (re) (esc)
+  foo.bar\r \(no-eol\) (re)
+
 testing hghave
 
   $ "$TESTDIR/hghave" true