run-tests: use regex when searching for $HGPORT in test output stable
authorMartin Geisler <mg@aragost.com>
Mon, 01 Nov 2010 10:24:07 +0100
branchstable
changeset 12895 53cfde2b3cf9
parent 12894 bc91a79fa3d0
child 12896 b19b4c1df066
run-tests: use regex when searching for $HGPORT in test output This prevents spurious errors when a changeset hash happens to match the port number. Before, this invocation gave a test failure: $ ./run-tests.py test-log.t --port 24427 ERROR: /home/mg/src/mercurial-crew/tests/test-log.t output changed --- /home/mg/src/mercurial-crew/tests/test-log.t +++ /home/mg/src/mercurial-crew/tests/test-log.t.err @@ -626,12 +626,12 @@ $ hg log -b default changeset: 2:c3a4f03cc9a7 - parent: 0:24427303d56f + parent: 0:$HGPORT303d56f user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: commit on default ...
tests/run-tests.py
--- a/tests/run-tests.py	Sat Oct 30 11:32:04 2010 -0500
+++ b/tests/run-tests.py	Mon Nov 01 10:24:07 2010 +0100
@@ -604,7 +604,7 @@
             raise
 
     for s, r in replacements:
-        output = output.replace(s, r)
+        output = re.sub(s, r, output)
     return ret, splitnewlines(output)
 
 def runone(options, test, skips, fails):
@@ -677,10 +677,10 @@
         signal.alarm(options.timeout)
 
     ret, out = runner(testpath, options, [
-        (testtmp, '$TESTTMP'),
-        (':%s' % options.port, ':$HGPORT'),
-        (':%s' % (options.port + 1), ':$HGPORT1'),
-        (':%s' % (options.port + 2), ':$HGPORT2'),
+        (re.escape(testtmp), '$TESTTMP'),
+        (r':%s\b' % options.port, ':$HGPORT'),
+        (r':%s\b' % (options.port + 1), ':$HGPORT1'),
+        (r':%s\b' % (options.port + 2), ':$HGPORT2'),
         ])
     vlog("# Ret was:", ret)