diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-03-21 14:08:39 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-03-21 14:08:39 +0000 |
commit | 22af1049211b69490223aeec835d2aa6f052d564 (patch) | |
tree | cac10ead0db7b5a447e4f79a26b215c57f3328f7 /logd/src/tests/legacy_forwarder | |
parent | 40f7f32cda15d3d144975546169c1bcf0e4f78ae (diff) |
Rename Forwarder -> LegacyForwarder in preparation for something new and better.
Diffstat (limited to 'logd/src/tests/legacy_forwarder')
-rw-r--r-- | logd/src/tests/legacy_forwarder/.gitignore | 5 | ||||
-rw-r--r-- | logd/src/tests/legacy_forwarder/CMakeLists.txt | 8 | ||||
-rw-r--r-- | logd/src/tests/legacy_forwarder/legacy_forwarder_test.cpp | 72 |
3 files changed, 85 insertions, 0 deletions
diff --git a/logd/src/tests/legacy_forwarder/.gitignore b/logd/src/tests/legacy_forwarder/.gitignore new file mode 100644 index 00000000000..a6c6ba525b6 --- /dev/null +++ b/logd/src/tests/legacy_forwarder/.gitignore @@ -0,0 +1,5 @@ +/.depend +/Makefile +/forward.txt +/forward_test +logd_forward_test_app diff --git a/logd/src/tests/legacy_forwarder/CMakeLists.txt b/logd/src/tests/legacy_forwarder/CMakeLists.txt new file mode 100644 index 00000000000..3dba5c76f52 --- /dev/null +++ b/logd/src/tests/legacy_forwarder/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(logd_legacy_forwarder_test_app TEST + SOURCES + legacy_forwarder_test.cpp + DEPENDS + logd +) +vespa_add_test(NAME logd_legacy_forwarder_test_app COMMAND logd_legacy_forwarder_test_app) diff --git a/logd/src/tests/legacy_forwarder/legacy_forwarder_test.cpp b/logd/src/tests/legacy_forwarder/legacy_forwarder_test.cpp new file mode 100644 index 00000000000..3af35f9aa09 --- /dev/null +++ b/logd/src/tests/legacy_forwarder/legacy_forwarder_test.cpp @@ -0,0 +1,72 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <logd/legacy_forwarder.h> +#include <logd/metrics.h> +#include <vespa/fastos/time.h> +#include <vespa/log/log.h> +#include <vespa/vespalib/metrics/dummy_metrics_manager.h> +#include <vespa/vespalib/testkit/testapp.h> +#include <fcntl.h> +#include <sstream> +#include <unistd.h> + +using ns_log::Logger; +using namespace logdemon; + +struct ForwardFixture { + LegacyForwarder &forwarder; + int fd; + const std::string fname; + const std::string logLine; + ForwardFixture(LegacyForwarder &fw, const std::string &fileName) + : forwarder(fw), + fd(-1), + fname(fileName), + logLine(createLogLine()) + { + fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777); + forwarder.setLogserverFD(fd); + } + ~ForwardFixture() { + close(fd); + } + + const std::string createLogLine() { + FastOS_Time timer; + timer.SetNow(); + std::stringstream ss; + ss << std::fixed << timer.Secs(); + ss << "\texample.yahoo.com\t7518/34779\tlogd\tlogdemon\tevent\tstarted/1 name=\"logdemon\"\n"; + return ss.str(); + } + + void verifyForward(bool doForward) { + const std::string & line(logLine); + forwarder.forwardLine(line.c_str(), line.c_str() + line.length()); + fsync(fd); + int rfd = open(fname.c_str(), O_RDONLY); + char *buffer[2048]; + ssize_t bytes = read(rfd, buffer, 2048); + ssize_t expected = doForward ? line.length() : 0; + EXPECT_EQUAL(expected, bytes); + close(rfd); + } +}; + +std::shared_ptr<vespalib::metrics::MetricsManager> dummy = vespalib::metrics::DummyMetricsManager::create(); +Metrics m(dummy); + +TEST_FF("require that forwarder forwards if set", LegacyForwarder(m), ForwardFixture(f1, "forward.txt")) { + ForwardMap forwardMap; + forwardMap[Logger::event] = true; + f1.setForwardMap(forwardMap); + f2.verifyForward(true); +} + +TEST_FF("require that forwarder does not forward if not set", LegacyForwarder(m), ForwardFixture(f1, "forward.txt")) { + ForwardMap forwardMap; + forwardMap[Logger::event] = false; + f1.setForwardMap(forwardMap); + f2.verifyForward(false); +} + +TEST_MAIN() { TEST_RUN_ALL(); } |