From patchwork Fri Mar 12 22:10:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D10195: run-test: install rhg if --rhg is passed From: phabricator X-Patchwork-Id: 48511 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 12 Mar 2021 22:10:01 +0000 SimonSapin created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Before this, --rhg was only working with --local. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D10195 AFFECTED FILES tests/run-tests.py CHANGE DETAILS To: SimonSapin, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -3389,6 +3389,9 @@ if self.options.chg: assert self._installdir self._installchg() + if self.options.rhg: + assert self._installdir + self._installrhg() log( 'running %d tests using %d parallel processes' @@ -3750,6 +3753,33 @@ sys.stdout.write(out) sys.exit(1) + def _installrhg(self): + """Install rhg into the test environment""" + vlog('# Performing temporary installation of rhg') + assert os.path.dirname(self._bindir) == self._installdir + assert self._hgroot, 'must be called after _installhg()' + cmd = b'"%(make)s" install-rhg PREFIX="%(prefix)s"' % { + b'make': b'make', # TODO: switch by option or environment? + b'prefix': self._installdir, + } + cwd = self._hgroot + vlog("# Running", cmd) + proc = subprocess.Popen( + cmd, + shell=True, + cwd=cwd, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + ) + out, _err = proc.communicate() + if proc.returncode != 0: + if PYTHON3: + sys.stdout.buffer.write(out) + else: + sys.stdout.write(out) + sys.exit(1) + def _outputcoverage(self): """Produce code coverage output.""" import coverage