From 20c6f54b85f6097be4e9a28a905fe59b8724bcb3 Mon Sep 17 00:00:00 2001 From: Edwin Vane Date: Wed, 29 May 2013 16:01:10 +0000 Subject: Tooling: Call back for both begin and end of sources newFrontendActionFactory() took a pointer to a callback to call when a source file was done being processed by an action. This revision updates the callback to include an ante-processing callback as well. Callback-providing class renamed and callback functions themselves renamed. Functions are no longer pure-virtual so users aren't forced to implement both callbacks if one isn't needed. llvm-svn: 182864 --- clang/unittests/Tooling/ToolingTest.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'clang/unittests/Tooling/ToolingTest.cpp') diff --git a/clang/unittests/Tooling/ToolingTest.cpp b/clang/unittests/Tooling/ToolingTest.cpp index a9319f29612..a7b94319184 100644 --- a/clang/unittests/Tooling/ToolingTest.cpp +++ b/clang/unittests/Tooling/ToolingTest.cpp @@ -131,20 +131,26 @@ TEST(ToolInvocation, TestMapVirtualFile) { EXPECT_TRUE(Invocation.run()); } -struct VerifyEndCallback : public EndOfSourceFileCallback { - VerifyEndCallback() : Called(0), Matched(false) {} - virtual void run() { - ++Called; +struct VerifyEndCallback : public SourceFileCallbacks { + VerifyEndCallback() : BeginCalled(0), EndCalled(0), Matched(false) {} + virtual bool BeginSource(CompilerInstance &CI, + StringRef Filename) LLVM_OVERRIDE { + ++BeginCalled; + return true; + } + virtual void EndSource() { + ++EndCalled; } ASTConsumer *newASTConsumer() { return new FindTopLevelDeclConsumer(&Matched); } - unsigned Called; + unsigned BeginCalled; + unsigned EndCalled; bool Matched; }; #if !defined(_WIN32) -TEST(newFrontendActionFactory, InjectsEndOfSourceFileCallback) { +TEST(newFrontendActionFactory, InjectsSourceFileCallbacks) { VerifyEndCallback EndCallback; FixedCompilationDatabase Compilations("/", std::vector()); @@ -159,7 +165,8 @@ TEST(newFrontendActionFactory, InjectsEndOfSourceFileCallback) { Tool.run(newFrontendActionFactory(&EndCallback, &EndCallback)); EXPECT_TRUE(EndCallback.Matched); - EXPECT_EQ(2u, EndCallback.Called); + EXPECT_EQ(2u, EndCallback.BeginCalled); + EXPECT_EQ(2u, EndCallback.EndCalled); } #endif -- cgit v1.2.3