[clang-tools-extra] r215438 - Allow specifying file names and extra arguments when running clang-tidy unit tests.

Benjamin Kramer benny.kra at googlemail.com
Tue Aug 12 05:12:54 PDT 2014


Author: d0k
Date: Tue Aug 12 07:12:54 2014
New Revision: 215438

URL: http://llvm.org/viewvc/llvm-project?rev=215438&view=rev
Log:
Allow specifying file names and extra arguments when running clang-tidy unit tests.

Will become useful soon.

Modified:
    clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h

Modified: clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h?rev=215438&r1=215437&r2=215438&view=diff
==============================================================================
--- clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h (original)
+++ clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h Tue Aug 12 07:12:54 2014
@@ -41,22 +41,26 @@ private:
 
 template <typename T>
 std::string runCheckOnCode(StringRef Code,
-                           std::vector<ClangTidyError> *Errors = nullptr) {
+                           std::vector<ClangTidyError> *Errors = nullptr,
+                           const Twine &Filename = "input.cc",
+                           ArrayRef<std::string> ExtraArgs = None) {
   T Check;
   ClangTidyContext Context(
       new DefaultOptionsProvider(ClangTidyGlobalOptions(), ClangTidyOptions()));
   ClangTidyDiagnosticConsumer DiagConsumer(Context);
   Check.setContext(&Context);
   std::vector<std::string> ArgCXX11(1, "-std=c++11");
+  ArgCXX11.insert(ArgCXX11.end(), ExtraArgs.begin(), ExtraArgs.end());
 
   if (!tooling::runToolOnCodeWithArgs(new TestPPAction(Check, &Context), Code,
-                                      ArgCXX11))
+                                      ArgCXX11, Filename))
     return "";
   ast_matchers::MatchFinder Finder;
   Check.registerMatchers(&Finder);
   std::unique_ptr<tooling::FrontendActionFactory> Factory(
       tooling::newFrontendActionFactory(&Finder));
-  if (!tooling::runToolOnCodeWithArgs(Factory->create(), Code, ArgCXX11))
+  if (!tooling::runToolOnCodeWithArgs(Factory->create(), Code, ArgCXX11,
+                                      Filename))
     return "";
   DiagConsumer.finish();
   tooling::Replacements Fixes;





More information about the cfe-commits mailing list