Mercurial > hg
annotate contrib/python3-ratchet.py @ 45095:8e04607023e5
procutil: ensure that procutil.std{out,err}.write() writes all bytes
Python 3 offers different kind of streams and it’s not guaranteed for all of
them that calling write() writes all bytes.
When Python is started in unbuffered mode, sys.std{out,err}.buffer are
instances of io.FileIO, whose write() can write less bytes for
platform-specific reasons (e.g. Linux has a 0x7ffff000 bytes maximum and could
write less if interrupted by a signal; when writing to Windows consoles, it’s
limited to 32767 bytes to avoid the "not enough space" error). This can lead to
silent loss of data, both when using sys.std{out,err}.buffer (which may in fact
not be a buffered stream) and when using the text streams sys.std{out,err}
(I’ve created a CPython bug report for that:
https://bugs.python.org/issue41221).
Python may fix the problem at some point. For now, we implement our own wrapper
for procutil.std{out,err} that calls the raw stream’s write() method until all
bytes have been written. We don’t use sys.std{out,err} for larger writes, so I
think it’s not worth the effort to patch them.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Fri, 10 Jul 2020 12:27:58 +0200 |
parents | 9f70512ae2cf |
children | 89a2afe31e82 |
rev | line source |
---|---|
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 # Copyright 2012 Facebook |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 # |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 # This software may be used and distributed according to the terms of the |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 # GNU General Public License version 2 or any later version. |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 """Find tests that newly pass under Python 3. |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 The approach is simple: we maintain a whitelist of Python 3 passing |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 tests in the repository, and periodically run all the /other/ tests |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 and look for new passes. Any newly passing tests get automatically |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 added to the whitelist. |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 You probably want to run it like this: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 $ cd tests |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 $ python3 ../contrib/python3-ratchet.py \ |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 > --working-tests=../contrib/python3-whitelist |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 """ |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 from __future__ import print_function |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 from __future__ import absolute_import |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 import argparse |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 import json |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 import os |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
24 import subprocess |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
25 import sys |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
26 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
27 _hgenv = dict(os.environ) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
28 _hgenv.update( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
29 {'HGPLAIN': '1',} |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
30 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
31 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
32 _HG_FIRST_CHANGE = '9117c6561b0bd7792fa13b50d28239d51b78e51f' |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
33 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
34 |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
35 def _runhg(*args): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
36 return subprocess.check_output(args, env=_hgenv) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
38 |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
39 def _is_hg_repo(path): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
40 return ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
41 _runhg('hg', 'log', '-R', path, '-r0', '--template={node}').strip() |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
42 == _HG_FIRST_CHANGE |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
43 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
44 |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
45 |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
46 def _py3default(): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
47 if sys.version_info[0] >= 3: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
48 return sys.executable |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
49 return 'python3' |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
50 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
51 |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
52 def main(argv=()): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
53 p = argparse.ArgumentParser() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
54 p.add_argument( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
55 '--working-tests', help='List of tests that already work in Python 3.' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
56 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
57 p.add_argument( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
58 '--commit-to-repo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
59 help='If set, commit newly fixed tests to the given repo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
60 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
61 p.add_argument( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
62 '-j', |
43506
9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents:
43076
diff
changeset
|
63 default=os.sysconf('SC_NPROCESSORS_ONLN'), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
64 type=int, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
65 help='Number of parallel tests to run.', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
66 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
67 p.add_argument( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
68 '--python3', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
69 default=_py3default(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
70 help='python3 interpreter to use for test run', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
71 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
72 p.add_argument( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
73 '--commit-user', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
74 default='python3-ratchet@mercurial-scm.org', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
75 help='Username to specify when committing to a repo.', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
76 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
77 opts = p.parse_args(argv) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
78 if opts.commit_to_repo: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
79 if not _is_hg_repo(opts.commit_to_repo): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
80 print('abort: specified repository is not the hg repository') |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
81 sys.exit(1) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
82 if not opts.working_tests or not os.path.isfile(opts.working_tests): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
83 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
84 'abort: --working-tests must exist and be a file (got %r)' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
85 % opts.working_tests |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
86 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
87 sys.exit(1) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
88 elif opts.commit_to_repo: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
89 root = _runhg('hg', 'root').strip() |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
90 if not opts.working_tests.startswith(root): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
91 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
92 'abort: if --commit-to-repo is given, ' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
93 '--working-tests must be from that repo' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
94 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
95 sys.exit(1) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
96 try: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
97 subprocess.check_call( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
98 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
99 opts.python3, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
100 '-c', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
101 'import sys ; ' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
102 'assert ((3, 5) <= sys.version_info < (3, 6) ' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
103 'or sys.version_info >= (3, 6, 2))', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
104 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
105 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
106 except subprocess.CalledProcessError: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
107 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
108 'warning: Python 3.6.0 and 3.6.1 have ' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
109 'a bug which breaks Mercurial' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
110 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
111 print('(see https://bugs.python.org/issue29714 for details)') |
36589
3790610c2793
py3: bail on ratcheting tests forward on 3.6.0 and 3.6.1
Kevin Bullock <kbullock+mercurial@ringworld.org>
parents:
32855
diff
changeset
|
112 sys.exit(1) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
113 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
114 rt = subprocess.Popen( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
115 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
116 opts.python3, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
117 'run-tests.py', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
118 '-j', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
119 str(opts.j), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
120 '--blacklist', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
121 opts.working_tests, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
122 '--json', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
123 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
124 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
125 rt.wait() |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
126 with open('report.json') as f: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
127 data = f.read() |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
128 report = json.loads(data.split('=', 1)[1]) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
129 newpass = set() |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
130 for test, result in report.items(): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
131 if result['result'] != 'success': |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
132 continue |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
133 # A new passing test! Huzzah! |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
134 newpass.add(test) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
135 if newpass: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
136 # We already validated the repo, so we can just dive right in |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
137 # and commit. |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
138 if opts.commit_to_repo: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
139 print(len(newpass), 'new passing tests on Python 3!') |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
140 with open(opts.working_tests) as f: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
141 oldpass = {l for l in f.read().splitlines() if l} |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
142 with open(opts.working_tests, 'w') as f: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
143 for p in sorted(oldpass | newpass): |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
144 f.write('%s\n' % p) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
145 _runhg( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
146 'hg', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
147 'commit', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
148 '-R', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
149 opts.commit_to_repo, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
150 '--user', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
151 opts.commit_user, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
152 '--message', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
153 'python3: expand list of passing tests', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
154 ) |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
155 else: |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
156 print('Newly passing tests:', '\n'.join(sorted(newpass))) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
157 sys.exit(2) |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
158 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
36589
diff
changeset
|
159 |
32855
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
160 if __name__ == '__main__': |
28f429d19a71
contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
161 main(sys.argv[1:]) |