diff tests/run-tests.py @ 34803:d817bf1fc675

run-tests: extract Popen logic to a single method This removes 3 lines in total LOC and makes the upcoming changes easier. Differential Revision: https://phab.mercurial-scm.org/D948
author Jun Wu <quark@fb.com>
date Wed, 04 Oct 2017 18:50:18 -0700
parents 9c7548eb7d1c
children 149109c96904
line wrap: on
line diff
--- a/tests/run-tests.py	Wed Oct 04 18:42:24 2017 -0700
+++ b/tests/run-tests.py	Wed Oct 04 18:50:18 2017 -0700
@@ -2103,16 +2103,16 @@
         bisectrepo = self._runner.options.bisect_repo
         if bisectrepo:
             bisectcmd.extend(['-R', os.path.abspath(bisectrepo)])
-        def nooutput(args):
+        def pread(args):
             p = subprocess.Popen(args, stderr=subprocess.STDOUT,
                                  stdout=subprocess.PIPE)
-            p.stdout.read()
+            data = p.stdout.read()
             p.wait()
+            return data
         for test in tests:
-            nooutput(bisectcmd + ['--reset']),
-            nooutput(bisectcmd + ['--bad', '.'])
-            nooutput(bisectcmd + ['--good',
-                      self._runner.options.known_good_rev])
+            pread(bisectcmd + ['--reset']),
+            pread(bisectcmd + ['--bad', '.'])
+            pread(bisectcmd + ['--good', self._runner.options.known_good_rev])
             # TODO: we probably need to forward more options
             # that alter hg's behavior inside the tests.
             opts = ''
@@ -2121,11 +2121,7 @@
                 opts += ' --with-hg=%s ' % shellquote(_strpath(withhg))
             rtc = '%s %s %s %s' % (sys.executable, sys.argv[0], opts,
                                    test)
-            sub = subprocess.Popen(bisectcmd + ['--command', rtc],
-                                   stderr=subprocess.STDOUT,
-                                   stdout=subprocess.PIPE)
-            data = sub.stdout.read()
-            sub.wait()
+            data = pread(bisectcmd + ['--command', rtc])
             m = re.search(
                 (br'\nThe first (?P<goodbad>bad|good) revision '
                  br'is:\nchangeset: +\d+:(?P<node>[a-f0-9]+)\n.*\n'