Mercurial > hg
comparison tests/run-tests.py @ 28099:a5f0c0aab2bb
run-tests: allow to specify executable of any name by --with-hg
If the executable is not named as "hg", TTest runner inserts alias. This
way, we can run tests with chg. But it is still warned because the alias
does not always work. We do "$BINDIR"/hg in a few places.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 07 Feb 2016 15:21:39 +0900 |
parents | d7b0e81b84c2 |
children | 562a073a2a1b |
comparison
equal
deleted
inserted
replaced
28098:d7b0e81b84c2 | 28099:a5f0c0aab2bb |
---|---|
442 | 442 |
443 def __init__(self, path, tmpdir, keeptmpdir=False, | 443 def __init__(self, path, tmpdir, keeptmpdir=False, |
444 debug=False, | 444 debug=False, |
445 timeout=defaults['timeout'], | 445 timeout=defaults['timeout'], |
446 startport=defaults['port'], extraconfigopts=None, | 446 startport=defaults['port'], extraconfigopts=None, |
447 py3kwarnings=False, shell=None, | 447 py3kwarnings=False, shell=None, hgcommand=None, |
448 slowtimeout=defaults['slowtimeout']): | 448 slowtimeout=defaults['slowtimeout']): |
449 """Create a test from parameters. | 449 """Create a test from parameters. |
450 | 450 |
451 path is the full path to the file defining the test. | 451 path is the full path to the file defining the test. |
452 | 452 |
489 self._slowtimeout = slowtimeout | 489 self._slowtimeout = slowtimeout |
490 self._startport = startport | 490 self._startport = startport |
491 self._extraconfigopts = extraconfigopts or [] | 491 self._extraconfigopts = extraconfigopts or [] |
492 self._py3kwarnings = py3kwarnings | 492 self._py3kwarnings = py3kwarnings |
493 self._shell = _bytespath(shell) | 493 self._shell = _bytespath(shell) |
494 self._hgcommand = hgcommand or b'hg' | |
494 | 495 |
495 self._aborted = False | 496 self._aborted = False |
496 self._daemonpids = [] | 497 self._daemonpids = [] |
497 self._finished = None | 498 self._finished = None |
498 self._ret = None | 499 self._ret = None |
987 # can generate the surrounding doctest magic. | 988 # can generate the surrounding doctest magic. |
988 inpython = False | 989 inpython = False |
989 | 990 |
990 if self._debug: | 991 if self._debug: |
991 script.append(b'set -x\n') | 992 script.append(b'set -x\n') |
993 if self._hgcommand != b'hg': | |
994 script.append(b'alias hg="%s"\n' % self._hgcommand) | |
992 if os.getenv('MSYSTEM'): | 995 if os.getenv('MSYSTEM'): |
993 script.append(b'alias pwd="pwd -W"\n') | 996 script.append(b'alias pwd="pwd -W"\n') |
994 | 997 |
995 for n, l in enumerate(lines): | 998 for n, l in enumerate(lines): |
996 if not l.endswith(b'\n'): | 999 if not l.endswith(b'\n'): |
1815 self._bindir = None | 1818 self._bindir = None |
1816 self._tmpbinddir = None | 1819 self._tmpbinddir = None |
1817 self._pythondir = None | 1820 self._pythondir = None |
1818 self._coveragefile = None | 1821 self._coveragefile = None |
1819 self._createdfiles = [] | 1822 self._createdfiles = [] |
1823 self._hgcommand = None | |
1820 self._hgpath = None | 1824 self._hgpath = None |
1821 self._portoffset = 0 | 1825 self._portoffset = 0 |
1822 self._ports = {} | 1826 self._ports = {} |
1823 | 1827 |
1824 def run(self, args, parser=None): | 1828 def run(self, args, parser=None): |
1923 if self.options.with_hg: | 1927 if self.options.with_hg: |
1924 self._installdir = None | 1928 self._installdir = None |
1925 whg = self.options.with_hg | 1929 whg = self.options.with_hg |
1926 self._bindir = os.path.dirname(os.path.realpath(whg)) | 1930 self._bindir = os.path.dirname(os.path.realpath(whg)) |
1927 assert isinstance(self._bindir, bytes) | 1931 assert isinstance(self._bindir, bytes) |
1932 self._hgcommand = os.path.basename(whg) | |
1928 self._tmpbindir = os.path.join(self._hgtmp, b'install', b'bin') | 1933 self._tmpbindir = os.path.join(self._hgtmp, b'install', b'bin') |
1929 os.makedirs(self._tmpbindir) | 1934 os.makedirs(self._tmpbindir) |
1930 | 1935 |
1931 # This looks redundant with how Python initializes sys.path from | 1936 # This looks redundant with how Python initializes sys.path from |
1932 # the location of the script being executed. Needed because the | 1937 # the location of the script being executed. Needed because the |
1935 # ... which means it's not really redundant at all. | 1940 # ... which means it's not really redundant at all. |
1936 self._pythondir = self._bindir | 1941 self._pythondir = self._bindir |
1937 else: | 1942 else: |
1938 self._installdir = os.path.join(self._hgtmp, b"install") | 1943 self._installdir = os.path.join(self._hgtmp, b"install") |
1939 self._bindir = os.path.join(self._installdir, b"bin") | 1944 self._bindir = os.path.join(self._installdir, b"bin") |
1945 self._hgcommand = b'hg' | |
1940 self._tmpbindir = self._bindir | 1946 self._tmpbindir = self._bindir |
1941 self._pythondir = os.path.join(self._installdir, b"lib", b"python") | 1947 self._pythondir = os.path.join(self._installdir, b"lib", b"python") |
1942 | 1948 |
1943 osenvironb[b"BINDIR"] = self._bindir | 1949 osenvironb[b"BINDIR"] = self._bindir |
1944 osenvironb[b"PYTHON"] = PYTHON | 1950 osenvironb[b"PYTHON"] = PYTHON |
2115 debug=self.options.debug, | 2121 debug=self.options.debug, |
2116 timeout=self.options.timeout, | 2122 timeout=self.options.timeout, |
2117 startport=self._getport(count), | 2123 startport=self._getport(count), |
2118 extraconfigopts=self.options.extra_config_opt, | 2124 extraconfigopts=self.options.extra_config_opt, |
2119 py3kwarnings=self.options.py3k_warnings, | 2125 py3kwarnings=self.options.py3k_warnings, |
2120 shell=self.options.shell) | 2126 shell=self.options.shell, |
2127 hgcommand=self._hgcommand) | |
2121 t.should_reload = True | 2128 t.should_reload = True |
2122 return t | 2129 return t |
2123 | 2130 |
2124 def _cleanup(self): | 2131 def _cleanup(self): |
2125 """Clean up state from this test invocation.""" | 2132 """Clean up state from this test invocation.""" |