summaryrefslogtreecommitdiffstats
path: root/vbench/src/tests/qps_analyzer
diff options
context:
space:
mode:
Diffstat (limited to 'vbench/src/tests/qps_analyzer')
-rw-r--r--vbench/src/tests/qps_analyzer/.gitignore1
-rw-r--r--vbench/src/tests/qps_analyzer/CMakeLists.txt9
-rw-r--r--vbench/src/tests/qps_analyzer/FILES1
-rw-r--r--vbench/src/tests/qps_analyzer/qps_analyzer_test.cpp23
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(); }