Update MallctlHelperTest with jemalloc 5 APIs.
authorQi Wang <qiwang@fb.com>
Tue, 6 Jun 2017 06:06:11 +0000 (23:06 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 6 Jun 2017 06:13:29 +0000 (23:13 -0700)
Summary: Update decay time API to be jemalloc 4 & 5 compatible.

Reviewed By: yfeldblum

Differential Revision: D5188574

fbshipit-source-id: 8e3c26c8b6431efdd0ec7ff492a065bddb816b4b

folly/test/MallctlHelperTest.cpp

index e2b6e07206ece9d5ee64c08d215f712b536f2265..e2b22fe699a15f1f94e2f836c98c466af341dfae 100644 (file)
 #include <folly/init/Init.h>
 #include <folly/portability/GTest.h>
 
+#ifdef FOLLY_HAVE_LIBJEMALLOC
+#include <jemalloc/jemalloc.h>
+#endif
+
 using namespace folly;
 
+#ifdef FOLLY_HAVE_LIBJEMALLOC
+#if JEMALLOC_VERSION_MAJOR > 4
+static constexpr char const* kDecayCmd = "arena.0.dirty_decay_ms";
+const char* malloc_conf = "dirty_decay_ms:10";
+#else
+static constexpr char const* kDecayCmd = "arena.0.decay_time";
 const char* malloc_conf = "purge:decay,decay_time:10";
+#endif
+#endif
 
 class MallctlHelperTest : public ::testing::Test {
  protected:
   void TearDown() override {
     // Reset decay_time of arena 0 to 10 seconds.
     ssize_t decayTime = 10;
-    EXPECT_NO_THROW(mallctlWrite("arena.0.decay_time", decayTime));
+    EXPECT_NO_THROW(mallctlWrite(kDecayCmd, decayTime));
   }
 
   static ssize_t readArena0DecayTime() {
     ssize_t decayTime = 0;
-    EXPECT_NO_THROW(mallctlRead("arena.0.decay_time", &decayTime));
+    EXPECT_NO_THROW(mallctlRead(kDecayCmd, &decayTime));
     return decayTime;
   }
 };
 
 TEST_F(MallctlHelperTest, valid_read) {
   ssize_t decayTime = 0;
-  EXPECT_NO_THROW(mallctlRead("opt.decay_time", &decayTime));
+  EXPECT_NO_THROW(mallctlRead(kDecayCmd, &decayTime));
   EXPECT_EQ(10, decayTime);
 }
 
@@ -52,7 +64,7 @@ TEST_F(MallctlHelperTest, invalid_read) {
 
 TEST_F(MallctlHelperTest, valid_write) {
   ssize_t decayTime = 20;
-  EXPECT_NO_THROW(mallctlWrite("arena.0.decay_time", decayTime));
+  EXPECT_NO_THROW(mallctlWrite(kDecayCmd, decayTime));
   EXPECT_EQ(20, readArena0DecayTime());
 }
 
@@ -65,8 +77,7 @@ TEST_F(MallctlHelperTest, invalid_write) {
 TEST_F(MallctlHelperTest, valid_read_write) {
   ssize_t oldDecayTime = 0;
   ssize_t newDecayTime = 20;
-  EXPECT_NO_THROW(
-      mallctlReadWrite("arena.0.decay_time", &oldDecayTime, newDecayTime));
+  EXPECT_NO_THROW(mallctlReadWrite(kDecayCmd, &oldDecayTime, newDecayTime));
   EXPECT_EQ(10, oldDecayTime);
   EXPECT_EQ(20, readArena0DecayTime());
 }