run-tests: allow --local to set multiple attributes
authorJun Wu <quark@fb.com>
Mon, 18 Jul 2016 08:45:46 +0100
changeset 29582 ee96d95e81a4
parent 29581 c66bc06f1bf6
child 29583 6ce870dba6fa
run-tests: allow --local to set multiple attributes This is to make the next patch easier to review. It does not change logic.
tests/run-tests.py
--- a/tests/run-tests.py	Sun Jul 17 23:05:59 2016 +0100
+++ b/tests/run-tests.py	Mon Jul 18 08:45:46 2016 +0100
@@ -308,11 +308,14 @@
             sys.stderr.write('warning: --with-hg should specify an hg script\n')
     if options.local:
         testdir = os.path.dirname(_bytespath(canonpath(sys.argv[0])))
-        hgbin = os.path.join(os.path.dirname(testdir), b'hg')
-        if os.name != 'nt' and not os.access(hgbin, os.X_OK):
-            parser.error('--local specified, but %r not found or not executable'
-                         % hgbin)
-        options.with_hg = hgbin
+        reporootdir = os.path.dirname(testdir)
+        pathandattrs = [(b'hg', 'with_hg')]
+        for relpath, attr in pathandattrs:
+            binpath = os.path.join(reporootdir, relpath)
+            if os.name != 'nt' and not os.access(binpath, os.X_OK):
+                parser.error('--local specified, but %r not found or '
+                             'not executable' % binpath)
+            setattr(options, attr, binpath)
 
     if (options.chg or options.with_chg) and os.name == 'nt':
         parser.error('chg does not work on %s' % os.name)