aboutsummaryrefslogtreecommitdiffstats
path: root/logd/src/tests/empty_forwarder/empty_forwarder_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logd/src/tests/empty_forwarder/empty_forwarder_test.cpp')
-rw-r--r--logd/src/tests/empty_forwarder/empty_forwarder_test.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/logd/src/tests/empty_forwarder/empty_forwarder_test.cpp b/logd/src/tests/empty_forwarder/empty_forwarder_test.cpp
new file mode 100644
index 00000000000..d1194f30c40
--- /dev/null
+++ b/logd/src/tests/empty_forwarder/empty_forwarder_test.cpp
@@ -0,0 +1,59 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <logd/empty_forwarder.h>
+#include <logd/metrics.h>
+#include <vespa/log/log.h>
+#include <vespa/vespalib/metrics/dummy_metrics_manager.h>
+#include <vespa/vespalib/gtest/gtest.h>
+
+using namespace logdemon;
+using vespalib::metrics::DummyMetricsManager;
+
+struct MockMetricsManager : public DummyMetricsManager {
+ int add_count;
+ MockMetricsManager() : DummyMetricsManager(), add_count(0) {}
+ void add(Counter::Increment) override {
+ ++add_count;
+ }
+};
+
+std::string
+make_log_line(const std::string& level, const std::string& payload)
+{
+ return "1234.5678\tmy_host\t10/20\tmy_service\tmy_component\t" + level + "\t" + payload;
+}
+
+struct EmptyForwarderTest : public ::testing::Test {
+ std::shared_ptr<MockMetricsManager> metrics_mgr;
+ Metrics metrics;
+ EmptyForwarder forwarder;
+
+ EmptyForwarderTest()
+ : metrics_mgr(std::make_shared<MockMetricsManager>()),
+ metrics(metrics_mgr),
+ forwarder(metrics) {
+ }
+
+ void forward_line(const std::string &payload) {
+ forwarder.forwardLine(make_log_line("info", payload));
+ }
+ void forward_bad_line() {
+ forwarder.forwardLine("badline");
+ }
+};
+
+TEST_F(EmptyForwarderTest, bad_log_lines_are_counted)
+{
+ forward_bad_line();
+ EXPECT_EQ(1, forwarder.badLines());
+}
+
+TEST_F(EmptyForwarderTest, metrics_are_updated_for_each_log_message)
+{
+ forward_line("a");
+ EXPECT_EQ(1, metrics_mgr->add_count);
+ forward_line("b");
+ EXPECT_EQ(2, metrics_mgr->add_count);
+}
+
+GTEST_MAIN_RUN_ALL_TESTS()