# HG changeset patch # User Yuya Nishihara # Date 1498826969 -32400 # Node ID cf826b9e9ea4b1fb4efca3356cbe5ef6a0ccbda6 # Parent 04cf9927f350e8d5814e49a78fd7d1734d689106 tests: actually restore the original environment before running syshg Since os.environ may be overridden in run-tests.py, several important variables such as PATH weren't restored. I don't like the idea of using the system hg *by default* because the executable and the configs are out of our control. But I don't mind as long as the tests pass. diff -r 04cf9927f350 -r cf826b9e9ea4 tests/run-tests.py --- a/tests/run-tests.py Sun Jul 02 20:08:09 2017 -0700 +++ b/tests/run-tests.py Fri Jun 30 21:49:29 2017 +0900 @@ -84,6 +84,7 @@ except NameError: pass +origenviron = os.environ.copy() osenvironb = getattr(os, 'environb', os.environ) processlock = threading.Lock() @@ -907,16 +908,21 @@ # us to export. name_regex = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$') + # Do not restore these variables; otherwise tests would fail. + reqnames = {'PYTHON', 'TESTDIR', 'TESTTMP'} + with open(scriptpath, 'w') as envf: - for name, value in os.environ.items(): + for name, value in origenviron.items(): if not name_regex.match(name): # Skip environment variables with unusual names not # allowed by most shells. continue + if name in reqnames: + continue envf.write('%s=%s\n' % (name, shellquote(value))) for name in testenv: - if name in os.environ: + if name in origenviron or name in reqnames: continue envf.write('unset %s\n' % (name,))