Preparation for next patch.
Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
scripts/run-clang-tidy.py | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/scripts/run-clang-tidy.py b/scripts/run-clang-tidy.py
index 1d1038df0f..945a1f75d4 100755
--- a/scripts/run-clang-tidy.py
+++ b/scripts/run-clang-tidy.py
@@ -75,6 +75,7 @@ def run_clang_tidy(item):
cmd = (
"clang-tidy",
"--warnings-as-errors=*",
+ "--checks=-*,%s" % ",".join(checks),
"-p",
item["directory"],
item["file"])
@@ -90,7 +91,7 @@ def run_clang_tidy(item):
}
-def cache_name(item):
+def cache_name(item, checks):
if not args.cache:
return None
@@ -117,6 +118,7 @@ def cache_name(item):
hashsum = hashlib.sha256()
hashsum.update(item["command"].encode())
+ hashsum.update("\n".join(checks).encode())
hashsum.update(result.stdout.encode())
basename = "".join([c if c.isalnum() else "_" for c in
item["output"]])
@@ -145,7 +147,7 @@ def cache_write(filename, result):
json.dump(result, f)
-def worker():
+def worker(checks):
while True:
item = items.get()
if args.timeout and args.timeout < time.time():
@@ -156,7 +158,7 @@ def worker():
os.chdir(item["directory"])
- cache = cache_name(item)
+ cache = cache_name(item, checks)
result = cache_read(cache)
with lock:
print(item["file"], "" if result is None else "(from
cache)")
@@ -177,9 +179,19 @@ def worker():
items.task_done()
+def list_checks():
+ output = subprocess.check_output(
+ ["clang-tidy", "-checks=*", "-list-checks"],
+ universal_newlines=True).split("\n")[1:]
+
+ output = [line.strip() for line in output]
+ return output
+
+
args = parse_args()
items = queue.Queue()
lock = threading.Lock()
+checks = list_checks()
findings = list()
if args.cache:
@@ -189,8 +201,12 @@ if args.cache:
if args.timeout:
args.timeout = time.time() + args.timeout * 60
+print("Enabled checks:")
+for check in checks:
+ print(" %s" % check)
+
for _ in range(args.thread_num):
- threading.Thread(target=worker, daemon=True).start()
+ threading.Thread(target=worker, daemon=True, args=[checks]).start()
with open(os.path.join(args.build_dir, "compile_commands.json")) as f:
compile_commands = json.load(f)
--
2.26.2