Mercurial > hg
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 |
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 |