contrib/python3-ratchet.py
author Simon Sapin <simon.sapin@octobus.net>
Fri, 28 May 2021 20:07:27 +0200
changeset 47347 73ddcedeaadf
parent 45942 89a2afe31e82
child 48875 6000f5b25c9b
permissions -rw-r--r--
dirstate-tree: Change status() results to not borrow DirstateMap The `status` function takes a `&'tree mut DirstateMap<'on_disk>` parameter. `'on_disk` borrows a read-only byte buffer with the contents of the `.hg/dirstate` file. `DirstateMap` internally uses represents file paths as `std::borrow::Cow<'on_disk, HgPath>`, which borrows the byte buffer when possible and allocates an owned string if not, such as for files added to the dirstate after it was loaded from disk. Previously the return type of of `status` has a `'tree` lifetime, meaning it could borrow all paths from the `DirstateMap`. With this changeset, that lifetime is changed to `'on_disk` meaning that only paths from the byte buffer can be borrowed, and paths allocated by `DirstateMap` must be copied. Usually most paths are in the byte buffer, and most paths are not part of the return value of `status`, so the number of extra copies should be small. This change will enable `status` to mutate the `DirstateMap` after it has finished constructing its return value. Previously such mutation would be prevented by possible on-going borrows. Differential Revision: https://phab.mercurial-scm.org/D10824
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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(
45942
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    29
    {
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    30
        'HGPLAIN': '1',
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    31
    }
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    32
)
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    33
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    34
_HG_FIRST_CHANGE = '9117c6561b0bd7792fa13b50d28239d51b78e51f'
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    36
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    37
def _runhg(*args):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    38
    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
    39
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    40
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    41
def _is_hg_repo(path):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    42
    return (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    43
        _runhg('hg', 'log', '-R', path, '-r0', '--template={node}').strip()
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    44
        == _HG_FIRST_CHANGE
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    45
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    46
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    47
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    48
def _py3default():
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    49
    if sys.version_info[0] >= 3:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    50
        return sys.executable
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    51
    return 'python3'
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    52
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    53
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    54
def main(argv=()):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    55
    p = argparse.ArgumentParser()
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    56
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    57
        '--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
    58
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    59
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    60
        '--commit-to-repo',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    61
        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
    62
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    63
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    64
        '-j',
43506
9f70512ae2cf cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
    65
        default=os.sysconf('SC_NPROCESSORS_ONLN'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    66
        type=int,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    67
        help='Number of parallel tests to run.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    68
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    69
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    70
        '--python3',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    71
        default=_py3default(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    72
        help='python3 interpreter to use for test run',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    73
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    74
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    75
        '--commit-user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    76
        default='python3-ratchet@mercurial-scm.org',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    77
        help='Username to specify when committing to a repo.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    78
    )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    79
    opts = p.parse_args(argv)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    80
    if opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    81
        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
    82
            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
    83
            sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    84
    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
    85
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    86
            '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
    87
            % opts.working_tests
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    88
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    89
        sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    90
    elif opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    91
        root = _runhg('hg', 'root').strip()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    92
        if not opts.working_tests.startswith(root):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    93
            print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    94
                'abort: if --commit-to-repo is given, '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    95
                '--working-tests must be from that repo'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    96
            )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    97
            sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    98
    try:
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    99
        subprocess.check_call(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   100
            [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   101
                opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   102
                '-c',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   103
                'import sys ; '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   104
                'assert ((3, 5) <= sys.version_info < (3, 6) '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   105
                'or sys.version_info >= (3, 6, 2))',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   106
            ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   107
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   108
    except subprocess.CalledProcessError:
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   109
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   110
            'warning: Python 3.6.0 and 3.6.1 have '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   111
            'a bug which breaks Mercurial'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   112
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   113
        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
   114
        sys.exit(1)
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   115
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   116
    rt = subprocess.Popen(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   117
        [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   118
            opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   119
            'run-tests.py',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   120
            '-j',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   121
            str(opts.j),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   122
            '--blacklist',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   123
            opts.working_tests,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   124
            '--json',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   125
        ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   126
    )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   127
    rt.wait()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   128
    with open('report.json') as f:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
        data = f.read()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   130
    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
   131
    newpass = set()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
    for test, result in report.items():
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
        if result['result'] != 'success':
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
            continue
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
        # A new passing test! Huzzah!
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   136
        newpass.add(test)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
    if newpass:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
        # 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
   139
        # and commit.
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   140
        if opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   141
            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
   142
            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
   143
                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
   144
            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
   145
                for p in sorted(oldpass | newpass):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   146
                    f.write('%s\n' % p)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   147
            _runhg(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   148
                'hg',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   149
                'commit',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   150
                '-R',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   151
                opts.commit_to_repo,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   152
                '--user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   153
                opts.commit_user,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   154
                '--message',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   155
                'python3: expand list of passing tests',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   156
            )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   157
        else:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   158
            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
   159
            sys.exit(2)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   160
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   161
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   162
if __name__ == '__main__':
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   163
    main(sys.argv[1:])