summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-01-29 11:13:45 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-01-29 11:13:45 +0000
commit6d8cf1e164fcbde23abf73334ec04b1ab057d48c (patch)
treef6519c3bc81cf04feda3e0be64f9ad5be2921fa1 /searchlib
parentff2010ffd3c15c5518dbc9276cbc7b24cde77879 (diff)
Add testing of growing of bitvector when count is invalid
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/common/bitvector/bitvector_test.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/searchlib/src/tests/common/bitvector/bitvector_test.cpp b/searchlib/src/tests/common/bitvector/bitvector_test.cpp
index d720b105671..409cc9f2725 100644
--- a/searchlib/src/tests/common/bitvector/bitvector_test.cpp
+++ b/searchlib/src/tests/common/bitvector/bitvector_test.cpp
@@ -542,15 +542,16 @@ TEST("requireThatGrowWorks")
{
vespalib::GenerationHolder g;
GrowableBitVector v(200, 200, g);
+ EXPECT_EQUAL(0u, v.countTrueBits());
- v.setBit(7);
- v.setBit(39);
- v.setBit(71);
- v.setBit(103);
-
- EXPECT_EQUAL(200u, v.size());
+ v.setBitAndMaintainCount(7);
+ v.setBitAndMaintainCount(39);
+ v.setBitAndMaintainCount(71);
+ v.setBitAndMaintainCount(103);
+ EXPECT_EQUAL(4u, v.countTrueBits());
+
+ EXPECT_EQUAL(200u, v.size());
EXPECT_EQUAL(1023u, v.capacity());
- v.invalidateCachedCount();
EXPECT_TRUE(assertBV("[7,39,71,103]", v));
EXPECT_EQUAL(4u, v.countTrueBits());
EXPECT_TRUE(v.reserve(1024));
@@ -584,6 +585,13 @@ TEST("requireThatGrowWorks")
EXPECT_EQUAL(2047u, v.capacity());
EXPECT_TRUE(assertBV("[7,39,71]", v));
EXPECT_EQUAL(3u, v.countTrueBits());
+
+ v.invalidateCachedCount();
+ EXPECT_TRUE(v.reserve(3100));
+ EXPECT_EQUAL(100u, v.size());
+ EXPECT_EQUAL(4095u, v.capacity());
+ EXPECT_EQUAL(3u, v.countTrueBits());
+
g.transferHoldLists(1);
g.trimHoldLists(2);
}