From c1fd661648d7ef31a4872d39186bf5fddda6a0b1 Mon Sep 17 00:00:00 2001 From: Tony Hu Date: Thu, 25 Jan 2018 15:14:40 -0800 Subject: [PATCH] [infer][genrule] Added command-line option --check-version Reviewed By: jeremydubreil Differential Revision: D6813434 fbshipit-source-id: abd77b5 --- infer/src/backend/infer.ml | 8 ++++++++ infer/src/base/Config.ml | 7 +++++++ infer/src/base/Config.mli | 2 ++ 3 files changed, 17 insertions(+) diff --git a/infer/src/backend/infer.ml b/infer/src/backend/infer.ml index 0d6a092c2..17bd7577b 100644 --- a/infer/src/backend/infer.ml +++ b/infer/src/backend/infer.ml @@ -99,6 +99,14 @@ let () = L.exit 0 | Error e -> print_endline e ; L.exit 3 ) ; + ( match Config.check_version with + | Some check_version -> + if not (String.equal check_version Version.versionString) then + L.(die UserError) + "Provided version '%s' does not match actual version '%s'" check_version + Version.versionString + | None -> + () ) ; if Config.print_builtins then Builtin.print_and_exit () ; setup () ; log_environment_info () ; diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 1617face7..383285d83 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -872,6 +872,11 @@ and changed_files_index = "Specify the file containing the list of source files from which reactive analysis should start. Source files should be specified relative to project root or be absolute" +and check_version = + CLOpt.mk_string_opt ~long:"check-version" ~meta:"version" + "Verify that the Infer version is equal to the provided argument" + + and clang_biniou_file = CLOpt.mk_path_opt ~long:"clang-biniou-file" ~in_help:InferCommand.([(Capture, manual_clang)]) @@ -2286,6 +2291,8 @@ and changed_files_index = !changed_files_index and check_nullable = !check_nullable +and check_version = !check_version + and clang_biniou_file = !clang_biniou_file and clang_ignore_regex = !clang_ignore_regex diff --git a/infer/src/base/Config.mli b/infer/src/base/Config.mli index e1c3bc015..c56d91c8a 100644 --- a/infer/src/base/Config.mli +++ b/infer/src/base/Config.mli @@ -284,6 +284,8 @@ val changed_files_index : string option val check_nullable : bool +val check_version : string option + val clang_biniou_file : string option val clang_frontend_action_string : string