mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
partial revert dash#4807: enable more multi-threading and caching in linters
reverts:
- 3e6385eaa8
(only `run-lint-format-strings.py`)
This commit is contained in:
parent
7864c21645
commit
a0b051b4ef
@ -11,8 +11,6 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from functools import partial
|
|
||||||
from multiprocessing import Pool
|
|
||||||
|
|
||||||
FALSE_POSITIVES = [
|
FALSE_POSITIVES = [
|
||||||
("src/batchedlogger.h", "strprintf(fmt, args...)"),
|
("src/batchedlogger.h", "strprintf(fmt, args...)"),
|
||||||
@ -265,28 +263,6 @@ def count_format_specifiers(format_string):
|
|||||||
return n
|
return n
|
||||||
|
|
||||||
|
|
||||||
def handle_filename(filename, args):
|
|
||||||
exit_code = 0
|
|
||||||
with open(filename, "r", encoding="utf-8") as f:
|
|
||||||
for function_call_str in parse_function_calls(args.function_name, f.read()):
|
|
||||||
parts = parse_function_call_and_arguments(args.function_name, function_call_str)
|
|
||||||
relevant_function_call_str = unescape("".join(parts))[:512]
|
|
||||||
if (f.name, relevant_function_call_str) in FALSE_POSITIVES:
|
|
||||||
continue
|
|
||||||
if len(parts) < 3 + args.skip_arguments:
|
|
||||||
exit_code = 1
|
|
||||||
print("{}: Could not parse function call string \"{}(...)\": {}".format(f.name, args.function_name, relevant_function_call_str))
|
|
||||||
continue
|
|
||||||
argument_count = len(parts) - 3 - args.skip_arguments
|
|
||||||
format_str = parse_string_content(parts[1 + args.skip_arguments])
|
|
||||||
format_specifier_count = count_format_specifiers(format_str)
|
|
||||||
if format_specifier_count != argument_count:
|
|
||||||
exit_code = 1
|
|
||||||
print("{}: Expected {} argument(s) after format string but found {} argument(s): {}".format(f.name, format_specifier_count, argument_count, relevant_function_call_str))
|
|
||||||
continue
|
|
||||||
return exit_code
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="This program checks that the number of arguments passed "
|
parser = argparse.ArgumentParser(description="This program checks that the number of arguments passed "
|
||||||
"to a variadic format string function matches the number of format "
|
"to a variadic format string function matches the number of format "
|
||||||
@ -296,12 +272,26 @@ def main():
|
|||||||
parser.add_argument("function_name", help="function name (e.g. fprintf)", default=None)
|
parser.add_argument("function_name", help="function name (e.g. fprintf)", default=None)
|
||||||
parser.add_argument("file", nargs="*", help="C++ source code file (e.g. foo.cpp)")
|
parser.add_argument("file", nargs="*", help="C++ source code file (e.g. foo.cpp)")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
exit_codes = []
|
exit_code = 0
|
||||||
|
for filename in args.file:
|
||||||
with Pool(8) as pool:
|
with open(filename, "r", encoding="utf-8") as f:
|
||||||
exit_codes = pool.map(partial(handle_filename, args=args), args.file)
|
for function_call_str in parse_function_calls(args.function_name, f.read()):
|
||||||
|
parts = parse_function_call_and_arguments(args.function_name, function_call_str)
|
||||||
sys.exit(max(exit_codes))
|
relevant_function_call_str = unescape("".join(parts))[:512]
|
||||||
|
if (f.name, relevant_function_call_str) in FALSE_POSITIVES:
|
||||||
|
continue
|
||||||
|
if len(parts) < 3 + args.skip_arguments:
|
||||||
|
exit_code = 1
|
||||||
|
print("{}: Could not parse function call string \"{}(...)\": {}".format(f.name, args.function_name, relevant_function_call_str))
|
||||||
|
continue
|
||||||
|
argument_count = len(parts) - 3 - args.skip_arguments
|
||||||
|
format_str = parse_string_content(parts[1 + args.skip_arguments])
|
||||||
|
format_specifier_count = count_format_specifiers(format_str)
|
||||||
|
if format_specifier_count != argument_count:
|
||||||
|
exit_code = 1
|
||||||
|
print("{}: Expected {} argument(s) after format string but found {} argument(s): {}".format(f.name, format_specifier_count, argument_count, relevant_function_call_str))
|
||||||
|
continue
|
||||||
|
sys.exit(exit_code)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
Reference in New Issue
Block a user