diff -r 3fbd928acf60 -r 2e9c41125820 tests/run-tests.py --- a/tests/run-tests.py Mon Jul 01 14:19:04 2013 +0100 +++ b/tests/run-tests.py Fri Jul 19 00:37:26 2013 +0100 @@ -60,6 +60,12 @@ processlock = threading.Lock() +# subprocess._cleanup can race with any Popen.wait or Popen.poll on py24 +# http://bugs.python.org/issue1731717 for details. We shouldn't be producing +# zombies but it's pretty harmless even if we do. +if sys.version_info[1] < 5: + subprocess._cleanup = lambda: None + closefds = os.name == 'posix' def Popen4(cmd, wd, timeout, env=None): processlock.acquire() @@ -572,8 +578,6 @@ py3kswitch = options.py3k_warnings and ' -3' or '' cmd = '%s%s "%s"' % (PYTHON, py3kswitch, test) vlog("# Running", cmd) - if os.name == 'nt': - replacements.append((r'\r\n', '\n')) return run(cmd, wd, options, replacements, env) needescape = re.compile(r'[\x00-\x08\x0b-\x1f\x7f-\xff]').search @@ -588,8 +592,6 @@ 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 @@ -599,7 +601,7 @@ # The only supported special characters are * and ? plus / which also # matches \ on windows. Escaping of these caracters is supported. if el + '\n' == l: - if os.name == 'nt': + if os.altsep: # matching on "/" is not needed for this line log("\nInfo, unnecessary glob: %s (glob)" % el) return True @@ -615,7 +617,7 @@ res += '.*' elif c == '?': res += '.' - elif c == '/' and os.name == 'nt': + elif c == '/' and os.altsep: res += '[/\\\\]' else: res += re.escape(c) @@ -627,8 +629,6 @@ 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 @@ -947,6 +947,7 @@ c.isdigit() and c or '\\' + c for c in testtmp), '$TESTTMP')) + replacements.append((r'\r\n', '\n')) else: replacements.append((re.escape(testtmp), '$TESTTMP'))