diff options
author | Craig Tiller <ctiller@google.com> | 2017-11-10 14:14:17 -0800 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2017-11-10 14:14:17 -0800 |
commit | 4ac2b8e585cbf7064f9bdde4eabaf8ff42801142 (patch) | |
tree | 5379629b43d287972916a87637a26251c1b0de5f /tools/distrib/run_clang_tidy.py | |
parent | e77b3c36d1b3e2033abd19d553748b678c22253f (diff) |
Enable clang-tidy as a sanity check, fix up all known failures
Diffstat (limited to 'tools/distrib/run_clang_tidy.py')
-rwxr-xr-x | tools/distrib/run_clang_tidy.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tools/distrib/run_clang_tidy.py b/tools/distrib/run_clang_tidy.py new file mode 100755 index 0000000000..d002a04de9 --- /dev/null +++ b/tools/distrib/run_clang_tidy.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python2.7 +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import os +import subprocess +import argparse +import multiprocessing + +sys.path.append( + os.path.join( + os.path.dirname(sys.argv[0]), '..', 'run_tests', 'python_utils')) +import jobset + +GRPC_CHECKS = [ + 'modernize-use-nullptr', +] + +extra_args = [ + '-x', + 'c++', + '-std=c++11', +] +with open('.clang_complete') as f: + for line in f: + line = line.strip() + if line.startswith('-I'): + extra_args.append(line) + +clang_tidy = os.environ.get('CLANG_TIDY', 'clang-tidy') + +argp = argparse.ArgumentParser(description='Run clang-tidy against core') +argp.add_argument('files', nargs='+', help='Files to tidy') +argp.add_argument('--fix', dest='fix', action='store_true') +argp.add_argument('-j', '--jobs', type=int, default=multiprocessing.cpu_count(), + help='Number of CPUs to use') +argp.set_defaults(fix=False) +args = argp.parse_args() + +cmdline = [ + clang_tidy, + '--checks=-*,%s' % ','.join(GRPC_CHECKS), + '--warnings-as-errors=%s' % ','.join(GRPC_CHECKS) +] + [ + '--extra-arg-before=%s' % arg + for arg in extra_args +] + +if args.fix: + cmdline.append('--fix') + +jobs = [] +for filename in args.files: + jobs.append(jobset.JobSpec(cmdline + [filename], + shortname=filename, + ))#verbose_success=True)) + +jobset.run(jobs, maxjobs=args.jobs) |