sapling/eden/scm/tests/test-check-help.t
Mark Thomas 052e7c3877 check-code: convert to Python 3
Summary:
Update `contrib/check-code.py` to Python 3.

Mostly it was already compatible, however stricter regular expression parsing
revealed a case where one of our tests wasn't working, and as a result lots of
instances of `open(file).read()` existed that this test should have caught.

I have fixed up most of the instances in the code, although there are many
in the test suite that I have ignored for now.

Reviewed By: quark-zju

Differential Revision: D21427212

fbshipit-source-id: 7461a7c391e0ade947f779a2b476ca937fd24a8d
2020-05-07 09:07:50 -07:00

37 lines
1.2 KiB
Perl

#chg-compatible
#require test-repo normal-layout
$ . "$TESTDIR/helpers-testrepo.sh"
$ enable amend undo
$ cat <<'EOF' > scanhelptopics.py
> from __future__ import absolute_import, print_function
> import re
> import sys
> if sys.platform == "win32":
> import os, msvcrt
> msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
> topics = set()
> topicre = re.compile(r':hg:`help ([a-z0-9\-.]+)`')
> for fname in sys.argv:
> with open(fname) as f:
> topics.update(m.group(1) for m in topicre.finditer(f.read()))
> for s in sorted(topics):
> print(s)
> EOF
$ cd "$TESTDIR"/..
Check if ":hg:`help TOPIC`" is valid:
(use "xargs -n1 -t" to see which help commands are executed)
$ NPROC=`$PYTHON -c 'import multiprocessing; print(multiprocessing.cpu_count())'`
$ testrepohg files 'glob:edenscm/**/*.py' \
> | sed 's|\\|/|g' \
> | xargs $PYTHON "$TESTTMP/scanhelptopics.py" > $TESTTMP/topics
Remove subversion from the list; it does not work on macOS and casuses this test
to print errors.
$ grep -v subversion $TESTTMP/topics > $TESTTMP/topics_filtered
$ cat $TESTTMP/topics_filtered | xargs -n1 -P $NPROC hg --cwd / help >/dev/null