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.
On Mon, Aug 13, 2018 at 4:13 PM George Karpenkov via cfe-commits < 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 > 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 > > 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 > > 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 > > ============================================================================== > --- 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 > > ============================================================================== > --- 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 > > ============================================================================== > --- 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 > URL: > 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 (original) > +++ cfe/trunk/test/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 > 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