aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-10-10 18:01:28 +0200
committerGitHub <noreply@github.com>2022-10-10 18:01:28 +0200
commit26d9e5da4de4425cbb75cd8fff4374053073b19d (patch)
treebab1c9ca156af7d94b3583d6244a1c09c72e2a81 /vespalib/src/tests
parent08f7a121fff008dd1307b106bd1b7d7a84433fe6 (diff)
parentab10d27bd029f73d82dabd1f3fdb839edae29e61 (diff)
Merge pull request #24380 from vespa-engine/geirst/generation-holder-new-implv8.66.20
Implement GenerationHolder in terms of the generic generation hold list.
Diffstat (limited to 'vespalib/src/tests')
-rw-r--r--vespalib/src/tests/datastore/fixed_size_hash_map/fixed_size_hash_map_test.cpp4
-rw-r--r--vespalib/src/tests/util/generation_hold_list/generation_hold_list_test.cpp3
-rw-r--r--vespalib/src/tests/util/generation_holder/CMakeLists.txt9
-rw-r--r--vespalib/src/tests/util/generation_holder/generation_holder_test.cpp38
-rw-r--r--vespalib/src/tests/util/rcuvector/rcuvector_test.cpp44
5 files changed, 26 insertions, 72 deletions
diff --git a/vespalib/src/tests/datastore/fixed_size_hash_map/fixed_size_hash_map_test.cpp b/vespalib/src/tests/datastore/fixed_size_hash_map/fixed_size_hash_map_test.cpp
index 599cb209e6c..ad10bc5c7e6 100644
--- a/vespalib/src/tests/datastore/fixed_size_hash_map/fixed_size_hash_map_test.cpp
+++ b/vespalib/src/tests/datastore/fixed_size_hash_map/fixed_size_hash_map_test.cpp
@@ -90,11 +90,11 @@ DataStoreFixedSizeHashTest::commit()
{
_store.transferHoldLists(_generation_handler.getCurrentGeneration());
_hash_map->transfer_hold_lists(_generation_handler.getCurrentGeneration());
- _generation_holder.transferHoldLists(_generation_handler.getCurrentGeneration());
+ _generation_holder.assign_generation(_generation_handler.getCurrentGeneration());
_generation_handler.incGeneration();
_store.trimHoldLists(_generation_handler.getFirstUsedGeneration());
_hash_map->trim_hold_lists(_generation_handler.getFirstUsedGeneration());
- _generation_holder.trimHoldLists(_generation_handler.getFirstUsedGeneration());
+ _generation_holder.reclaim(_generation_handler.getFirstUsedGeneration());
}
size_t
diff --git a/vespalib/src/tests/util/generation_hold_list/generation_hold_list_test.cpp b/vespalib/src/tests/util/generation_hold_list/generation_hold_list_test.cpp
index 0490a99f1e0..8305b711d5f 100644
--- a/vespalib/src/tests/util/generation_hold_list/generation_hold_list_test.cpp
+++ b/vespalib/src/tests/util/generation_hold_list/generation_hold_list_test.cpp
@@ -3,12 +3,13 @@
#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/util/generation_hold_list.hpp>
#include <vespa/vespalib/util/generationholder.h>
+#include <iostream>
using vespalib::GenerationHeldBase;
using vespalib::GenerationHoldList;
using MyElem = GenerationHeldBase;
-using MyHoldList = GenerationHoldList<MyElem::UP, true>;
+using MyHoldList = GenerationHoldList<MyElem::UP, true, false>;
TEST(GenerationHoldListTest, holding_of_unique_ptr_elements_with_tracking_of_held_bytes)
{
diff --git a/vespalib/src/tests/util/generation_holder/CMakeLists.txt b/vespalib/src/tests/util/generation_holder/CMakeLists.txt
deleted file mode 100644
index 8acf9fadaff..00000000000
--- a/vespalib/src/tests/util/generation_holder/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_executable(vespalib_generation_holder_test_app TEST
- SOURCES
- generation_holder_test.cpp
- DEPENDS
- vespalib
- GTest::GTest
-)
-vespa_add_test(NAME vespalib_generation_holder_test_app COMMAND vespalib_generation_holder_test_app)
diff --git a/vespalib/src/tests/util/generation_holder/generation_holder_test.cpp b/vespalib/src/tests/util/generation_holder/generation_holder_test.cpp
deleted file mode 100644
index 97c3330ac9e..00000000000
--- a/vespalib/src/tests/util/generation_holder/generation_holder_test.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/vespalib/gtest/gtest.h>
-#include <vespa/vespalib/util/generationholder.h>
-
-using vespalib::GenerationHolder;
-using MyHeld = vespalib::GenerationHeldBase;
-
-TEST(GenerationHolderTest, basic_tracking)
-{
- GenerationHolder gh;
- gh.hold(std::make_unique<MyHeld>(sizeof(int32_t)));
- gh.transferHoldLists(0);
- gh.hold(std::make_unique<MyHeld>(sizeof(int32_t)));
- gh.transferHoldLists(1);
- gh.hold(std::make_unique<MyHeld>(sizeof(int32_t)));
- gh.transferHoldLists(2);
- gh.hold(std::make_unique<MyHeld>(sizeof(int32_t)));
- gh.transferHoldLists(4);
- EXPECT_EQ(4u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(0);
- EXPECT_EQ(4u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(1);
- EXPECT_EQ(3u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(2);
- EXPECT_EQ(2u * sizeof(int32_t), gh.getHeldBytes());
- gh.hold(std::make_unique<MyHeld>(sizeof(int32_t)));
- gh.transferHoldLists(6);
- EXPECT_EQ(3u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(6);
- EXPECT_EQ(1u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(7);
- EXPECT_EQ(0u * sizeof(int32_t), gh.getHeldBytes());
- gh.trimHoldLists(7);
- EXPECT_EQ(0u * sizeof(int32_t), gh.getHeldBytes());
-}
-
-GTEST_MAIN_RUN_ALL_TESTS()
diff --git a/vespalib/src/tests/util/rcuvector/rcuvector_test.cpp b/vespalib/src/tests/util/rcuvector/rcuvector_test.cpp
index eb2b00f9e20..c23065b7468 100644
--- a/vespalib/src/tests/util/rcuvector/rcuvector_test.cpp
+++ b/vespalib/src/tests/util/rcuvector/rcuvector_test.cpp
@@ -102,15 +102,15 @@ TEST(RcuVectorTest, resize)
RcuVectorBase<int8_t> v(growStrategy(16, 1.0, 0), g);
v.push_back(1);
v.push_back(2);
- g.transferHoldLists(0);
- g.trimHoldLists(1);
+ g.assign_generation(0);
+ g.reclaim(1);
const int8_t *old = &v[0];
EXPECT_EQ(16u, v.capacity());
EXPECT_EQ(2u, v.size());
v.ensure_size(32, 3);
v[0] = 3;
v[1] = 3;
- g.transferHoldLists(1);
+ g.assign_generation(1);
EXPECT_EQ(1, old[0]);
EXPECT_EQ(2, old[1]);
EXPECT_EQ(3, v[0]);
@@ -119,7 +119,7 @@ TEST(RcuVectorTest, resize)
EXPECT_EQ(3, v[31]);
EXPECT_EQ(64u, v.capacity());
EXPECT_EQ(32u, v.size());
- g.trimHoldLists(2);
+ g.reclaim(2);
}
}
@@ -197,11 +197,11 @@ void verify_shrink_with_buffer_copying(size_t initial_size, size_t absolute_mini
v.push_back(2);
v.push_back(3);
v.push_back(4);
- g.transferHoldLists(0);
- g.trimHoldLists(1);
+ g.assign_generation(0);
+ g.reclaim(1);
MemoryUsage mu;
mu = v.getMemoryUsage();
- mu.incAllocatedBytesOnHold(g.getHeldBytes());
+ mu.incAllocatedBytesOnHold(g.get_held_bytes());
EXPECT_TRUE(assertUsage(MemoryUsage(initial_capacity, 4, 0, 0), mu));
EXPECT_EQ(4u, v.size());
EXPECT_EQ(initial_capacity, v.capacity());
@@ -211,18 +211,18 @@ void verify_shrink_with_buffer_copying(size_t initial_size, size_t absolute_mini
EXPECT_EQ(4, v[3]);
const int8_t *old = &v[0];
v.shrink(2);
- g.transferHoldLists(1);
+ g.assign_generation(1);
EXPECT_EQ(2u, v.size());
EXPECT_EQ(minimal_capacity, v.capacity());
EXPECT_EQ(1, v[0]);
EXPECT_EQ(2, v[1]);
EXPECT_EQ(1, old[0]);
EXPECT_EQ(2, old[1]);
- g.trimHoldLists(2);
+ g.reclaim(2);
EXPECT_EQ(1, v[0]);
EXPECT_EQ(2, v[1]);
mu = v.getMemoryUsage();
- mu.incAllocatedBytesOnHold(g.getHeldBytes());
+ mu.incAllocatedBytesOnHold(g.get_held_bytes());
EXPECT_TRUE(assertUsage(MemoryUsage(minimal_capacity, 2, 0, 0), mu));
}
@@ -256,7 +256,7 @@ struct ShrinkFixture {
EXPECT_EQ(oldPtr, &vec[0]);
}
void assertEmptyHoldList() {
- EXPECT_EQ(0u, g.getHeldBytes());
+ EXPECT_EQ(0u, g.get_held_bytes());
}
static size_t page_ints() { return round_up_to_page_size(1) / sizeof(int); }
};
@@ -294,8 +294,8 @@ TEST(RcuVectorTest, small_expand)
v.push_back(2);
EXPECT_EQ(2u, v.capacity());
EXPECT_EQ(2u, v.size());
- g.transferHoldLists(1);
- g.trimHoldLists(2);
+ g.assign_generation(1);
+ g.reclaim(2);
}
struct FixtureBase {
@@ -325,10 +325,10 @@ struct Fixture : public FixtureBase {
Fixture();
~Fixture();
- void transfer_and_trim(generation_t transfer_gen, generation_t trim_gen)
+ void assign_and_reclaim(generation_t assign_gen, generation_t reclaim_gen)
{
- g.transferHoldLists(transfer_gen);
- g.trimHoldLists(trim_gen);
+ g.assign_generation(assign_gen);
+ g.reclaim(reclaim_gen);
}
};
@@ -345,7 +345,7 @@ TEST(RcuVectorTest, memory_allocator_can_be_set)
{
Fixture f;
EXPECT_EQ(AllocStats(2, 0), f.stats);
- f.transfer_and_trim(1, 2);
+ f.assign_and_reclaim(1, 2);
EXPECT_EQ(AllocStats(2, 1), f.stats);
}
@@ -355,7 +355,7 @@ TEST(RcuVectorTest, memory_allocator_is_preserved_across_reset)
f.arr.reset();
f.arr.reserve(100);
EXPECT_EQ(AllocStats(4, 1), f.stats);
- f.transfer_and_trim(1, 2);
+ f.assign_and_reclaim(1, 2);
EXPECT_EQ(AllocStats(4, 3), f.stats);
}
@@ -366,7 +366,7 @@ TEST(RcuVectorTest, created_replacement_vector_uses_same_memory_allocator)
EXPECT_EQ(AllocStats(2, 0), f.stats);
arr2.reserve(100);
EXPECT_EQ(AllocStats(3, 0), f.stats);
- f.transfer_and_trim(1, 2);
+ f.assign_and_reclaim(1, 2);
EXPECT_EQ(AllocStats(3, 1), f.stats);
}
@@ -377,7 +377,7 @@ TEST(RcuVectorTest, ensure_size_and_shrink_use_same_memory_allocator)
EXPECT_EQ(AllocStats(3, 0), f.stats);
f.arr.shrink(1000);
EXPECT_EQ(AllocStats(4, 0), f.stats);
- f.transfer_and_trim(1, 2);
+ f.assign_and_reclaim(1, 2);
EXPECT_EQ(AllocStats(4, 3), f.stats);
}
@@ -432,10 +432,10 @@ void
StressFixture::commit()
{
auto current_gen = generation_handler.getCurrentGeneration();
- g.transferHoldLists(current_gen);
+ g.assign_generation(current_gen);
generation_handler.incGeneration();
auto first_used_gen = generation_handler.getFirstUsedGeneration();
- g.trimHoldLists(first_used_gen);
+ g.reclaim(first_used_gen);
}
void