253 help="install and use chg wrapper in place of hg") |
253 help="install and use chg wrapper in place of hg") |
254 parser.add_option("--with-chg", metavar="CHG", |
254 parser.add_option("--with-chg", metavar="CHG", |
255 help="use specified chg wrapper in place of hg") |
255 help="use specified chg wrapper in place of hg") |
256 parser.add_option("-3", "--py3k-warnings", action="store_true", |
256 parser.add_option("-3", "--py3k-warnings", action="store_true", |
257 help="enable Py3k warnings on Python 2.6+") |
257 help="enable Py3k warnings on Python 2.6+") |
|
258 # This option should be deleted once test-check-py3-compat.t and other |
|
259 # Python 3 tests run with Python 3. |
|
260 parser.add_option("--with-python3", metavar="PYTHON3", |
|
261 help="Python 3 interpreter (if running under Python 2)" |
|
262 " (TEMPORARY)") |
258 parser.add_option('--extra-config-opt', action="append", |
263 parser.add_option('--extra-config-opt', action="append", |
259 help='set the given config opt in the test hgrc') |
264 help='set the given config opt in the test hgrc') |
260 parser.add_option('--random', action="store_true", |
265 parser.add_option('--random', action="store_true", |
261 help='run tests in random order') |
266 help='run tests in random order') |
262 parser.add_option('--profile-runner', action='store_true', |
267 parser.add_option('--profile-runner', action='store_true', |
351 options.slowtimeout = 0 |
356 options.slowtimeout = 0 |
352 if options.py3k_warnings: |
357 if options.py3k_warnings: |
353 if PYTHON3: |
358 if PYTHON3: |
354 parser.error( |
359 parser.error( |
355 '--py3k-warnings can only be used on Python 2.6 and 2.7') |
360 '--py3k-warnings can only be used on Python 2.6 and 2.7') |
|
361 if options.with_python3: |
|
362 if PYTHON3: |
|
363 parser.error('--with-python3 cannot be used when executing with ' |
|
364 'Python 3') |
|
365 |
|
366 # Verify Python3 executable is acceptable. |
|
367 proc = subprocess.Popen([options.with_python3, b'--version'], |
|
368 stdout=subprocess.PIPE, |
|
369 stderr=subprocess.STDOUT) |
|
370 out, _err = proc.communicate() |
|
371 ret = proc.wait() |
|
372 if ret != 0: |
|
373 parser.error('could not determine version of python 3') |
|
374 if not out.startswith('Python '): |
|
375 parser.error('unexpected output from python3 --version: %s' % |
|
376 out) |
|
377 vers = version.LooseVersion(out[len('Python '):]) |
|
378 if vers < version.LooseVersion('3.5.0'): |
|
379 parser.error('--with-python3 version must be 3.5.0 or greater; ' |
|
380 'got %s' % out) |
|
381 |
356 if options.blacklist: |
382 if options.blacklist: |
357 options.blacklist = parselistfiles(options.blacklist, 'blacklist') |
383 options.blacklist = parselistfiles(options.blacklist, 'blacklist') |
358 if options.whitelist: |
384 if options.whitelist: |
359 options.whitelisted = parselistfiles(options.whitelist, 'whitelist') |
385 options.whitelisted = parselistfiles(options.whitelist, 'whitelist') |
360 else: |
386 else: |
1985 self._hgcommand = os.path.basename(self.options.with_chg) |
2011 self._hgcommand = os.path.basename(self.options.with_chg) |
1986 |
2012 |
1987 osenvironb[b"BINDIR"] = self._bindir |
2013 osenvironb[b"BINDIR"] = self._bindir |
1988 osenvironb[b"PYTHON"] = PYTHON |
2014 osenvironb[b"PYTHON"] = PYTHON |
1989 |
2015 |
|
2016 if self.options.with_python3: |
|
2017 osenvironb[b'PYTHON3'] = self.options.with_python3 |
|
2018 |
1990 fileb = _bytespath(__file__) |
2019 fileb = _bytespath(__file__) |
1991 runtestdir = os.path.abspath(os.path.dirname(fileb)) |
2020 runtestdir = os.path.abspath(os.path.dirname(fileb)) |
1992 osenvironb[b'RUNTESTDIR'] = runtestdir |
2021 osenvironb[b'RUNTESTDIR'] = runtestdir |
1993 if PYTHON3: |
2022 if PYTHON3: |
1994 sepb = _bytespath(os.pathsep) |
2023 sepb = _bytespath(os.pathsep) |