diff options
Diffstat (limited to 'vespalib/src/tests/btree/btreeaggregation_test.cpp')
-rw-r--r-- | vespalib/src/tests/btree/btreeaggregation_test.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/vespalib/src/tests/btree/btreeaggregation_test.cpp b/vespalib/src/tests/btree/btreeaggregation_test.cpp index 92d8955ab93..7636ab40b59 100644 --- a/vespalib/src/tests/btree/btreeaggregation_test.cpp +++ b/vespalib/src/tests/btree/btreeaggregation_test.cpp @@ -332,6 +332,7 @@ private: void requireThatTreeIteratorAssignWorks(); void requireThatUpdateOfKeyWorks(); void requireThatUpdateOfDataWorks(); + void requireThatFrozenViewProvidesAggregatedValues(); template <typename TreeStore> void @@ -1185,6 +1186,24 @@ Test::requireThatSmallNodesWorks() s.trimHoldLists(g.getFirstUsedGeneration()); } +void +Test::requireThatFrozenViewProvidesAggregatedValues() +{ + MyTree t; + t.insert(20, 102); + t.insert(10, 101); + t.insert(30, 103); + t.insert(40, 104); + auto old_view = t.getFrozenView(); + t.getAllocator().freeze(); + auto new_view = t.getFrozenView(); + auto new_aggregated = new_view.getAggregated(); + EXPECT_EQUAL(new_aggregated.getMin(), 101); + EXPECT_EQUAL(new_aggregated.getMax(), 104); + auto old_aggregated = old_view.getAggregated(); + EXPECT_EQUAL(old_aggregated.getMin(), std::numeric_limits<int32_t>::max()); + EXPECT_EQUAL(old_aggregated.getMax(), std::numeric_limits<int32_t>::min()); +} int Test::Main() @@ -1208,6 +1227,7 @@ Test::Main() requireThatUpdateOfDataWorks(); TEST_DO(requireThatSmallNodesWorks<MyTreeStore>()); TEST_DO(requireThatSmallNodesWorks<MyTreeForceApplyStore>()); + TEST_DO(requireThatFrozenViewProvidesAggregatedValues()); TEST_DONE(); } |