diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2016-06-28 13:46:51 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2016-06-28 13:46:51 +0000 |
commit | d566ff97af09c15a3b121b3e9a4f085f34196252 (patch) | |
tree | 3bec47596b3c57d9af9119767d7e519007fb1b53 /searchcore/src/tests/proton/documentdb/documentbucketmover | |
parent | cce9113b522bab012f842168ce6cac09e7ca4265 (diff) |
Split into separate tests for disk and memory limit.
Move common code to fixture method.
Diffstat (limited to 'searchcore/src/tests/proton/documentdb/documentbucketmover')
-rw-r--r-- | searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp index 406fd24b62c..417b9b650d1 100644 --- a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp +++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp @@ -1178,35 +1178,38 @@ TEST_F("require that thawed bucket is not moved if active as well", ControllerFi EXPECT_EQUAL(f._ready.bucket(1), f.bucketsModified()[0]); } +struct ResourceLimitControllerFixture : public ControllerFixture +{ + void testJobStopping(DiskMemUsageState blockingUsageState) { + // Bucket 1 shold be moved + addReady(_ready.bucket(2)); + // Note: This depends on f._bmj.run() moving max 1 documents + EXPECT_TRUE(!_bmj.run()); + EXPECT_EQUAL(1u, docsMoved().size()); + EXPECT_EQUAL(0u, bucketsModified().size()); + // Notify that we've over limit + _diskMemUsageNotifier.notify(blockingUsageState); + EXPECT_TRUE(_bmj.run()); + EXPECT_EQUAL(1u, docsMoved().size()); + EXPECT_EQUAL(0u, bucketsModified().size()); + // Notify that we've under limit + _diskMemUsageNotifier.notify(DiskMemUsageState()); + EXPECT_TRUE(!_bmj.run()); + EXPECT_EQUAL(2u, docsMoved().size()); + EXPECT_EQUAL(0u, bucketsModified().size()); + } +}; -TEST_F("require that bucket move stops when disk or memory limit is reached", ControllerFixture) + +TEST_F("require that bucket move stops when disk limit is reached", ResourceLimitControllerFixture) { - // Bucket 1 shold be moved - f.addReady(f._ready.bucket(2)); - // Note: This depends on f._bmj.run() moving max 1 documents - EXPECT_TRUE(!f._bmj.run()); - EXPECT_EQUAL(1u, f.docsMoved().size()); - EXPECT_EQUAL(0u, f.bucketsModified().size()); - // Notify that we've over disk limit - f._diskMemUsageNotifier.notify(DiskMemUsageState(true, false)); - EXPECT_TRUE(f._bmj.run()); - EXPECT_EQUAL(1u, f.docsMoved().size()); - EXPECT_EQUAL(0u, f.bucketsModified().size()); - // Notify that we've under disk limit - f._diskMemUsageNotifier.notify(DiskMemUsageState(false, false)); - EXPECT_TRUE(!f._bmj.run()); - EXPECT_EQUAL(2u, f.docsMoved().size()); - EXPECT_EQUAL(0u, f.bucketsModified().size()); - // Notify that we've over memory limit - f._diskMemUsageNotifier.notify(DiskMemUsageState(false, true)); - EXPECT_TRUE(f._bmj.run()); - EXPECT_EQUAL(2u, f.docsMoved().size()); - EXPECT_EQUAL(0u, f.bucketsModified().size()); - // Notify that we've under memory limit - f._diskMemUsageNotifier.notify(DiskMemUsageState(false, false)); - EXPECT_TRUE(!f._bmj.run()); - EXPECT_EQUAL(3u, f.docsMoved().size()); - EXPECT_EQUAL(1u, f.bucketsModified().size()); + f.testJobStopping(DiskMemUsageState(true, false)); +} + + +TEST_F("require that bucket move stops when memory limit is reached", ResourceLimitControllerFixture) +{ + f.testJobStopping(DiskMemUsageState(false, true)); } |