Author: jkorous Date: Fri Jul 12 17:09:04 2019 New Revision: 365976 URL: http://llvm.org/viewvc/llvm-project?rev=365976&view=rev Log: [DirectoryWatcher][test][NFC] Add information to test failure reports
Modified: cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp Modified: cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp?rev=365976&r1=365975&r2=365976&view=diff ============================================================================== --- cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp (original) +++ cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp Fri Jul 12 17:09:04 2019 @@ -97,7 +97,9 @@ std::string eventKindToString(const Dire struct VerifyingConsumer { std::vector<DirectoryWatcher::Event> ExpectedInitial; + const std::vector<DirectoryWatcher::Event> ExpectedInitialCopy; std::vector<DirectoryWatcher::Event> ExpectedNonInitial; + const std::vector<DirectoryWatcher::Event> ExpectedNonInitialCopy; std::vector<DirectoryWatcher::Event> OptionalNonInitial; std::vector<DirectoryWatcher::Event> UnexpectedInitial; std::vector<DirectoryWatcher::Event> UnexpectedNonInitial; @@ -108,8 +110,8 @@ struct VerifyingConsumer { const std::vector<DirectoryWatcher::Event> &ExpectedInitial, const std::vector<DirectoryWatcher::Event> &ExpectedNonInitial, const std::vector<DirectoryWatcher::Event> &OptionalNonInitial = {}) - : ExpectedInitial(ExpectedInitial), - ExpectedNonInitial(ExpectedNonInitial), + : ExpectedInitial(ExpectedInitial), ExpectedInitialCopy(ExpectedInitial), + ExpectedNonInitial(ExpectedNonInitial), ExpectedNonInitialCopy(ExpectedNonInitial), OptionalNonInitial(OptionalNonInitial) {} // This method is used by DirectoryWatcher. @@ -181,6 +183,26 @@ struct VerifyingConsumer { } void printUnmetExpectations(llvm::raw_ostream &OS) { + // If there was any issue, print the expected state + if ( + !ExpectedInitial.empty() + || + !ExpectedNonInitial.empty() + || + !UnexpectedInitial.empty() + || + !UnexpectedNonInitial.empty() + ) { + OS << "Expected initial events: \n"; + for (const auto &E : ExpectedInitialCopy) { + OS << eventKindToString(E.Kind) << " " << E.Filename << "\n"; + } + OS << "Expected non-initial events: \n"; + for (const auto &E : ExpectedNonInitialCopy) { + OS << eventKindToString(E.Kind) << " " << E.Filename << "\n"; + } + } + if (!ExpectedInitial.empty()) { OS << "Expected but not seen initial events: \n"; for (const auto &E : ExpectedInitial) { @@ -218,6 +240,7 @@ void checkEventualResultWithTimeout(Veri EXPECT_TRUE(WaitForExpectedStateResult.wait_for(std::chrono::seconds(3)) == std::future_status::ready) << "The expected result state wasn't reached before the time-out."; + std::unique_lock<std::mutex> L(TestConsumer.Mtx); EXPECT_TRUE(TestConsumer.result().hasValue()); if (TestConsumer.result().hasValue()) { EXPECT_TRUE(*TestConsumer.result()); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits