From 833273a81250213d3ba85ca5419d03155604ada2 Mon Sep 17 00:00:00 2001 From: Nathan James Date: Tue, 30 Jun 2020 16:19:14 +0100 Subject: [PATCH] [clang-tidy] Sanity checks in ClangTidyTest header. Motivated by a suspicously failing build, but also good to have anyway in general. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D82815 --- clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h b/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h index 6166af3..b8ee9972 100644 --- a/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h +++ b/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h @@ -19,7 +19,6 @@ #include "clang/Tooling/Core/Replacement.h" #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/Tooling.h" -#include "llvm/ADT/Optional.h" #include "llvm/Support/Path.h" #include #include @@ -67,7 +66,9 @@ private: // that check constructors can access the context (for example, through // `getLangOpts()`). CheckFactory::createChecks(&Context, Checks); + assert(!Checks.empty() && "No checks created"); for (auto &Check : Checks) { + assert(Check.get() && "Checks can't be null"); if (!Check->isLanguageVersionSupported(Context.getLangOpts())) continue; Check->registerMatchers(&Finder); @@ -89,6 +90,7 @@ runCheckOnCode(StringRef Code, std::vector *Errors = nullptr, const ClangTidyOptions &ExtraOptions = ClangTidyOptions(), std::map PathsToContent = std::map()) { + static_assert(sizeof...(CheckTypes) > 0, "No checks specified"); ClangTidyOptions Options = ExtraOptions; Options.Checks = "*"; ClangTidyContext Context(std::make_unique( @@ -120,7 +122,7 @@ runCheckOnCode(StringRef Code, std::vector *Errors = nullptr, llvm::IntrusiveRefCntPtr Files( new FileManager(FileSystemOptions(), InMemoryFileSystem)); - SmallVector, 1> Checks; + SmallVector, sizeof...(CheckTypes)> Checks; tooling::ToolInvocation Invocation( Args, std::make_unique>(Checks, Finder, -- 2.7.4