annotate tests/test-check-help.t @ 34107:4f60720cf0df

blackbox: fix rotation with chg The added test will show: $ $PYTHON showsize.py .hg/blackbox* .hg/blackbox.log: < 500 .hg/blackbox.log.1: < 500 .hg/blackbox.log.2: < 500 .hg/blackbox.log.3: < 500 .hg/blackbox.log.4: < 500 .hg/blackbox.log.5: >= 500 with previous code. The issue is caused by blackbox caching file objects *by path*, and the rotation size check could run on a wrong file object (i.e. it should check "blackbox.log", but `filehandles["blackbox.log"]` contains a file object that has been renamed to "blackbox.log.5"). This patch removes the "filehandlers" global cache added by 45313f5a3a8c to solve the issue. I think the original patch was trying to make different ui objects use a same file object if their blackbox.log path is the same. In theory it could also be problematic in the rotation case. Anyway, that should become unnecessary after D650. Differential Revision: https://phab.mercurial-scm.org/D648
author Jun Wu <quark@fb.com>
date Wed, 06 Sep 2017 19:27:30 -0700
parents ddd65b4f3ae6
children a36d3c8a0e41
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30880
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 > from __future__ import absolute_import, print_function
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
7 > import re
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
8 > import sys
31498
a248bbfa0bc7 test-check-help: fix to work on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30880
diff changeset
9 > if sys.platform == "win32":
a248bbfa0bc7 test-check-help: fix to work on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30880
diff changeset
10 > import os, msvcrt
a248bbfa0bc7 test-check-help: fix to work on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 30880
diff changeset
11 > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
30880
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
12 > topics = set()
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
13 > topicre = re.compile(r':hg:`help ([a-z0-9\-.]+)`')
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
14 > for fname in sys.argv:
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
15 > with open(fname) as f:
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
16 > 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
17 > for s in sorted(topics):
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
18 > print(s)
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
19 > EOF
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
20
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
21 $ cd "$TESTDIR"/..
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
22
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
23 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
24 (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
25
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
26 $ testrepohg files 'glob:{hgdemandimport,hgext,mercurial}/**/*.py' \
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 32940
diff changeset
27 > | sed 's|\\|/|g' \
32940
75be14993fda cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents: 32421
diff changeset
28 > | xargs $PYTHON "$TESTTMP/scanhelptopics.py" \
30880
b6c051cd1231 help: test if "hg help TOPIC" reference is valid
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
29 > | xargs -n1 hg help > /dev/null