tests/test-check-help.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 15 Feb 2023 11:51:58 +0100
changeset 50085 28dfb2df4ab9
parent 48967 42d2b31cee0b
permissions -rw-r--r--
commit: use `dirstate.change_files` to scope the associated `addremove` This was significantly more complicated than I expected, because multiple extensions get in the way. I introduced a context that lazily open the transaction and associated context to work around these complication. See the inline documentation for details. Introducing the wrapping transaction remove the need for dirstate-guard (one of the ultimate goal of all this), and slightly affect the result of a `hg rollback` after a `hg commit --addremove`. That last part is deemed fine. It aligns the behavior with what happens after a failed `hg commit --addremove` and nobody should be using `hg rollback` anyway. The small output change in the test come from the different transaction timing and fact the transaction now backup the dirstate before the addremove, which might mean "no file to backup" when the repository starts from an empty state.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30912
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     1
#require test-repo
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     2
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     4
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     5
  $ cat <<'EOF' > scanhelptopics.py
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     6
  > import re
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     7
  > import sys
31505
a248bbfa0bc7 test-check-help: fix to work on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30912
diff changeset
     8
  > if sys.platform == "win32":
40092
c36846abbcd3 tests: import multiple modules separately
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 39723
diff changeset
     9
  >     import msvcrt
c36846abbcd3 tests: import multiple modules separately
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 39723
diff changeset
    10
  >     import os
31505
a248bbfa0bc7 test-check-help: fix to work on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30912
diff changeset
    11
  >     msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
41010
b6c610bf567e py3: use bytes stdout in test-check-help.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 40092
diff changeset
    12
  > stdout = getattr(sys.stdout, 'buffer', sys.stdout)
30912
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    13
  > topics = set()
35987
a36d3c8a0e41 py3: add b'' prefixes to string literals in test files
Pulkit Goyal <7895pulkit@gmail.com>
parents: 33204
diff changeset
    14
  > topicre = re.compile(br':hg:`help ([a-z0-9\-.]+)`')
30912
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    15
  > for fname in sys.argv:
35989
80e5210df25c py3: make sure we open the file in bytes mode
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35987
diff changeset
    16
  >     with open(fname, 'rb') as f:
30912
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    17
  >         topics.update(m.group(1) for m in topicre.finditer(f.read()))
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    18
  > for s in sorted(topics):
41010
b6c610bf567e py3: use bytes stdout in test-check-help.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 40092
diff changeset
    19
  >     stdout.write(b'%s\n' % s)
30912
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    20
  > EOF
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    21
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    22
  $ cd "$TESTDIR"/..
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    23
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    24
Check if ":hg:`help TOPIC`" is valid:
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    25
(use "xargs -n1 -t" to see which help commands are executed)
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    26
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33128
diff changeset
    27
  $ testrepohg files 'glob:{hgdemandimport,hgext,mercurial}/**/*.py' \
33128
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 32958
diff changeset
    28
  > | sed 's|\\|/|g' \
39723
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39668
diff changeset
    29
  > | xargs "$PYTHON" "$TESTTMP/scanhelptopics.py" \
39668
d2c81e83de2a phabricator: move extension from contrib to hgext
Augie Fackler <raf@durin42.com>
parents: 35989
diff changeset
    30
  > | xargs -n1 hg help --config extensions.phabricator= > /dev/null