aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/alloc
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-02-17 16:32:16 +0100
committerTor Egge <Tor.Egge@online.no>2022-02-17 16:32:16 +0100
commitdd6a7dc8deb5290ff939118eebf740c71942d880 (patch)
treea3626da51edb8e1fd8e9a0b73fe94d505e86a772 /vespalib/src/tests/alloc
parent46881598ff4e1362bbfe58c6a6ef1dc1de8b4f76 (diff)
Handle 64K page size in alloc unit test and rcuvector unit test.
Diffstat (limited to 'vespalib/src/tests/alloc')
-rw-r--r--vespalib/src/tests/alloc/alloc_test.cpp41
1 files changed, 24 insertions, 17 deletions
diff --git a/vespalib/src/tests/alloc/alloc_test.cpp b/vespalib/src/tests/alloc/alloc_test.cpp
index da41d75b479..c65bb770f37 100644
--- a/vespalib/src/tests/alloc/alloc_test.cpp
+++ b/vespalib/src/tests/alloc/alloc_test.cpp
@@ -4,6 +4,7 @@
#include <vespa/vespalib/util/alloc.h>
#include <vespa/vespalib/util/memory_allocator.h>
#include <vespa/vespalib/util/exceptions.h>
+#include <vespa/vespalib/util/round_up_to_page_size.h>
#include <vespa/vespalib/util/size_literals.h>
#include <cstddef>
#include <sys/mman.h>
@@ -19,17 +20,23 @@ using namespace vespalib::alloc;
#endif
#endif
+namespace {
+
+size_t page_sz = round_up_to_page_size(1);
+
+}
+
template <typename T>
void
testSwap(T & a, T & b)
{
void * tmpA(a.get());
void * tmpB(b.get());
- EXPECT_EQUAL(4_Ki, a.size());
- EXPECT_EQUAL(8_Ki, b.size());
+ EXPECT_EQUAL(page_sz, a.size());
+ EXPECT_EQUAL(2 * page_sz, b.size());
std::swap(a, b);
- EXPECT_EQUAL(4_Ki, b.size());
- EXPECT_EQUAL(8_Ki, a.size());
+ EXPECT_EQUAL(page_sz, b.size());
+ EXPECT_EQUAL(2 * page_sz, a.size());
EXPECT_EQUAL(tmpA, b.get());
EXPECT_EQUAL(tmpB, a.get());
}
@@ -76,24 +83,24 @@ TEST("test basics") {
}
{
Alloc h = Alloc::allocMMap(100);
- EXPECT_EQUAL(4_Ki, h.size());
+ EXPECT_EQUAL(page_sz, h.size());
EXPECT_TRUE(h.get() != nullptr);
}
{
- Alloc a = Alloc::allocHeap(4_Ki), b = Alloc::allocHeap(8_Ki);
+ Alloc a = Alloc::allocHeap(page_sz), b = Alloc::allocHeap(2 * page_sz);
testSwap(a, b);
}
{
- Alloc a = Alloc::allocMMap(4_Ki), b = Alloc::allocMMap(8_Ki);
+ Alloc a = Alloc::allocMMap(page_sz), b = Alloc::allocMMap(2 * page_sz);
testSwap(a, b);
}
{
- Alloc a = Alloc::allocAlignedHeap(4_Ki, 1_Ki), b = Alloc::allocAlignedHeap(8_Ki, 1_Ki);
+ Alloc a = Alloc::allocAlignedHeap(page_sz, 1_Ki), b = Alloc::allocAlignedHeap(2 * page_sz, 1_Ki);
testSwap(a, b);
}
{
- Alloc a = Alloc::allocHeap(4_Ki);
- Alloc b = Alloc::allocMMap(8_Ki);
+ Alloc a = Alloc::allocHeap(page_sz);
+ Alloc b = Alloc::allocMMap(2 * page_sz);
testSwap(a, b);
}
{
@@ -228,7 +235,7 @@ TEST("mmap alloc can be extended if room") {
Alloc buf = Alloc::allocMMap(100);
TEST_DO(ensureRoomForExtension(buf, reserved));
- TEST_DO(verifyExtension(buf, 4_Ki, 4_Ki*2));
+ TEST_DO(verifyExtension(buf, page_sz, page_sz * 2));
}
TEST("mmap alloc can not be extended if no room") {
@@ -236,7 +243,7 @@ TEST("mmap alloc can not be extended if no room") {
Alloc reserved = Alloc::allocMMap(100);
Alloc buf = Alloc::allocMMap(100);
- TEST_DO(verifyNoExtensionWhenNoRoom(buf, reserved, 4_Ki));
+ TEST_DO(verifyNoExtensionWhenNoRoom(buf, reserved, page_sz));
}
#endif
#endif
@@ -256,16 +263,16 @@ TEST("heap alloc cannot be shrunk to zero") {
}
TEST("mmap alloc can be shrinked") {
- Alloc buf = Alloc::allocMMap(4097);
+ Alloc buf = Alloc::allocMMap(page_sz + 1);
void * oldPtr = buf.get();
- EXPECT_EQUAL(8_Ki, buf.size());
- EXPECT_TRUE(buf.resize_inplace(4095));
+ EXPECT_EQUAL(2 * page_sz, buf.size());
+ EXPECT_TRUE(buf.resize_inplace(page_sz - 1));
EXPECT_EQUAL(oldPtr, buf.get());
- EXPECT_EQUAL(4_Ki, buf.size());
+ EXPECT_EQUAL(page_sz, buf.size());
}
TEST("mmap alloc cannot be shrunk to zero") {
- Alloc buf = Alloc::allocMMap(4097);
+ Alloc buf = Alloc::allocMMap(page_sz + 1);
EXPECT_FALSE(buf.resize_inplace(0));
}