aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-09 12:36:16 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-09 12:36:16 +0000
commite24015850d323f5f4c310abb3007093e322de5fc (patch)
tree29566af95290549c6e3331b22b84d4c05f753afc /searchcore
parentf935e484bd29211cb48dd7c0e22de2ad0b243278 (diff)
Add test for BucketDB active tracking.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/bucketdb/bucketdb/bucketdb_test.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/bucketdb/bucketdb/bucketdb_test.cpp b/searchcore/src/tests/proton/bucketdb/bucketdb/bucketdb_test.cpp
index aa272f3ef0e..6d14c8b81df 100644
--- a/searchcore/src/tests/proton/bucketdb/bucketdb/bucketdb_test.cpp
+++ b/searchcore/src/tests/proton/bucketdb/bucketdb/bucketdb_test.cpp
@@ -379,4 +379,30 @@ TEST("test that BucketState can count active Documents") {
EXPECT_EQUAL(0u, bs.getActiveDocumentCount());
}
+TEST_F("test BucketDB active document tracking", Fixture) {
+ Timestamp t1;
+ EXPECT_EQUAL(0u, f._db.getNumActiveDocs());
+ f.add(make_gid(4,1), t1, 3, SubDbType::READY);
+ EXPECT_EQUAL(0u, f._db.getNumActiveDocs());
+ f._db.setBucketState(make_bucket_id(4), true);
+ EXPECT_EQUAL(1u, f._db.getNumActiveDocs());
+
+ BucketState bs;
+ bs.add(make_gid(5,1), Timestamp(1), 3, SubDbType::NOTREADY);
+ bs.add(make_gid(5,2), Timestamp(2), 3, SubDbType::NOTREADY);
+ f._db.add(make_bucket_id(5), bs);
+ EXPECT_EQUAL(1u, f._db.getNumActiveDocs());
+ f._db.setBucketState(make_bucket_id(5), true);
+ EXPECT_EQUAL(3u, f._db.getNumActiveDocs());
+ BucketState * writeableBS = f._db.getBucketStatePtr(make_bucket_id(5));
+ writeableBS->setActive(false);
+ EXPECT_EQUAL(3u, f._db.getNumActiveDocs()); // Incorrect until integrity restored
+ f._db.restoreIntegrity();
+ EXPECT_EQUAL(1u, f._db.getNumActiveDocs());
+
+ f.remove(make_gid(4,1), t1, 3, SubDbType::READY);
+ f._db.unloadBucket(make_bucket_id(5), bs);
+ EXPECT_EQUAL(0u, f._db.getNumActiveDocs());
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }