diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-02-17 16:32:16 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-02-17 16:32:16 +0100 |
commit | dd6a7dc8deb5290ff939118eebf740c71942d880 (patch) | |
tree | a3626da51edb8e1fd8e9a0b73fe94d505e86a772 /vespalib/src/tests/alloc | |
parent | 46881598ff4e1362bbfe58c6a6ef1dc1de8b4f76 (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.cpp | 41 |
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)); } |