From 11dd6442a420df112bfa9d07d0d73a04d6e3da6e Mon Sep 17 00:00:00 2001 From: Rafik Saliev Date: Fri, 13 Nov 2026 06:37:53 -0700 Subject: [PATCH] fix(test): add scope guard for logger sink cleanup in dynamic index tests --- tests/svs/index/vamana/dynamic_index_2.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/svs/index/vamana/dynamic_index_2.cpp b/tests/svs/index/vamana/dynamic_index_2.cpp index 2daeda29e..da85a6903 100644 --- a/tests/svs/index/vamana/dynamic_index_2.cpp +++ b/tests/svs/index/vamana/dynamic_index_2.cpp @@ -21,6 +21,7 @@ #include "svs/index/vamana/dynamic_index.h" #include "svs/lib/float16.h" #include "svs/lib/preprocessor.h" +#include "svs/lib/scopeguard.h" #include "svs/lib/timing.h" #include "svs/misc/dynamic_helper.h" @@ -283,6 +284,13 @@ CATCH_TEST_CASE("Testing Graph Index", "[graph_index][dynamic_index]") { global_callback_sink->set_level(spdlog::level::trace); auto original_logger = svs::logging::get(); original_logger->sinks().push_back(global_callback_sink); + // The sink captures a local vector: remove it before the vector goes out of scope. + auto remove_sink = svs::lib::make_scope_guard([&]() noexcept { + auto& sinks = original_logger->sinks(); + sinks.erase( + std::remove(sinks.begin(), sinks.end(), global_callback_sink), sinks.end() + ); + }); // Load the base dataset and queries. auto data = svs::data::SimpleData::load(test_dataset::data_svs_file()); @@ -495,6 +503,13 @@ CATCH_TEST_CASE("Dynamic MutableVamanaIndex Per-Index Logging Test", "[logging]" auto original_logger = svs::logging::get(); original_logger->sinks().push_back(global_callback_sink); + // The sink captures a local vector: remove it before the vector goes out of scope. + auto remove_sink = svs::lib::make_scope_guard([&]() noexcept { + auto& sinks = original_logger->sinks(); + sinks.erase( + std::remove(sinks.begin(), sinks.end(), global_callback_sink), sinks.end() + ); + }); // Setup index auto data = svs::data::SimpleData::load(test_dataset::data_svs_file());