@@ -41,7 +41,7 @@ class CacheManagerTest : public TESTBASE {
4141
4242 std::unique_ptr<CacheManager> createCacheManager () {
4343 std::shared_ptr<MetricsRegistry> metrics_registry = std::make_shared<MetricsRegistry>();
44- std::shared_ptr<RegistryManager> registry_manager = std::make_shared<RegistryManager>(" " , metrics_registry);
44+ registry_manager_ = std::make_shared<RegistryManager>(" " , metrics_registry);
4545 std::shared_ptr<InstanceGroup> instance_group = std::make_shared<InstanceGroup>();
4646 auto meta_indexer_config = std::make_shared<MetaIndexerConfig>();
4747 instance_group->cache_config_ = std::make_shared<CacheConfig>();
@@ -55,18 +55,18 @@ class CacheManagerTest : public TESTBASE {
5555
5656 std::shared_ptr<InstanceInfo> instance_info = std::make_shared<InstanceInfo>(
5757 " test_quota_group" , " default" , " test_instance" , 64 , createLocationSpecInfos (), createModelDeployment ());
58- registry_manager ->instance_group_configs_ [" test_group" ] = instance_group;
59- registry_manager ->instance_infos_ [" test_instance" ] = instance_info;
60- registry_manager ->Init ();
58+ registry_manager_ ->instance_group_configs_ [" test_group" ] = instance_group;
59+ registry_manager_ ->instance_infos_ [" test_instance" ] = instance_info;
60+ registry_manager_ ->Init ();
6161 std::unique_ptr<CacheManager> cache_manager =
62- std::make_unique<CacheManager>(metrics_registry, registry_manager );
62+ std::make_unique<CacheManager>(metrics_registry, registry_manager_ );
6363
6464 EXPECT_TRUE (cache_manager->Init ());
6565
6666 // load first because we need default group
6767 // in real usage, we load startup config after recover
6868 StartupConfigLoader loader;
69- loader.Init (registry_manager );
69+ loader.Init (registry_manager_ );
7070 loader.Load (" " );
7171
7272 EXPECT_EQ (EC_OK, cache_manager->DoRecover ());
@@ -108,6 +108,7 @@ class CacheManagerTest : public TESTBASE {
108108 }
109109
110110 std::unique_ptr<CacheManager> cache_manager_;
111+ std::shared_ptr<RegistryManager> registry_manager_;
111112 std::shared_ptr<RequestContext> request_context_;
112113};
113114
@@ -1333,4 +1334,24 @@ TEST_F(CacheManagerTest, TestUnavailableStorage) {
13331334 test_match_location (10 , 4 , " nfs_test_01" ); // match available location
13341335}
13351336
1337+ TEST_F (CacheManagerTest, TestStartWriteCacheWithNoAvailableStorage) {
1338+ auto expected = std::pair<ErrorCode, std::string>(EC_OK, default_storage_configs);
1339+ ASSERT_EQ (expected,
1340+ cache_manager_->RegisterInstance (request_context_.get (),
1341+ " default" ,
1342+ " test_instance" ,
1343+ 64 ,
1344+ createLocationSpecInfos (),
1345+ createModelDeployment (),
1346+ std::vector<LocationSpecGroup>()));
1347+
1348+ ASSERT_EQ (EC_OK, registry_manager_->DisableStorage (request_context_.get (), " nfs_01" ));
1349+
1350+ std::vector<int64_t > keys{1 , 2 , 3 , 4 };
1351+ auto [ec, start_write_cache_info] =
1352+ cache_manager_->StartWriteCache (request_context_.get (), " test_instance" , keys, {}, {}, 100000000 );
1353+ EXPECT_EQ (EC_ERROR, ec);
1354+ EXPECT_EQ (0 , start_write_cache_info.locations ().cache_locations_view ().size ());
1355+ }
1356+
13361357} // namespace kv_cache_manager
0 commit comments