# HG changeset patch # User Mads Kiilerich # Date 1350232242 -7200 # Node ID 80fe64581f3a75ca5e2c72c7ef84fb3fe7e20882 # Parent af7c6bc48d8d7a58c621e03bb98b1d5f5e0da53b 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. diff -r af7c6bc48d8d -r 80fe64581f3a tests/run-tests.py --- a/tests/run-tests.py Mon Oct 15 02:33:12 2012 +0200 +++ b/tests/run-tests.py Sun Oct 14 18:30:42 2012 +0200 @@ -526,14 +526,14 @@ 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): diff -r af7c6bc48d8d -r 80fe64581f3a tests/test-run-tests.t --- a/tests/test-run-tests.t Mon Oct 15 02:33:12 2012 +0200 +++ b/tests/test-run-tests.t Sun Oct 14 18:30:42 2012 +0200 @@ -62,6 +62,18 @@ 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