]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
d4n/policy: Add test for redis_sync method
authorSamarah <samarah.uriarte@ibm.com>
Wed, 21 Feb 2024 18:07:17 +0000 (18:07 +0000)
committerPritha Srivastava <prsrivas@redhat.com>
Tue, 2 Apr 2024 15:54:52 +0000 (21:24 +0530)
Signed-off-by: Samarah <samarah.uriarte@ibm.com>
src/test/rgw/test_d4n_policy.cc

index 78fead5732d7361342bc1a318639f2bef1437eb4..fbdbc14876172a342bd61334cd732774e0dc59db 100644 (file)
@@ -92,7 +92,9 @@ class LFUDAPolicyFixture : public ::testing::Test {
       delete block;
       delete dir;
       delete cacheDriver;
-      delete policyDriver;
+      
+      if (policyDriver)
+       delete policyDriver;
     }
 
     std::string build_index(std::string bucketName, std::string oid, uint64_t offset, uint64_t size) {
@@ -270,6 +272,47 @@ TEST_F(LFUDAPolicyFixture, BackendGetBlockYield)
   io.run();
 }
 
+TEST_F(LFUDAPolicyFixture, RedisSyncTest)
+{
+  spawn::spawn(io, [this] (spawn::yield_context yield) {
+    env->cct->_conf->rgw_lfuda_sync_frequency = 1;
+    dynamic_cast<rgw::d4n::LFUDAPolicy*>(policyDriver->get_cache_policy())->save_y(optional_yield{io, yield});
+    policyDriver->get_cache_policy()->init(env->cct, env->dpp, io);
+  
+    cacheDriver->shutdown();
+
+    boost::system::error_code ec;
+    request req;
+    req.push("HGET", "lfuda", "age");
+    req.push("HGET", "lfuda", "minLocalWeights_sum");
+    req.push("HGET", "lfuda", "minLocalWeights_size");
+    req.push("HGET", "lfuda", "minLocalWeights_address");
+    req.push("HGET", "127.0.0.1:6379", "avgLocalWeight_sum");
+    req.push("HGET", "127.0.0.1:6379", "avgLocalWeight_size");
+    req.push("FLUSHALL");
+
+    response<std::string, std::string, std::string,
+             std::string, std::string, std::string,
+             boost::redis::ignore_t> resp;
+
+    conn->async_exec(req, resp, yield[ec]);
+
+    ASSERT_EQ((bool)ec, false);
+    EXPECT_EQ(std::get<0>(resp).value(), "1");
+    EXPECT_EQ(std::get<1>(resp).value(), "0");
+    EXPECT_EQ(std::get<2>(resp).value(), "0");
+    EXPECT_EQ(std::get<3>(resp).value(), "127.0.0.1:6379");
+    EXPECT_EQ(std::get<4>(resp).value(), "0");
+    EXPECT_EQ(std::get<4>(resp).value(), "0");
+    conn->cancel();
+    
+    delete policyDriver; 
+    policyDriver = nullptr;
+  });
+
+  io.run();
+}
+
 int main(int argc, char *argv[]) {
   ::testing::InitGoogleTest(&argc, argv);