From: Samarah Date: Wed, 21 Feb 2024 18:07:17 +0000 (+0000) Subject: d4n/policy: Add test for redis_sync method X-Git-Tag: v20.0.0~2219^2~6 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e862fe0f10587833efd0e6fecb0e45a9b049fd00;p=ceph.git d4n/policy: Add test for redis_sync method Signed-off-by: Samarah --- diff --git a/src/test/rgw/test_d4n_policy.cc b/src/test/rgw/test_d4n_policy.cc index 78fead5732d73..fbdbc14876172 100644 --- a/src/test/rgw/test_d4n_policy.cc +++ b/src/test/rgw/test_d4n_policy.cc @@ -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(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 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);