<div dir="ltr">Hello George,<br><br>This commit broke few of our builders:<br><br><a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/34845">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/34845</a><br><a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/19056">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/19056</a><br><br><a href="http://lab.llvm.org:8011/builders/clang-lld-x86_64-2stage">http://lab.llvm.org:8011/builders/clang-lld-x86_64-2stage</a><br><a href="http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu">http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu</a><br>etc...<br><br>...<br>Failing Tests (11):<br>    Clang :: Analysis/auto-obj-dtors-cfg-output.cpp<br>    Clang :: Analysis/<a href="http://blocks.mm">blocks.mm</a><br>    Clang :: Analysis/cfg-rich-constructors.cpp<br>    Clang :: Analysis/<a href="http://cfg-rich-constructors.mm">cfg-rich-constructors.mm</a><br>    Clang :: Analysis/conditional-path-notes.c<br>    Clang :: Analysis/diagnostics/plist-multi-file.c<br>    Clang :: Analysis/html-diags.c<br>    Clang :: Analysis/plist-html-macros.c<br>    Clang :: Analysis/plist-html-macros.c<br>    Clang :: Analysis/retain-release-path-notes-gc.m<br>    Clang :: Analysis/temp-obj-dtors-cfg-output.cpp<br><br>Please have a look ASAP?<br><br>Thanks<br><br>Galina<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 13, 2018 at 4:12 PM, George Karpenkov via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: george.karpenkov<br>
Date: Mon Aug 13 16:12:43 2018<br>
New Revision: 339629<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=339629&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=339629&view=rev</a><br>
Log:<br>
[analyzer] [NFC] Introduce separate targets for testing the analyzer: check-clang-analyzer and check-clang-analyzer-z3<br>
<br>
Current testing setup for analyzer tests with Z3 is rather inconvenient:<br>
<br>
There's no way to run the analyzer tests separately (I use<br>
LIT_FILTER=Analysis ninja check-clang, but a direct target is nicer).<br>
<br>
When Clang is built with Z3 support, there's no way to *not* run tests<br>
with Z3 solver, and this is often desired, as tests with Z3 solver take<br>
a very long time.<br>
<br>
This patch introduces two extra targets:<br>
<br>
 - check-clang-analyzer<br>
 - check-clang-analyzer-z3<br>
<br>
which solve those problems.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D50594" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D50594</a><br>
<br>
Modified:<br>
    cfe/trunk/test/Analysis/<wbr>analyzer_test.py<br>
    cfe/trunk/test/Analysis/lit.<wbr>local.cfg<br>
    cfe/trunk/test/CMakeLists.txt<br>
    cfe/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.<wbr>py.in</a><br>
<br>
Modified: cfe/trunk/test/Analysis/<wbr>analyzer_test.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/analyzer_test.py?rev=339629&r1=339628&r2=339629&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/<wbr>Analysis/analyzer_test.py?rev=<wbr>339629&r1=339628&r2=339629&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/Analysis/<wbr>analyzer_test.py (original)<br>
+++ cfe/trunk/test/Analysis/<wbr>analyzer_test.py Mon Aug 13 16:12:43 2018<br>
@@ -4,6 +4,10 @@ import lit.TestRunner<br>
 # Custom format class for static analyzer tests<br>
 class AnalyzerTest(lit.formats.<wbr>ShTest):<br>
<br>
+    def __init__(self, execute_external, use_z3_solver=False):<br>
+        super(AnalyzerTest, self).__init__(execute_<wbr>external)<br>
+        self.use_z3_solver = use_z3_solver<br>
+<br>
     def execute(self, test, litConfig):<br>
         results = []<br>
<br>
@@ -19,7 +23,8 @@ class AnalyzerTest(lit.formats.<wbr>ShTest):<br>
                 return results[-1]<br>
<br>
         # If z3 backend available, add an additional run line for it<br>
-        if test.config.clang_<wbr>staticanalyzer_z3 == '1':<br>
+        if self.use_z3_solver == '1':<br>
+            assert(test.config.clang_<wbr>staticanalyzer_z3 == '1')<br>
             results.append(self.<wbr>executeWithAnalyzeSubstitution<wbr>(<br>
                 saved_test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3'))<br>
<br>
<br>
Modified: cfe/trunk/test/Analysis/lit.<wbr>local.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/lit.local.cfg?rev=339629&r1=339628&r2=339629&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/<wbr>Analysis/lit.local.cfg?rev=<wbr>339629&r1=339628&r2=339629&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/Analysis/lit.<wbr>local.cfg (original)<br>
+++ cfe/trunk/test/Analysis/lit.<wbr>local.cfg Mon Aug 13 16:12:43 2018<br>
@@ -7,7 +7,7 @@ import site<br>
 site.addsitedir(os.path.<wbr>dirname(__file__))<br>
 import analyzer_test<br>
 config.test_format = analyzer_test.AnalyzerTest(<br>
-        config.test_format.execute_<wbr>external)<br>
+        config.test_format.execute_<wbr>external, config.use_z3_solver)<br>
<br>
 if not config.root.clang_<wbr>staticanalyzer:<br>
     config.unsupported = True<br>
<br>
Modified: cfe/trunk/test/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=339629&r1=339628&r2=339629&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/<wbr>CMakeLists.txt?rev=339629&r1=<wbr>339628&r2=339629&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/CMakeLists.txt (original)<br>
+++ cfe/trunk/test/CMakeLists.txt Mon Aug 13 16:12:43 2018<br>
@@ -88,8 +88,15 @@ endif ()<br>
<br>
 set(CLANG_TEST_PARAMS<br>
   clang_site_config=${CMAKE_<wbr>CURRENT_BINARY_DIR}/lit.site.<wbr>cfg<br>
+  USE_Z3_SOLVER=0<br>
   )<br>
<br>
+set(ANALYZER_TEST_PARAMS<br>
+  USE_Z3_SOLVER=0)<br>
+<br>
+set(ANALYZER_TEST_PARAMS_Z3<br>
+  USE_Z3_SOLVER=1)<br>
+<br>
 if( NOT CLANG_BUILT_STANDALONE )<br>
   list(APPEND CLANG_TEST_DEPS<br>
     llvm-config<br>
@@ -126,6 +133,24 @@ add_lit_testsuite(check-clang "Running t<br>
   )<br>
 set_target_properties(check-<wbr>clang PROPERTIES FOLDER "Clang tests")<br>
<br>
+if (CLANG_ENABLE_STATIC_ANALYZER)<br>
+  add_lit_testsuite(check-clang-<wbr>analyzer "Running the Clang analyzer tests"<br>
+    ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Analysis<br>
+    PARAMS ${ANALYZER_TEST_PARAMS}<br>
+    DEPENDS ${CLANG_TEST_DEPS})<br>
+  set_target_properties(check-<wbr>clang-analyzer PROPERTIES FOLDER "Clang tests")<br>
+<br>
+<br>
+  if (CLANG_ANALYZER_WITH_Z3)<br>
+    add_lit_testsuite(check-clang-<wbr>analyzer-z3 "Running the Clang analyzer tests, using Z3 as a solver"<br>
+      ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Analysis<br>
+      PARAMS ${ANALYZER_TEST_PARAMS_Z3}<br>
+      DEPENDS ${CLANG_TEST_DEPS})<br>
+    set_target_properties(check-<wbr>clang-analyzer-z3 PROPERTIES FOLDER "Clang tests")<br>
+  endif()<br>
+<br>
+endif()<br>
+<br>
 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}<br>
   PARAMS ${CLANG_TEST_PARAMS}<br>
   DEPENDS ${CLANG_TEST_DEPS}<br>
<br>
Modified: cfe/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.<wbr>py.in</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/lit.site.cfg.py.in?rev=339629&r1=339628&r2=339629&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/lit.<wbr>site.cfg.py.in?rev=339629&r1=<wbr>339628&r2=339629&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.<wbr>py.in</a> (original)<br>
+++ cfe/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.<wbr>py.in</a> Mon Aug 13 16:12:43 2018<br>
@@ -26,6 +26,7 @@ config.enable_shared = @ENABLE_SHARED@<br>
 config.enable_backtrace = @ENABLE_BACKTRACES@<br>
 config.host_arch = "@HOST_ARCH@"<br>
 config.python_executable = "@PYTHON_EXECUTABLE@"<br>
+config.use_z3_solver = "@USE_Z3_SOLVER@"<br>
<br>
 # Support substitution of the tools and libs dirs with user parameters. This is<br>
 # used when we can't determine the tool dir at configuration time.<br>
@@ -34,6 +35,7 @@ try:<br>
     config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params<br>
     config.llvm_shlib_dir = config.llvm_shlib_dir % lit_config.params<br>
     config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params<br>
+    config.use_z3_solver = lit_config.params['USE_Z3_<wbr>SOLVER']<br>
 except KeyError:<br>
     e = sys.exc_info()[1]<br>
     key, = e.args<br>
<br>
<br>
______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>