diff options
Diffstat (limited to 'vespamalloc/src/tests/test1/testatomic.cpp')
-rw-r--r-- | vespamalloc/src/tests/test1/testatomic.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vespamalloc/src/tests/test1/testatomic.cpp b/vespamalloc/src/tests/test1/testatomic.cpp index 1f0b2acaeef..76402c2570d 100644 --- a/vespamalloc/src/tests/test1/testatomic.cpp +++ b/vespamalloc/src/tests/test1/testatomic.cpp @@ -1,6 +1,7 @@ // 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 <vespamalloc/malloc/allocchunk.h> +#include <vespamalloc/malloc/mmappool.h> TEST("verify lock freeness of atomics"){ { @@ -20,4 +21,30 @@ TEST("verify lock freeness of atomics"){ } +TEST("test explicit mmap/munmap") { + vespamalloc::MMapPool mmapPool; + EXPECT_EQUAL(0u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0u, mmapPool.getMmappedBytes()); + + void * mmap1 = mmapPool.mmap(0xe000); + EXPECT_EQUAL(1u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0xe000u, mmapPool.getMmappedBytes()); + mmapPool.unmap(mmap1); + EXPECT_EQUAL(0u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0u, mmapPool.getMmappedBytes()); + mmap1 = mmapPool.mmap(0xe000); + EXPECT_EQUAL(1u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0xe000u, mmapPool.getMmappedBytes()); + + void * mmap2 = mmapPool.mmap(0x1e000); + EXPECT_EQUAL(2u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0x2c000u, mmapPool.getMmappedBytes()); + mmapPool.unmap(mmap1); + EXPECT_EQUAL(1u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0x1e000u, mmapPool.getMmappedBytes()); + mmapPool.unmap(mmap2); + EXPECT_EQUAL(0u, mmapPool.getNumMappings()); + EXPECT_EQUAL(0u, mmapPool.getMmappedBytes()); +} + TEST_MAIN() { TEST_RUN_ALL(); } |