diff options
Diffstat (limited to 'logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp')
-rw-r--r-- | logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp b/logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp index 97fd294cfb6..d081740b0d5 100644 --- a/logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp +++ b/logd/src/tests/rpc_forwarder/rpc_forwarder_test.cpp @@ -81,9 +81,9 @@ public: }; std::string -make_log_line(const std::string& payload) +make_log_line(const std::string& level, const std::string& payload) { - return "1234.5678\tmy_host\t10/20\tmy_service\tmy_component\tinfo\t" + payload; + return "1234.5678\tmy_host\t10/20\tmy_service\tmy_component\t" + level + "\t" + payload; } struct MockMetricsManager : public DummyMetricsManager { @@ -105,9 +105,18 @@ struct RpcForwarderTest : public ::testing::Test { metrics(metrics_mgr), forwarder(metrics, "localhost", server.get_listen_port(), 60.0, 3) { + ForwardMap forward_filter; + forward_filter[ns_log::Logger::error] = true; + forward_filter[ns_log::Logger::warning] = false; + forward_filter[ns_log::Logger::info] = true; + // all other log levels are implicit false + forwarder.set_forward_filter(forward_filter); } void forward_line(const std::string& payload) { - forwarder.forwardLine(make_log_line(payload)); + forwarder.forwardLine(make_log_line("info", payload)); + } + void forward_line(const std::string& level, const std::string& payload) { + forwarder.forwardLine(make_log_line(level, payload)); } void forward_bad_line() { forwarder.forwardLine("badline"); @@ -188,6 +197,22 @@ TEST_F(RpcForwarderTest, metrics_are_updated_for_each_log_message) EXPECT_EQ(2, metrics_mgr->add_count); } +TEST_F(RpcForwarderTest, log_messages_are_filtered_on_log_level) +{ + forward_line("fatal", "a"); + forward_line("error", "b"); + forward_line("warning", "c"); + forward_line("config", "d"); + forward_line("info", "e"); + forward_line("event", "f"); + forward_line("debug", "g"); + forward_line("spam", "h"); + forward_line("null", "i"); + flush(); + expect_messages(1, {"b", "e"}); + EXPECT_EQ(9, metrics_mgr->add_count); +} + TEST_F(RpcForwarderTest, throws_when_rpc_reply_contains_errors) { server.reply_with_error = true; |