Mercurial > hg
changeset 49833:a2356e15200a stable
hghave: add predicates for embedded and filesystem pyoxidizer resources
There are a handful of tests with different output between the two flavors of
pyoxidizer builds (like the location of the modules and templates), and a few
others that avoid `known-bad-output` cases with the embedded resources that
shouldn't cause the tests to fail.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 06 Dec 2022 13:02:54 -0500 |
parents | 9a4c76cc8fe6 |
children | 6a3549a01c02 |
files | tests/hghave.py tests/run-tests.py |
diffstat | 2 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/hghave.py Mon Dec 05 11:49:56 2022 -0500 +++ b/tests/hghave.py Tue Dec 06 13:02:54 2022 -0500 @@ -202,6 +202,22 @@ return 'PYOXIDIZED_INSTALLED_AS_HG' in os.environ +@check( + "pyoxidizer-in-memory", + "running with pyoxidizer build as 'hg' with embedded resources", +) +def has_pyoxidizer(): + return 'PYOXIDIZED_IN_MEMORY_RSRC' in os.environ + + +@check( + "pyoxidizer-in-filesystem", + "running with pyoxidizer build as 'hg' with external resources", +) +def has_pyoxidizer(): + return 'PYOXIDIZED_FILESYSTEM_RSRC' in os.environ + + @check("cvs", "cvs client/server") def has_cvs(): re = br'Concurrent Versions System.*?server'
--- a/tests/run-tests.py Mon Dec 05 11:49:56 2022 -0500 +++ b/tests/run-tests.py Tue Dec 06 13:02:54 2022 -0500 @@ -3451,6 +3451,9 @@ verbosity = 2 runner = TextTestRunner(self, verbosity=verbosity) + osenvironb.pop(b'PYOXIDIZED_IN_MEMORY_RSRC', None) + osenvironb.pop(b'PYOXIDIZED_FILESYSTEM_RSRC', None) + if self.options.list_tests: result = runner.listtests(suite) else: @@ -3886,6 +3889,20 @@ sys.stdout.buffer.write(out) sys.exit(1) + cmd = _bytes2sys(b"%s debuginstall -Tjson" % self._hgcommand) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + out, err = p.communicate() + + props = json.loads(out)[0] + + # Affects hghave.py + osenvironb.pop(b'PYOXIDIZED_IN_MEMORY_RSRC', None) + osenvironb.pop(b'PYOXIDIZED_FILESYSTEM_RSRC', None) + if props["hgmodules"] == props["pythonexe"]: + osenvironb[b'PYOXIDIZED_IN_MEMORY_RSRC'] = b'1' + else: + osenvironb[b'PYOXIDIZED_FILESYSTEM_RSRC'] = b'1' + def _outputcoverage(self): """Produce code coverage output.""" import coverage