diff options
Diffstat (limited to 'test/src/mbgl/test/fixture_log_observer.cpp')
-rw-r--r-- | test/src/mbgl/test/fixture_log_observer.cpp | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/test/src/mbgl/test/fixture_log_observer.cpp b/test/src/mbgl/test/fixture_log_observer.cpp index 717d2da753..d8a4b9edce 100644 --- a/test/src/mbgl/test/fixture_log_observer.cpp +++ b/test/src/mbgl/test/fixture_log_observer.cpp @@ -11,8 +11,9 @@ FixtureLog::Message::Message(EventSeverity severity_, : severity(severity_), event(event_), code(code_), msg(std::move(msg_)) { } -bool FixtureLog::Message::operator==(const Message& rhs) const { - return severity == rhs.severity && event == rhs.event && code == rhs.code && msg == rhs.msg; +bool FixtureLog::Message::matches(const Message& rhs, bool substring) const { + return severity == rhs.severity && event == rhs.event && code == rhs.code && + (substring ? msg.find(rhs.msg) != std::string::npos : msg == rhs.msg); } FixtureLog::Observer::Observer(FixtureLog* log_) : log(log_) { @@ -42,12 +43,12 @@ bool FixtureLog::Observer::empty() const { return messages.empty(); } -size_t FixtureLog::Observer::count(const Message& message) const { +size_t FixtureLog::Observer::count(const Message& message, bool substring) const { std::lock_guard<std::mutex> lock(messagesMutex); size_t message_count = 0; for (const auto& msg : messages) { - if (msg == message) { + if (msg.matches(message, substring)) { message_count++; msg.checked = true; } @@ -63,8 +64,12 @@ bool FixtureLog::empty() const { return observer ? observer->empty() : true; } -size_t FixtureLog::count(const FixtureLog::Message& message) const { - return observer ? observer->count(message) : 0; +size_t FixtureLog::count(const FixtureLog::Message& message, bool substring) const { + return observer ? observer->count(message, substring) : 0; +} + +size_t FixtureLog::uncheckedCount() const { + return observer ? observer->uncheckedCount() : 0; } FixtureLog::~FixtureLog() { @@ -86,6 +91,18 @@ std::vector<FixtureLog::Message> FixtureLogObserver::unchecked() const { return unchecked_messages; } +size_t FixtureLogObserver::uncheckedCount() const { + std::lock_guard<std::mutex> lock(messagesMutex); + + size_t result = 0; + for (const auto& msg : messages) { + if (!msg.checked) { + result++; + } + } + return result; +} + ::std::ostream& operator<<(::std::ostream& os, const std::vector<FixtureLog::Message>& messages) { for (const auto& message : messages) { os << "- " << message; |