diff options
author | Tor Egge <Tor.Egge@online.no> | 2024-02-16 18:21:41 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2024-02-16 18:21:41 +0100 |
commit | 9a538ab59ec796398b677e2f20ce6a14e699bfe4 (patch) | |
tree | ecb98da177cad9c3e965542d4858105447e13a3c | |
parent | 4800b3046bf587f1b14ec9fcd0d02b55e4401088 (diff) |
Extend predicate index unit test to cover case where the copies of
frozen roots in simple index saver are needed.
-rw-r--r-- | searchlib/src/tests/predicate/predicate_index_test.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/searchlib/src/tests/predicate/predicate_index_test.cpp b/searchlib/src/tests/predicate/predicate_index_test.cpp index 31098feddbc..461fa46d4da 100644 --- a/searchlib/src/tests/predicate/predicate_index_test.cpp +++ b/searchlib/src/tests/predicate/predicate_index_test.cpp @@ -418,19 +418,41 @@ TEST("require that hold lists are attempted emptied on destruction") { // No assert on index destruction. } -TEST("require that predicate index saver protected by a generation guard observes a snapshot of the predicate index") +void verify_snapshot_property(uint32_t num_docs) { PredicateIndex index(generation_holder, dummy_provider, simple_index_config, 10); - indexFeature(index, doc_id, min_feature, {{hash, interval}}, {{hash2, bounds}}); + for (uint32_t i = 0; i < num_docs; ++i) { + indexFeature(index, doc_id + i, min_feature, {{hash, interval}}, {{hash2, bounds}}); + } auto saver1 = make_guarded_saver(index); auto buf1 = saver1.save(); - index.removeDocument(doc_id); + for (uint32_t i = 0; i < num_docs; ++i) { + index.removeDocument(doc_id + i); + } index.commit(); auto saver2 = make_guarded_saver(index); EXPECT_TRUE(equal_buffers(buf1, saver1.save())); EXPECT_FALSE(equal_buffers(buf1, saver2.save())); } +TEST("require that predicate index saver protected by a generation guard observes a snapshot of the predicate index") +{ + /* + * short array in simple index btree posting list + */ + TEST_DO(verify_snapshot_property(1)); + /* + * short array in simple index btree posting list + */ + TEST_DO(verify_snapshot_property(8)); + /* + * BTree in simple index btree posting list. + * Needs copy of frozen roots in simple index saver to observe snapshot + * of predicate index. + */ + TEST_DO(verify_snapshot_property(9)); +} + } // namespace TEST_MAIN() { TEST_RUN_ALL(); } |