[PATCH] D33308: [analyzer]: Improve test handling with multiple constraint managers
This revision was automatically updated to reflect the committed changes. Closed by commit rL305480: [analyzer]: Improve test handling with multiple constraint managers (authored by ddcc). Changed prior to commit: https://reviews.llvm.org/D33308?vs=99394=102682#toc Repository: rL LLVM https://reviews.llvm.org/D33308 Files: cfe/trunk/test/Analysis/analyzer_test.py Index: cfe/trunk/test/Analysis/analyzer_test.py === --- cfe/trunk/test/Analysis/analyzer_test.py +++ cfe/trunk/test/Analysis/analyzer_test.py @@ -5,24 +5,39 @@ class AnalyzerTest(lit.formats.ShTest): def execute(self, test, litConfig): -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=range') +results = [] -if result.code == lit.Test.FAIL: -return result +# Parse any test requirements ('REQUIRES: ') +saved_test = test +lit.TestRunner.parseIntegratedTestScript(test) + +if 'z3' not in test.requires: +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=range')) + +if results[-1].code == lit.Test.FAIL: +return results[-1] # If z3 backend available, add an additional run line for it if test.config.clang_staticanalyzer_z3 == '1': -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3') +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3')) -return result +# Combine all result outputs into the last element +for x in results: +if x != results[-1]: +results[-1].output = x.output + results[-1].output + +if results: +return results[-1] +return lit.Test.Result(lit.Test.UNSUPPORTED, +"Test requires the following unavailable features: z3") def executeWithAnalyzeSubstitution(self, test, litConfig, substitution): saved_substitutions = list(test.config.substitutions) test.config.substitutions.append(('%analyze', substitution)) result = lit.TestRunner.executeShTest(test, litConfig, - self.execute_external) +self.execute_external) test.config.substitutions = saved_substitutions return result Index: cfe/trunk/test/Analysis/analyzer_test.py === --- cfe/trunk/test/Analysis/analyzer_test.py +++ cfe/trunk/test/Analysis/analyzer_test.py @@ -5,24 +5,39 @@ class AnalyzerTest(lit.formats.ShTest): def execute(self, test, litConfig): -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=range') +results = [] -if result.code == lit.Test.FAIL: -return result +# Parse any test requirements ('REQUIRES: ') +saved_test = test +lit.TestRunner.parseIntegratedTestScript(test) + +if 'z3' not in test.requires: +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=range')) + +if results[-1].code == lit.Test.FAIL: +return results[-1] # If z3 backend available, add an additional run line for it if test.config.clang_staticanalyzer_z3 == '1': -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3') +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3')) -return result +# Combine all result outputs into the last element +for x in results: +if x != results[-1]: +results[-1].output = x.output + results[-1].output + +if results: +return results[-1] +return lit.Test.Result(lit.Test.UNSUPPORTED, +"Test requires the following unavailable features: z3") def executeWithAnalyzeSubstitution(self, test, litConfig, substitution): saved_substitutions = list(test.config.substitutions) test.config.substitutions.append(('%analyze', substitution)) result = lit.TestRunner.executeShTest(test, litConfig, - self.execute_external) +self.execute_external) test.config.substitutions = saved_substitutions return result ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33308: [analyzer]: Improve test handling with multiple constraint managers
dcoughlin accepted this revision. dcoughlin added a comment. This revision is now accepted and ready to land. This looks good to me. Sorry of the delay here -- and thanks for your patience. I will review the other patches this weekend. https://reviews.llvm.org/D33308 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33308: [analyzer]: Improve test handling with multiple constraint managers
ddcc added a comment. @dcoughlin @zaks.anna @NoQ @xazax.hun Ping, I'd appreciate it if I could get a review for this (https://reviews.llvm.org/D33308), https://reviews.llvm.org/D28955, https://reviews.llvm.org/D28953, and https://reviews.llvm.org/D28954. Rebasing and fixing up these commits is fairly time consuming. https://reviews.llvm.org/D33308 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33308: [analyzer]: Improve test handling with multiple constraint managers
ddcc created this revision. Modify the test infrastructure to properly handle tests that require z3, and merge together the output of all tests on success. This is required for https://reviews.llvm.org/D28954. https://reviews.llvm.org/D33308 Files: test/Analysis/analyzer_test.py Index: test/Analysis/analyzer_test.py === --- test/Analysis/analyzer_test.py +++ test/Analysis/analyzer_test.py @@ -5,24 +5,39 @@ class AnalyzerTest(lit.formats.ShTest): def execute(self, test, litConfig): -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=range') +results = [] -if result.code == lit.Test.FAIL: -return result +# Parse any test requirements ('REQUIRES: ') +saved_test = test +lit.TestRunner.parseIntegratedTestScript(test) + +if 'z3' not in test.requires: +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=range')) + +if results[-1].code == lit.Test.FAIL: +return results[-1] # If z3 backend available, add an additional run line for it if test.config.clang_staticanalyzer_z3 == '1': -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3') +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3')) -return result +# Combine all result outputs into the last element +for x in results: +if x != results[-1]: +results[-1].output = x.output + results[-1].output + +if results: +return results[-1] +return lit.Test.Result(lit.Test.UNSUPPORTED, +"Test requires the following unavailable features: z3") def executeWithAnalyzeSubstitution(self, test, litConfig, substitution): saved_substitutions = list(test.config.substitutions) test.config.substitutions.append(('%analyze', substitution)) result = lit.TestRunner.executeShTest(test, litConfig, - self.execute_external) +self.execute_external) test.config.substitutions = saved_substitutions return result Index: test/Analysis/analyzer_test.py === --- test/Analysis/analyzer_test.py +++ test/Analysis/analyzer_test.py @@ -5,24 +5,39 @@ class AnalyzerTest(lit.formats.ShTest): def execute(self, test, litConfig): -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=range') +results = [] -if result.code == lit.Test.FAIL: -return result +# Parse any test requirements ('REQUIRES: ') +saved_test = test +lit.TestRunner.parseIntegratedTestScript(test) + +if 'z3' not in test.requires: +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=range')) + +if results[-1].code == lit.Test.FAIL: +return results[-1] # If z3 backend available, add an additional run line for it if test.config.clang_staticanalyzer_z3 == '1': -result = self.executeWithAnalyzeSubstitution( -test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3') +results.append(self.executeWithAnalyzeSubstitution( +saved_test, litConfig, '-analyzer-constraints=z3 -DANALYZER_CM_Z3')) -return result +# Combine all result outputs into the last element +for x in results: +if x != results[-1]: +results[-1].output = x.output + results[-1].output + +if results: +return results[-1] +return lit.Test.Result(lit.Test.UNSUPPORTED, +"Test requires the following unavailable features: z3") def executeWithAnalyzeSubstitution(self, test, litConfig, substitution): saved_substitutions = list(test.config.substitutions) test.config.substitutions.append(('%analyze', substitution)) result = lit.TestRunner.executeShTest(test, litConfig, - self.execute_external) +self.execute_external) test.config.substitutions = saved_substitutions return result ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits