aboutsummaryrefslogtreecommitdiffstats
path: root/vespamalloc/src/tests/test1/new_test.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-10 21:58:25 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-11 09:32:25 +0000
commitf0a3e2949aabdc68edb46bde9565a6c062b290e9 (patch)
tree7a0485f899217ac2f38a8823b8e2f0a258e6e549 /vespamalloc/src/tests/test1/new_test.cpp
parentc91f726a5eef7e24b688db594620ef112e0a281e (diff)
Add support for mmapping large allocations.
Diffstat (limited to 'vespamalloc/src/tests/test1/new_test.cpp')
-rw-r--r--vespamalloc/src/tests/test1/new_test.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/vespamalloc/src/tests/test1/new_test.cpp b/vespamalloc/src/tests/test1/new_test.cpp
index 0723f8cca85..77c07a52918 100644
--- a/vespamalloc/src/tests/test1/new_test.cpp
+++ b/vespamalloc/src/tests/test1/new_test.cpp
@@ -1,5 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/util/size_literals.h>
#include <vespa/log/log.h>
#include <malloc.h>
#include <dlfcn.h>
@@ -170,7 +171,19 @@ TEST("verify mallopt") {
if (env == MallocLibrary::UNKNOWN) return;
EXPECT_EQUAL(0, mallopt(M_MMAP_MAX, 0x1000000));
EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, 0x1000000));
- EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, -1));
+ EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, 1_Gi));
+}
+
+TEST("verify mmap_limit") {
+ MallocLibrary env = detectLibrary();
+ if (env == MallocLibrary::UNKNOWN) return;
+ EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, 0x100000));
+ auto small = std::make_unique<char[]>(16_Ki);
+ auto large_1 = std::make_unique<char[]>(1200_Ki);
+ EXPECT_GREATER(size_t(labs(small.get() - large_1.get())), 1_Ti);
+ EXPECT_EQUAL(1, mallopt(M_MMAP_THRESHOLD, 1_Gi));
+ auto large_2 = std::make_unique<char[]>(1200_Ki);
+ EXPECT_LESS(size_t(labs(small.get() - large_2.get())), 1_Ti);
}