Mercurial > hg
view tests/test-legacy-exit-code.t @ 50353:c2a1f8668606 stable
chg: set CHGHG before connecting to command server
cf4d2f31 (!523) changed chg to set `CHGHG` itself when spawning a new command
server, in order to ensure that the path to the `hg` executable would be checked
during server validation. (This is useful when chg is built with `HGPATHREL`).
However, that change broke chg because it failed to set `CHGHG` before trying
to connect to an existing command server. This means that if `CHGHG` is not
present in the environment, chg will always spawn a new command server, entirely
negating the point of chg.
This breakage wasn't initially caught because of the difficulty of writing
automated tests with the `HGPATHREL` feature enabled, which meant the change
was only tested manually to make sure that it fixed the problem with `HGPATHREL`
that prompted the change.
In practice, this functionality is only really useful when chg is built with
`HGPATHREL`, so I considered wrapping it in an `#ifdef` to preserve the old
behavior by default. However, this makes it hard to write tests since one would
have to explicitly set `HGPATHREL=1` when running `run-tests.py` (which is why
the original change lacked tests). It would be great if there were a way of
testing features that are gated behind conditional compilation.
author | Arun Kulshreshtha <akulshreshtha@janestreet.com> |
---|---|
date | Thu, 20 Apr 2023 09:23:58 -0400 |
parents | 55c6ebd11cb9 |
children |
line wrap: on
line source
Tests that the exit code is as expected when ui.detailed-exit-code is *not* enabled. $ cat >> $HGRCPATH << EOF > [ui] > detailed-exit-code=no > EOF $ hg init repo $ cd repo $ echo a > a Expect exit code 0 on success $ hg ci -Aqm initial $ hg co nonexistent abort: unknown revision 'nonexistent' [255] $ hg co 'none()' abort: empty revision set [255] $ hg co 'invalid(' hg: parse error at 8: not a prefix: end (invalid( ^ here) [255] $ hg co 'invalid(' hg: parse error at 8: not a prefix: end (invalid( ^ here) [255] $ hg continue abort: no operation in progress [255] $ hg st --config a=b abort: malformed --config option: 'a=b' (use --config section.name=value) [255] $ echo b > a $ hg ci -m second $ echo c > a $ hg ci -m third $ hg --config extensions.rebase= rebase -r . -d 0 -q warning: conflicts while merging a! (edit, then use 'hg resolve --mark') unresolved conflicts (see 'hg resolve', then 'hg rebase --continue') [1]