Author: Stanislav Gatev Date: 2022-03-09T15:31:02Z New Revision: 26bbde2612b2042c3a8a31aed7f45e065c3dd413
URL: https://github.com/llvm/llvm-project/commit/26bbde2612b2042c3a8a31aed7f45e065c3dd413 DIFF: https://github.com/llvm/llvm-project/commit/26bbde2612b2042c3a8a31aed7f45e065c3dd413.diff LOG: [clang][dataflow] Move dataflow testing support out of unittests This enables tests out of clang/unittests/Analysis/FlowSensitive to use the testing support utilities. Reviewed-by: ymandel, gribozavr2 Differential Revision: https://reviews.llvm.org/D121285 Added: clang/include/clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h clang/include/clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h clang/lib/Analysis/FlowSensitive/Testing/CMakeLists.txt clang/lib/Analysis/FlowSensitive/Testing/DataflowAnalysis.cpp clang/unittests/Analysis/FlowSensitive/Testing/CMakeLists.txt clang/unittests/Analysis/FlowSensitive/Testing/DataflowCheckerTest.cpp Modified: clang/lib/Analysis/FlowSensitive/CMakeLists.txt clang/unittests/Analysis/FlowSensitive/CMakeLists.txt clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp clang/unittests/Analysis/FlowSensitive/MatchSwitchTest.cpp clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp clang/unittests/Analysis/FlowSensitive/TransferTest.cpp clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp Removed: clang/unittests/Analysis/FlowSensitive/NoopAnalysis.h clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp clang/unittests/Analysis/FlowSensitive/TestingSupport.h clang/unittests/Analysis/FlowSensitive/TestingSupportTest.cpp ################################################################################ diff --git a/clang/unittests/Analysis/FlowSensitive/TestingSupport.h b/clang/include/clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h similarity index 95% rename from clang/unittests/Analysis/FlowSensitive/TestingSupport.h rename to clang/include/clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h index 957d73fd6d0c4..df9fdcb215eb4 100644 --- a/clang/unittests/Analysis/FlowSensitive/TestingSupport.h +++ b/clang/include/clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h @@ -1,4 +1,4 @@ -//===--- TestingSupport.h - Testing utils for dataflow analyses -*- C++ -*-===// +//===--- DataflowAnalysis.h - Testing utils for dataflow analyses * C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -10,8 +10,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_ANALYSIS_FLOW_SENSITIVE_TESTING_SUPPORT_H_ -#define LLVM_CLANG_ANALYSIS_FLOW_SENSITIVE_TESTING_SUPPORT_H_ +#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_DATAFLOWANALYSIS_H +#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_DATAFLOWANALYSIS_H #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" @@ -179,4 +179,4 @@ const ValueDecl *findValueDecl(ASTContext &ASTCtx, llvm::StringRef Name); } // namespace dataflow } // namespace clang -#endif // LLVM_CLANG_ANALYSIS_FLOW_SENSITIVE_TESTING_SUPPORT_H_ +#endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_DATAFLOWANALYSIS_H diff --git a/clang/unittests/Analysis/FlowSensitive/NoopAnalysis.h b/clang/include/clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h similarity index 90% rename from clang/unittests/Analysis/FlowSensitive/NoopAnalysis.h rename to clang/include/clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h index eab5782095bbc..18f5e87765487 100644 --- a/clang/unittests/Analysis/FlowSensitive/NoopAnalysis.h +++ b/clang/include/clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h @@ -11,8 +11,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_UNITTESTS_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H -#define LLVM_CLANG_UNITTESTS_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H +#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_NOOPANALYSIS_H +#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_NOOPANALYSIS_H #include "clang/AST/ASTContext.h" #include "clang/AST/Stmt.h" @@ -55,4 +55,4 @@ class NoopAnalysis : public DataflowAnalysis<NoopAnalysis, NoopLattice> { } // namespace dataflow } // namespace clang -#endif // LLVM_CLANG_UNITTESTS_ANALYSIS_FLOWSENSITIVE_NOOPANALYSIS_H +#endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_TESTING_NOOPANALYSIS_H diff --git a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt index cfe3c8e77b4fd..58c3df47745cb 100644 --- a/clang/lib/Analysis/FlowSensitive/CMakeLists.txt +++ b/clang/lib/Analysis/FlowSensitive/CMakeLists.txt @@ -12,3 +12,5 @@ add_clang_library(clangAnalysisFlowSensitive clangAST clangBasic ) + +add_subdirectory(Testing) diff --git a/clang/lib/Analysis/FlowSensitive/Testing/CMakeLists.txt b/clang/lib/Analysis/FlowSensitive/Testing/CMakeLists.txt new file mode 100644 index 0000000000000..513bcbf5ecc7a --- /dev/null +++ b/clang/lib/Analysis/FlowSensitive/Testing/CMakeLists.txt @@ -0,0 +1,14 @@ +add_clang_library(clangAnalysisFlowSensitiveTesting + DataflowAnalysis.cpp + + LINK_LIBS + clangAnalysis + clangAnalysisFlowSensitive + clangAST + clangBasic + clangFrontend + clangLex + clangSerialization + clangTesting + clangTooling + ) diff --git a/clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp b/clang/lib/Analysis/FlowSensitive/Testing/DataflowAnalysis.cpp similarity index 88% rename from clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp rename to clang/lib/Analysis/FlowSensitive/Testing/DataflowAnalysis.cpp index 4c5efa7504048..7cdbc6b5f5283 100644 --- a/clang/unittests/Analysis/FlowSensitive/TestingSupport.cpp +++ b/clang/lib/Analysis/FlowSensitive/Testing/DataflowAnalysis.cpp @@ -1,4 +1,16 @@ -#include "TestingSupport.h" +//===-- DataflowAnalysis.cpp ------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines utilities to simplify testing of dataflow analyses. +// +//===----------------------------------------------------------------------===// + +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" #include "clang/AST/Stmt.h" diff --git a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt index d2608503a5396..f59024c8e78a7 100644 --- a/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt +++ b/clang/unittests/Analysis/FlowSensitive/CMakeLists.txt @@ -11,8 +11,6 @@ add_clang_unittest(ClangAnalysisFlowSensitiveTests MultiVarConstantPropagationTest.cpp SingleVarConstantPropagationTest.cpp SourceLocationsLatticeTest.cpp - TestingSupport.cpp - TestingSupportTest.cpp TransferTest.cpp TypeErasedDataflowAnalysisTest.cpp SolverTest.cpp @@ -22,6 +20,7 @@ clang_target_link_libraries(ClangAnalysisFlowSensitiveTests PRIVATE clangAnalysis clangAnalysisFlowSensitive + clangAnalysisFlowSensitiveTesting clangAST clangASTMatchers clangBasic @@ -36,3 +35,5 @@ target_link_libraries(ClangAnalysisFlowSensitiveTests PRIVATE LLVMTestingSupport ) + +add_subdirectory(Testing) diff --git a/clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp b/clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp index 51b40f2319878..738af8d9c97ca 100644 --- a/clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp @@ -7,9 +7,9 @@ //===----------------------------------------------------------------------===// #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" -#include "NoopAnalysis.h" -#include "TestingSupport.h" #include "clang/Analysis/FlowSensitive/DataflowAnalysisContext.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" +#include "clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h" #include "clang/Analysis/FlowSensitive/Value.h" #include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h" #include "gmock/gmock.h" diff --git a/clang/unittests/Analysis/FlowSensitive/MatchSwitchTest.cpp b/clang/unittests/Analysis/FlowSensitive/MatchSwitchTest.cpp index b99e5c6e1c0b0..b04d2b7e9105a 100644 --- a/clang/unittests/Analysis/FlowSensitive/MatchSwitchTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/MatchSwitchTest.cpp @@ -13,7 +13,6 @@ //===----------------------------------------------------------------------===// #include "clang/Analysis/FlowSensitive/MatchSwitch.h" -#include "TestingSupport.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" #include "clang/AST/Expr.h" @@ -24,6 +23,7 @@ #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" #include "clang/Analysis/FlowSensitive/DataflowLattice.h" #include "clang/Analysis/FlowSensitive/MapLattice.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/None.h" #include "llvm/ADT/Optional.h" diff --git a/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp b/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp index 9535f99c5aea4..b1d4650772fb2 100644 --- a/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp @@ -12,7 +12,6 @@ // //===----------------------------------------------------------------------===// -#include "TestingSupport.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" #include "clang/AST/Expr.h" @@ -23,6 +22,7 @@ #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" #include "clang/Analysis/FlowSensitive/DataflowLattice.h" #include "clang/Analysis/FlowSensitive/MapLattice.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/None.h" #include "llvm/ADT/Optional.h" diff --git a/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp b/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp index e14724931a7c0..9d20760ca62a3 100644 --- a/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp @@ -12,7 +12,6 @@ // //===----------------------------------------------------------------------===// -#include "TestingSupport.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" #include "clang/AST/Expr.h" @@ -22,6 +21,7 @@ #include "clang/Analysis/FlowSensitive/DataflowAnalysis.h" #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" #include "clang/Analysis/FlowSensitive/DataflowLattice.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/None.h" #include "llvm/ADT/Optional.h" diff --git a/clang/unittests/Analysis/FlowSensitive/Testing/CMakeLists.txt b/clang/unittests/Analysis/FlowSensitive/Testing/CMakeLists.txt new file mode 100644 index 0000000000000..f7845c6717180 --- /dev/null +++ b/clang/unittests/Analysis/FlowSensitive/Testing/CMakeLists.txt @@ -0,0 +1,28 @@ +set(LLVM_LINK_COMPONENTS + FrontendOpenMP + Support + ) + +add_clang_unittest(ClangAnalysisFlowSensitiveTestingTests + DataflowCheckerTest.cpp + ) + +clang_target_link_libraries(ClangAnalysisFlowSensitiveTestingTests + PRIVATE + clangAnalysis + clangAnalysisFlowSensitive + clangAnalysisFlowSensitiveTesting + clangAST + clangASTMatchers + clangBasic + clangFrontend + clangLex + clangSerialization + clangTesting + clangTooling + ) + +target_link_libraries(ClangAnalysisFlowSensitiveTestingTests + PRIVATE + LLVMTestingSupport + ) diff --git a/clang/unittests/Analysis/FlowSensitive/TestingSupportTest.cpp b/clang/unittests/Analysis/FlowSensitive/Testing/DataflowCheckerTest.cpp similarity index 90% rename from clang/unittests/Analysis/FlowSensitive/TestingSupportTest.cpp rename to clang/unittests/Analysis/FlowSensitive/Testing/DataflowCheckerTest.cpp index 960879025307f..4ecc755388767 100644 --- a/clang/unittests/Analysis/FlowSensitive/TestingSupportTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/Testing/DataflowCheckerTest.cpp @@ -1,8 +1,16 @@ -#include "TestingSupport.h" -#include "NoopAnalysis.h" +//===- DataflowAnalysisTest.cpp -------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + #include "clang/AST/ASTContext.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/ASTMatchers/ASTMatchers.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" +#include "clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h" #include "clang/Tooling/Tooling.h" #include "llvm/Testing/Support/Error.h" #include "gmock/gmock.h" diff --git a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp index 49aaca9a7588c..cbd59a6351b88 100644 --- a/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/TransferTest.cpp @@ -6,14 +6,14 @@ // //===----------------------------------------------------------------------===// -#include "NoopAnalysis.h" -#include "TestingSupport.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/ASTMatchers/ASTMatchers.h" #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" #include "clang/Analysis/FlowSensitive/StorageLocation.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" +#include "clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h" #include "clang/Analysis/FlowSensitive/Value.h" #include "clang/Basic/LangStandard.h" #include "llvm/ADT/ArrayRef.h" diff --git a/clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp b/clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp index f93b3fc2e8ed8..8ed15a6e1b1ce 100644 --- a/clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp +++ b/clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp @@ -6,8 +6,6 @@ // //===----------------------------------------------------------------------===// -#include "NoopAnalysis.h" -#include "TestingSupport.h" #include "clang/AST/Decl.h" #include "clang/AST/ExprCXX.h" #include "clang/ASTMatchers/ASTMatchFinder.h" @@ -17,6 +15,8 @@ #include "clang/Analysis/FlowSensitive/DataflowAnalysisContext.h" #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" #include "clang/Analysis/FlowSensitive/DataflowLattice.h" +#include "clang/Analysis/FlowSensitive/Testing/DataflowAnalysis.h" +#include "clang/Analysis/FlowSensitive/Testing/NoopAnalysis.h" #include "clang/Analysis/FlowSensitive/Value.h" #include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h" #include "clang/Tooling/Tooling.h" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits