Mercurial > hg
annotate doc/docchecker @ 36438:93228b2a1fc0
run-tests: don't mask errors when a server fails to start
There are sporadic instances of this on Windows. They seem to happen more
frequently after the test machine is rebooted, although the only way to hit it
on my laptop is to loop certain tests with -j9 for hours. The problem with
masking out the specific failure is that there's no way to know if it's the same
line in the test that's failing, or if it is random.
The justification for adding this masking in 52e9e63f1495 was that the failures
occur regularly, but that's not the case anymore. The port number is still
printed, in case that turns out to be useful.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 25 Feb 2018 21:04:12 -0500 |
parents | c9ab5a0bc7c5 |
children | 9bfbb9fc5871 |
rev | line source |
---|---|
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
2 # |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
3 # docchecker - look for problematic markup |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
4 # |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
5 # Copyright 2016 timeless <timeless@mozdev.org> and others |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
6 # |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
7 # This software may be used and distributed according to the terms of the |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
8 # GNU General Public License version 2 or any later version. |
29168
8f2805ce93d9
py3: make doc/docchecker use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28811
diff
changeset
|
9 |
29169
c9ab5a0bc7c5
py3: make doc/docchecker use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29168
diff
changeset
|
10 from __future__ import absolute_import, print_function |
29168
8f2805ce93d9
py3: make doc/docchecker use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28811
diff
changeset
|
11 |
8f2805ce93d9
py3: make doc/docchecker use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28811
diff
changeset
|
12 import re |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
13 import sys |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
14 |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
15 leadingline = re.compile(r'(^\s*)(\S.*)$') |
28810
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
16 |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
17 checks = [ |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
18 (r""":hg:`[^`]*'[^`]*`""", |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
19 """warning: please avoid nesting ' in :hg:`...`"""), |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
20 (r'\w:hg:`', |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
21 'warning: please have a space before :hg:'), |
28811
1a623585a658
docchecker: try to reject single quotes
timeless <timeless@mozdev.org>
parents:
28810
diff
changeset
|
22 (r"""(?:[^a-z][^'.])hg ([^,;"`]*'(?!hg)){2}""", |
1a623585a658
docchecker: try to reject single quotes
timeless <timeless@mozdev.org>
parents:
28810
diff
changeset
|
23 '''warning: please use " instead of ' for hg ... "..."'''), |
28810
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
24 ] |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
25 |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
26 def check(line): |
28810
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
27 messages = [] |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
28 for match, msg in checks: |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
29 if re.search(match, line): |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
30 messages.append(msg) |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
31 if messages: |
28049
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
32 print(line) |
28810
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
33 for msg in messages: |
9934362978e1
docchecker: report context line at most once
timeless <timeless@mozdev.org>
parents:
28049
diff
changeset
|
34 print(msg) |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
35 |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
36 def work(file): |
28049
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
37 (llead, lline) = ('', '') |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
38 |
28049
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
39 for line in file: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
40 # this section unwraps lines |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
41 match = leadingline.match(line) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
42 if not match: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
43 check(lline) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
44 (llead, lline) = ('', '') |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
45 continue |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
46 |
28049
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
47 lead, line = match.group(1), match.group(2) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
48 if (lead == llead): |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
49 if (lline != ''): |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
50 lline += ' ' + line |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
51 else: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
52 lline = line |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
53 else: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
54 check(lline) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
55 (llead, lline) = (lead, line) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
56 check(lline) |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
57 |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
58 def main(): |
28049
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
59 for f in sys.argv[1:]: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
60 try: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
61 with open(f) as file: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
62 work(file) |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
63 except BaseException as e: |
c00f67c15c5a
docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
28048
diff
changeset
|
64 print("failed to process %s: %s" % (f, e)) |
27730
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
65 |
ed86fb2a4187
docchecker: introduce a way to check for poor markup
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
66 main() |