]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/mempool: Add test for mempool in btree_map 33621/head
authorAdam Kupczyk <akupczyk@redhat.com>
Mon, 2 Mar 2020 08:08:45 +0000 (09:08 +0100)
committerAdam Kupczyk <akupczyk@redhat.com>
Mon, 2 Mar 2020 11:18:48 +0000 (12:18 +0100)
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
src/test/test_mempool.cc

index 51e8352099bf8c58048aed537d62f7842d2f66fc..ed2431368f1c3fd5dde9070ece29f6a93dc1062b 100644 (file)
@@ -20,6 +20,7 @@
 #include "common/ceph_argparse.h"
 #include "global/global_context.h"
 #include "gtest/gtest.h"
+#include "include/btree_map.h"
 #include "include/mempool.h"
 
 void check_usage(mempool::pool_index_t ix)
@@ -365,6 +366,29 @@ TEST(mempool, bufferlist_reassign)
   ASSERT_EQ(bytes_before, mempool::osd::allocated_bytes());
 }
 
+TEST(mempool, btree_map_test)
+{
+  typedef mempool::pool_allocator<mempool::mempool_osd,
+    pair<const uint64_t,uint64_t>> allocator_t;
+  typedef btree::btree_map<uint64_t,uint64_t,std::less<uint64_t>,allocator_t> btree_t;
+
+  {
+    btree_t btree;
+    ASSERT_EQ(0, mempool::osd::allocated_items());
+    ASSERT_EQ(0, mempool::osd::allocated_bytes());
+    for (size_t i = 0; i < 1000; ++i) {
+      btree[rand()] = rand();
+    }
+    ASSERT_LT(0, mempool::osd::allocated_items());
+    ASSERT_LT(0, mempool::osd::allocated_bytes());
+  }
+
+  ASSERT_EQ(0, mempool::osd::allocated_items());
+  ASSERT_EQ(0, mempool::osd::allocated_bytes());
+}
+
+
+
 int main(int argc, char **argv)
 {
   vector<const char*> args;