tests/test-legacy-exit-code.t
author Matt Harbison <matt_harbison@yahoo.com>
Mon, 09 Aug 2021 19:49:57 -0400
branchstable
changeset 47814 3b04e4746020
parent 45906 95c4cca641f6
child 49621 55c6ebd11cb9
permissions -rw-r--r--
contrib: switch the Windows bootstrap environment to py3.9 Use the built in `venv` module instead of `virtualenv` for simplicity, and upgrade to a modern Mercurial that supports py3. One issue here is that `venv` doesn't copy `python3{,Y}.dll` into the `Scripts` subdirectory, so running the `hg.exe` that gets installed immediately fails on a clean system because Python isn't in `PATH`. There is code in `python.exe` to detect when it is in a venv and add the original python install to the DLL lookup path, which we don't do in `hg.exe` yet. The simple workaround for now is to run the `hg` script with `python.exe`. Typically `PYTHONLEGACYWINDOWSSTDIO` must be set in the environment on Windows, but the clone process works without it. Differential Revision: https://phab.mercurial-scm.org/D11275

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
  $ 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]