summaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2016-06-28 13:46:51 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2016-06-28 13:46:51 +0000
commitd566ff97af09c15a3b121b3e9a4f085f34196252 (patch)
tree3bec47596b3c57d9af9119767d7e519007fb1b53 /searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp
parentcce9113b522bab012f842168ce6cac09e7ca4265 (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/documentbucketmover_test.cpp')
-rw-r--r--searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp57
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));
}