1017 def run(self, tests): |
1017 def run(self, tests): |
1018 """Run the test suite.""" |
1018 """Run the test suite.""" |
1019 return self._run(tests) |
1019 return self._run(tests) |
1020 |
1020 |
1021 def _run(self, tests): |
1021 def _run(self, tests): |
|
1022 if self.options.tmpdir: |
|
1023 self.options.keep_tmpdir = True |
|
1024 tmpdir = self.options.tmpdir |
|
1025 if os.path.exists(tmpdir): |
|
1026 # Meaning of tmpdir has changed since 1.3: we used to create |
|
1027 # HGTMP inside tmpdir; now HGTMP is tmpdir. So fail if |
|
1028 # tmpdir already exists. |
|
1029 print "error: temp dir %r already exists" % tmpdir |
|
1030 return 1 |
|
1031 |
|
1032 # Automatically removing tmpdir sounds convenient, but could |
|
1033 # really annoy anyone in the habit of using "--tmpdir=/tmp" |
|
1034 # or "--tmpdir=$HOME". |
|
1035 #vlog("# Removing temp dir", tmpdir) |
|
1036 #shutil.rmtree(tmpdir) |
|
1037 os.makedirs(tmpdir) |
|
1038 else: |
|
1039 d = None |
|
1040 if os.name == 'nt': |
|
1041 # without this, we get the default temp dir location, but |
|
1042 # in all lowercase, which causes troubles with paths (issue3490) |
|
1043 d = os.getenv('TMP') |
|
1044 tmpdir = tempfile.mkdtemp('', 'hgtests.', d) |
|
1045 self.hgtmp = os.environ['HGTMP'] = os.path.realpath(tmpdir) |
|
1046 |
1022 if self.options.with_hg: |
1047 if self.options.with_hg: |
1023 self.inst = None |
1048 self.inst = None |
1024 self.bindir = os.path.dirname(os.path.realpath( |
1049 self.bindir = os.path.dirname(os.path.realpath( |
1025 self.options.with_hg)) |
1050 self.options.with_hg)) |
1026 self.tmpbindir = os.path.join(self.hgtmp, 'install', 'bin') |
1051 self.tmpbindir = os.path.join(self.hgtmp, 'install', 'bin') |
1435 # use a random python hash seed all the time |
1460 # use a random python hash seed all the time |
1436 # we do the randomness ourself to know what seed is used |
1461 # we do the randomness ourself to know what seed is used |
1437 os.environ['PYTHONHASHSEED'] = str(random.getrandbits(32)) |
1462 os.environ['PYTHONHASHSEED'] = str(random.getrandbits(32)) |
1438 |
1463 |
1439 runner.testdir = os.environ['TESTDIR'] = os.getcwd() |
1464 runner.testdir = os.environ['TESTDIR'] = os.getcwd() |
1440 if options.tmpdir: |
|
1441 options.keep_tmpdir = True |
|
1442 tmpdir = options.tmpdir |
|
1443 if os.path.exists(tmpdir): |
|
1444 # Meaning of tmpdir has changed since 1.3: we used to create |
|
1445 # HGTMP inside tmpdir; now HGTMP is tmpdir. So fail if |
|
1446 # tmpdir already exists. |
|
1447 print "error: temp dir %r already exists" % tmpdir |
|
1448 return 1 |
|
1449 |
|
1450 # Automatically removing tmpdir sounds convenient, but could |
|
1451 # really annoy anyone in the habit of using "--tmpdir=/tmp" |
|
1452 # or "--tmpdir=$HOME". |
|
1453 #vlog("# Removing temp dir", tmpdir) |
|
1454 #shutil.rmtree(tmpdir) |
|
1455 os.makedirs(tmpdir) |
|
1456 else: |
|
1457 d = None |
|
1458 if os.name == 'nt': |
|
1459 # without this, we get the default temp dir location, but |
|
1460 # in all lowercase, which causes troubles with paths (issue3490) |
|
1461 d = os.getenv('TMP') |
|
1462 tmpdir = tempfile.mkdtemp('', 'hgtests.', d) |
|
1463 runner.hgtmp = os.environ['HGTMP'] = os.path.realpath(tmpdir) |
|
1464 |
1465 |
1465 return runner.run(tests) |
1466 return runner.run(tests) |
1466 |
1467 |
1467 if __name__ == '__main__': |
1468 if __name__ == '__main__': |
1468 sys.exit(main(sys.argv[1:])) |
1469 sys.exit(main(sys.argv[1:])) |