> On Aug 14, 2018, at 2:17 PM, Reid Kleckner <r...@google.com> wrote:
> 
> After this, check-clang no longer worked, it emitted a fatal error because 
> USE_Z3_SOLVER was not in lit_config.params. I worked around it in r339728, 
> but you might want to double check it.

Hm that’s strange, it works for me, and the buildbots are quiet this time.
Sorry for the trouble.
Your change seems safe in either case.

> 
> On Mon, Aug 13, 2018 at 4:13 PM George Karpenkov via cfe-commits 
> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote:
> Author: george.karpenkov
> Date: Mon Aug 13 16:12:43 2018
> New Revision: 339629
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=339629&view=rev 
> <http://llvm.org/viewvc/llvm-project?rev=339629&view=rev>
> Log:
> [analyzer] [NFC] Introduce separate targets for testing the analyzer: 
> check-clang-analyzer and check-clang-analyzer-z3
> 
> Current testing setup for analyzer tests with Z3 is rather inconvenient:
> 
> There's no way to run the analyzer tests separately (I use
> LIT_FILTER=Analysis ninja check-clang, but a direct target is nicer).
> 
> When Clang is built with Z3 support, there's no way to *not* run tests
> with Z3 solver, and this is often desired, as tests with Z3 solver take
> a very long time.
> 
> This patch introduces two extra targets:
> 
>  - check-clang-analyzer
>  - check-clang-analyzer-z3
> 
> which solve those problems.
> 
> Differential Revision: https://reviews.llvm.org/D50594 
> <https://reviews.llvm.org/D50594>
> 
> Modified:
>     cfe/trunk/test/Analysis/analyzer_test.py
>     cfe/trunk/test/Analysis/lit.local.cfg
>     cfe/trunk/test/CMakeLists.txt
>     cfe/trunk/test/lit.site.cfg.py.in <http://lit.site.cfg.py.in/>
> 
> Modified: cfe/trunk/test/Analysis/analyzer_test.py
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/analyzer_test.py?rev=339629&r1=339628&r2=339629&view=diff
>  
> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/analyzer_test.py?rev=339629&r1=339628&r2=339629&view=diff>
> ==============================================================================
> --- cfe/trunk/test/Analysis/analyzer_test.py (original)
> +++ cfe/trunk/test/Analysis/analyzer_test.py Mon Aug 13 16:12:43 2018
> @@ -4,6 +4,10 @@ import lit.TestRunner
>  # Custom format class for static analyzer tests
>  class AnalyzerTest(lit.formats.ShTest):
> 
> +    def __init__(self, execute_external, use_z3_solver=False):
> +        super(AnalyzerTest, self).__init__(execute_external)
> +        self.use_z3_solver = use_z3_solver
> +
>      def execute(self, test, litConfig):
>          results = []
> 
> @@ -19,7 +23,8 @@ class AnalyzerTest(lit.formats.ShTest):
>                  return results[-1]
> 
>          # If z3 backend available, add an additional run line for it
> -        if test.config.clang_staticanalyzer_z3 == '1':
> +        if self.use_z3_solver == '1':
> +            assert(test.config.clang_staticanalyzer_z3 == '1')
>              results.append(self.executeWithAnalyzeSubstitution(
>                  saved_test, litConfig, '-analyzer-constraints=z3 
> -DANALYZER_CM_Z3'))
> 
> 
> Modified: cfe/trunk/test/Analysis/lit.local.cfg
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/lit.local.cfg?rev=339629&r1=339628&r2=339629&view=diff
>  
> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/lit.local.cfg?rev=339629&r1=339628&r2=339629&view=diff>
> ==============================================================================
> --- cfe/trunk/test/Analysis/lit.local.cfg (original)
> +++ cfe/trunk/test/Analysis/lit.local.cfg Mon Aug 13 16:12:43 2018
> @@ -7,7 +7,7 @@ import site
>  site.addsitedir(os.path.dirname(__file__))
>  import analyzer_test
>  config.test_format = analyzer_test.AnalyzerTest(
> -        config.test_format.execute_external)
> +        config.test_format.execute_external, config.use_z3_solver)
> 
>  if not config.root.clang_staticanalyzer:
>      config.unsupported = True
> 
> Modified: cfe/trunk/test/CMakeLists.txt
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=339629&r1=339628&r2=339629&view=diff
>  
> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=339629&r1=339628&r2=339629&view=diff>
> ==============================================================================
> --- cfe/trunk/test/CMakeLists.txt (original)
> +++ cfe/trunk/test/CMakeLists.txt Mon Aug 13 16:12:43 2018
> @@ -88,8 +88,15 @@ endif ()
> 
>  set(CLANG_TEST_PARAMS
>    clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
> +  USE_Z3_SOLVER=0
>    )
> 
> +set(ANALYZER_TEST_PARAMS
> +  USE_Z3_SOLVER=0)
> +
> +set(ANALYZER_TEST_PARAMS_Z3
> +  USE_Z3_SOLVER=1)
> +
>  if( NOT CLANG_BUILT_STANDALONE )
>    list(APPEND CLANG_TEST_DEPS
>      llvm-config
> @@ -126,6 +133,24 @@ add_lit_testsuite(check-clang "Running t
>    )
>  set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
> 
> +if (CLANG_ENABLE_STATIC_ANALYZER)
> +  add_lit_testsuite(check-clang-analyzer "Running the Clang analyzer tests"
> +    ${CMAKE_CURRENT_BINARY_DIR}/Analysis
> +    PARAMS ${ANALYZER_TEST_PARAMS}
> +    DEPENDS ${CLANG_TEST_DEPS})
> +  set_target_properties(check-clang-analyzer PROPERTIES FOLDER "Clang tests")
> +
> +
> +  if (CLANG_ANALYZER_WITH_Z3)
> +    add_lit_testsuite(check-clang-analyzer-z3 "Running the Clang analyzer 
> tests, using Z3 as a solver"
> +      ${CMAKE_CURRENT_BINARY_DIR}/Analysis
> +      PARAMS ${ANALYZER_TEST_PARAMS_Z3}
> +      DEPENDS ${CLANG_TEST_DEPS})
> +    set_target_properties(check-clang-analyzer-z3 PROPERTIES FOLDER "Clang 
> tests")
> +  endif()
> +
> +endif()
> +
>  add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
>    PARAMS ${CLANG_TEST_PARAMS}
>    DEPENDS ${CLANG_TEST_DEPS}
> 
> Modified: cfe/trunk/test/lit.site.cfg.py.in <http://lit.site.cfg.py.in/>
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/lit.site.cfg.py.in?rev=339629&r1=339628&r2=339629&view=diff
>  
> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/lit.site.cfg.py.in?rev=339629&r1=339628&r2=339629&view=diff>
> ==============================================================================
> --- cfe/trunk/test/lit.site.cfg.py.in <http://lit.site.cfg.py.in/> (original)
> +++ cfe/trunk/test/lit.site.cfg.py.in <http://lit.site.cfg.py.in/> Mon Aug 13 
> 16:12:43 2018
> @@ -26,6 +26,7 @@ config.enable_shared = @ENABLE_SHARED@
>  config.enable_backtrace = @ENABLE_BACKTRACES@
>  config.host_arch = "@HOST_ARCH@"
>  config.python_executable = "@PYTHON_EXECUTABLE@"
> +config.use_z3_solver = "@USE_Z3_SOLVER@"
> 
>  # Support substitution of the tools and libs dirs with user parameters. This 
> is
>  # used when we can't determine the tool dir at configuration time.
> @@ -34,6 +35,7 @@ try:
>      config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params
>      config.llvm_shlib_dir = config.llvm_shlib_dir % lit_config.params
>      config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params
> +    config.use_z3_solver = lit_config.params['USE_Z3_SOLVER']
>  except KeyError:
>      e = sys.exc_info()[1]
>      key, = e.args
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits 
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits>

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to