From 4b96c9b56b09f6fe9a50afcba2a85eb956d26b98 Mon Sep 17 00:00:00 2001 From: dentiny Date: Mon, 10 Feb 2025 21:54:05 +0000 Subject: [PATCH] fix clear and new test Signed-off-by: dentiny --- src/ray/util/spdlog_newliner_sink.h | 2 +- src/ray/util/tests/spdlog_newliner_sink_test.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ray/util/spdlog_newliner_sink.h b/src/ray/util/spdlog_newliner_sink.h index ef9610859be6c..55f4e0d8210fa 100644 --- a/src/ray/util/spdlog_newliner_sink.h +++ b/src/ray/util/spdlog_newliner_sink.h @@ -67,8 +67,8 @@ class spdlog_newliner_sink final : public spdlog::sinks::base_sink { if (!buffer_.empty()) { spdlog::details::log_msg new_log_msg; new_log_msg.payload = std::string_view{buffer_.data(), buffer_.length()}; - buffer_.clear(); internal_sink_->log(std::move(new_log_msg)); + buffer_.clear(); } internal_sink_->flush(); } diff --git a/src/ray/util/tests/spdlog_newliner_sink_test.cc b/src/ray/util/tests/spdlog_newliner_sink_test.cc index 09c6145f34b38..13d5817f4937a 100644 --- a/src/ray/util/tests/spdlog_newliner_sink_test.cc +++ b/src/ray/util/tests/spdlog_newliner_sink_test.cc @@ -41,6 +41,19 @@ std::shared_ptr CreateLogger() { return logger; } +// Testing senario: Keep writing to spdlog after flush, and check whether all written +// content is correctly reflected. +TEST(NewlinerSinkTest, WriteAfterFlush) { + auto logger = CreateLogger(); + constexpr std::string_view kContent = "hello"; + + testing::internal::CaptureStdout(); + logger->log(spdlog::level::info, kContent); + logger->flush(); + const std::string stdout_content = testing::internal::GetCapturedStdout(); + EXPECT_EQ(stdout_content, kContent); +} + TEST(NewlinerSinkTest, AppendAndFlushTest) { // Case-1: string with newliner at the end. {