diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /slobrok/src/tests/backoff |
Publish
Diffstat (limited to 'slobrok/src/tests/backoff')
-rw-r--r-- | slobrok/src/tests/backoff/.gitignore | 4 | ||||
-rw-r--r-- | slobrok/src/tests/backoff/CMakeLists.txt | 9 | ||||
-rw-r--r-- | slobrok/src/tests/backoff/DESC | 1 | ||||
-rw-r--r-- | slobrok/src/tests/backoff/FILES | 1 | ||||
-rw-r--r-- | slobrok/src/tests/backoff/testbackoff.cpp | 100 |
5 files changed, 115 insertions, 0 deletions
diff --git a/slobrok/src/tests/backoff/.gitignore b/slobrok/src/tests/backoff/.gitignore new file mode 100644 index 00000000000..45529c14663 --- /dev/null +++ b/slobrok/src/tests/backoff/.gitignore @@ -0,0 +1,4 @@ +.depend +Makefile +*_test +slobrok_backoff_test_app diff --git a/slobrok/src/tests/backoff/CMakeLists.txt b/slobrok/src/tests/backoff/CMakeLists.txt new file mode 100644 index 00000000000..800f984d69d --- /dev/null +++ b/slobrok/src/tests/backoff/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(slobrok_backoff_test_app + SOURCES + testbackoff.cpp + DEPENDS + slobrok + slobrok_slobrokserver +) +vespa_add_test(NAME slobrok_backoff_test_app COMMAND slobrok_backoff_test_app) diff --git a/slobrok/src/tests/backoff/DESC b/slobrok/src/tests/backoff/DESC new file mode 100644 index 00000000000..9955163994a --- /dev/null +++ b/slobrok/src/tests/backoff/DESC @@ -0,0 +1 @@ +BackOff test. Take a look at testbackoff.cpp for details. diff --git a/slobrok/src/tests/backoff/FILES b/slobrok/src/tests/backoff/FILES new file mode 100644 index 00000000000..39cce25d2e1 --- /dev/null +++ b/slobrok/src/tests/backoff/FILES @@ -0,0 +1 @@ +testbackoff.cpp diff --git a/slobrok/src/tests/backoff/testbackoff.cpp b/slobrok/src/tests/backoff/testbackoff.cpp new file mode 100644 index 00000000000..af0dbd5bc81 --- /dev/null +++ b/slobrok/src/tests/backoff/testbackoff.cpp @@ -0,0 +1,100 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP("backoff_test"); +#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/slobrok/backoff.h> +#include <algorithm> + +using slobrok::api::BackOff; + +TEST_SETUP(Test); + +//----------------------------------------------------------------------------- + +static double expectWait[21] = { + 0.5, 1.0, 1.5, 2.0, 2.5, + 3.0, 3.5, 4.0, 4.5, + 5.0, 6.0, 7.0, 8.0, 9.0, + 10, 15, 20, 25, 30, 30, 30 +}; + +int +Test::Main() +{ + TEST_INIT("backoff_test"); + + BackOff one; + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(0.500, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(1.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(1.500, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(2.000, one.get()); + EXPECT_TRUE(one.shouldWarn()); + + EXPECT_EQUAL(2.500, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(3.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(3.500, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(4.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(4.500, one.get()); + EXPECT_TRUE(one.shouldWarn()); + + EXPECT_EQUAL(5.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(6.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(7.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(8.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(9.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(10.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(15.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(20.00, one.get()); + EXPECT_TRUE(one.shouldWarn()); + + EXPECT_EQUAL(25.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(30.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(30.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(30.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(30.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(30.00, one.get()); + EXPECT_FALSE(one.shouldWarn()); + + TEST_FLUSH(); + + BackOff two; + for (int i = 0; i < 21; i++) { + EXPECT_EQUAL(expectWait[i], two.get()); + if (i == 3 || i == 8 || i == 16) { + EXPECT_TRUE(two.shouldWarn()); + } else { + EXPECT_FALSE(two.shouldWarn()); + } + } + two.reset(); + for (int i = 0; i < 21; i++) { + EXPECT_EQUAL(expectWait[i], two.get()); + if (i == 7 || i == 15) { + EXPECT_TRUE(two.shouldWarn()); + } else { + EXPECT_FALSE(two.shouldWarn()); + } + } + TEST_DONE(); +} |