diff options
Diffstat (limited to 'vbench/src/tests/qps_analyzer')
-rw-r--r-- | vbench/src/tests/qps_analyzer/.gitignore | 1 | ||||
-rw-r--r-- | vbench/src/tests/qps_analyzer/CMakeLists.txt | 9 | ||||
-rw-r--r-- | vbench/src/tests/qps_analyzer/FILES | 1 | ||||
-rw-r--r-- | vbench/src/tests/qps_analyzer/qps_analyzer_test.cpp | 23 |
4 files changed, 34 insertions, 0 deletions
diff --git a/vbench/src/tests/qps_analyzer/.gitignore b/vbench/src/tests/qps_analyzer/.gitignore new file mode 100644 index 00000000000..0651de34c3c --- /dev/null +++ b/vbench/src/tests/qps_analyzer/.gitignore @@ -0,0 +1 @@ +vbench_qps_analyzer_test_app diff --git a/vbench/src/tests/qps_analyzer/CMakeLists.txt b/vbench/src/tests/qps_analyzer/CMakeLists.txt new file mode 100644 index 00000000000..b4167511665 --- /dev/null +++ b/vbench/src/tests/qps_analyzer/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(vbench_qps_analyzer_test_app + SOURCES + qps_analyzer_test.cpp + DEPENDS + vbench_test + vbench +) +vespa_add_test(NAME vbench_qps_analyzer_test_app COMMAND vbench_qps_analyzer_test_app) diff --git a/vbench/src/tests/qps_analyzer/FILES b/vbench/src/tests/qps_analyzer/FILES new file mode 100644 index 00000000000..978efc5eafd --- /dev/null +++ b/vbench/src/tests/qps_analyzer/FILES @@ -0,0 +1 @@ +qps_analyzer_test.cpp diff --git a/vbench/src/tests/qps_analyzer/qps_analyzer_test.cpp b/vbench/src/tests/qps_analyzer/qps_analyzer_test.cpp new file mode 100644 index 00000000000..4de340fcf29 --- /dev/null +++ b/vbench/src/tests/qps_analyzer/qps_analyzer_test.cpp @@ -0,0 +1,23 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/vespalib/testkit/testapp.h> +#include <vbench/test/all.h> + +using namespace vbench; + +void post(double endTime, Handler<Request> &handler, + Request::Status status = Request::STATUS_OK) +{ + Request::UP req(new Request()); + req->status(status).endTime(endTime); + handler.handle(std::move(req)); +} + +TEST_FF("simulate 100 qps", RequestSink(), QpsAnalyzer(f1)) { + for (size_t i = 1; i < 10000; ++i) { + post(i * 0.01, f2); + post(i * 0.01, f2, Request::STATUS_DROPPED); + post(i * 0.01, f2, Request::STATUS_FAILED); + } +} + +TEST_MAIN() { TEST_RUN_ALL(); } |