Author: Deep Majumder Date: 2021-08-17T10:42:57+05:30 New Revision: 198e6771e24fb5d8d9f3b155445ecc2a4f211004
URL: https://github.com/llvm/llvm-project/commit/198e6771e24fb5d8d9f3b155445ecc2a4f211004 DIFF: https://github.com/llvm/llvm-project/commit/198e6771e24fb5d8d9f3b155445ecc2a4f211004.diff LOG: [analyzer] Add option to SATest.py for extra checkers This patch adds the flag `extra-checkers` to the sub-command `build` for passing a comma separated list of additional checkers to include. Differential Revision: https://reviews.llvm.org/D106739 Added: Modified: clang/utils/analyzer/SATest.py clang/utils/analyzer/SATestBuild.py Removed: ################################################################################ diff --git a/clang/utils/analyzer/SATest.py b/clang/utils/analyzer/SATest.py index 176fe40a2b171..9931870b3b0dd 100755 --- a/clang/utils/analyzer/SATest.py +++ b/clang/utils/analyzer/SATest.py @@ -42,6 +42,7 @@ def build(parser, args): projects, args.override_compiler, args.extra_analyzer_config, + args.extra_checkers, args.regenerate, args.strictness) tests_passed = tester.test_all() @@ -250,6 +251,10 @@ def main(): dest="extra_analyzer_config", type=str, default="", help="Arguments passed to to -analyzer-config") + build_parser.add_argument("--extra-checkers", + dest="extra_checkers", type=str, + default="", + help="Extra checkers to enable") build_parser.add_argument("--projects", action="store", default="", help="Comma-separated list of projects to test") build_parser.add_argument("--max-size", action="store", default=None, diff --git a/clang/utils/analyzer/SATestBuild.py b/clang/utils/analyzer/SATestBuild.py index ed5c7379bb5b4..1977a8fc2aeff 100644 --- a/clang/utils/analyzer/SATestBuild.py +++ b/clang/utils/analyzer/SATestBuild.py @@ -213,6 +213,7 @@ class TestInfo(NamedTuple): project: ProjectInfo override_compiler: bool = False extra_analyzer_config: str = "" + extra_checkers: str = "" is_reference_build: bool = False strictness: int = 0 @@ -233,13 +234,16 @@ class RegressionTester: """ A component aggregating all of the project testing. """ + def __init__(self, jobs: int, projects: List[ProjectInfo], override_compiler: bool, extra_analyzer_config: str, + extra_checkers: str, regenerate: bool, strictness: bool): self.jobs = jobs self.projects = projects self.override_compiler = override_compiler self.extra_analyzer_config = extra_analyzer_config + self.extra_checkers = extra_checkers self.regenerate = regenerate self.strictness = strictness @@ -252,6 +256,7 @@ def test_all(self) -> bool: TestInfo(project, self.override_compiler, self.extra_analyzer_config, + self.extra_checkers, self.regenerate, self.strictness)) if self.jobs <= 1: return self._single_threaded_test_all(projects_to_test) @@ -305,10 +310,12 @@ class ProjectTester: """ A component aggregating testing for one project. """ + def __init__(self, test_info: TestInfo, silent: bool = False): self.project = test_info.project self.override_compiler = test_info.override_compiler self.extra_analyzer_config = test_info.extra_analyzer_config + self.extra_checkers = test_info.extra_checkers self.is_reference_build = test_info.is_reference_build self.strictness = test_info.strictness self.silent = silent @@ -414,6 +421,8 @@ def scan_build(self, directory: str, output_dir: str, if 'SA_ADDITIONAL_CHECKERS' in os.environ: all_checkers = (all_checkers + ',' + os.environ['SA_ADDITIONAL_CHECKERS']) + if self.extra_checkers != "": + all_checkers += "," + self.extra_checkers # Run scan-build from within the patched source directory. cwd = os.path.join(directory, PATCHED_SOURCE_DIR_NAME) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits