From b2a1f407ecc6d6bf478dfdf0aa586847fcdab804 Mon Sep 17 00:00:00 2001 From: Nanaloveyuki Date: Sun, 14 Jun 2026 06:55:48 +0800 Subject: [PATCH] :white_check_mark: cover async closed log runtime split --- src-async/BitLoggerAsync_test.mbt | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src-async/BitLoggerAsync_test.mbt b/src-async/BitLoggerAsync_test.mbt index 8238bef..1332a7e 100644 --- a/src-async/BitLoggerAsync_test.mbt +++ b/src-async/BitLoggerAsync_test.mbt @@ -114,6 +114,38 @@ async test "closed blocking logger does not add pending count on later log attem inspect(logger.dropped_count(), content="1") } +async test "closed logger runtime determines whether later log reaches patch path" { + let patched : Ref[Int] = Ref(0) + let logger = async_logger( + @bitlogger.callback_sink(fn(_) { + + }), + config=AsyncLoggerConfig::new( + max_pending=2, + overflow=AsyncOverflowPolicy::Blocking, + ), + min_level=@bitlogger.Level::Info, + target="async.closed.patch", + ).with_patch(fn(rec) { + patched.val += 1 + rec + }) + + logger.info("one") + inspect(patched.val, content="1") + logger.close(clear=true) + inspect(logger.pending_count(), content="0") + inspect(logger.dropped_count(), content="1") + + logger.info("late") + inspect( + patched.val, + content=if async_runtime_supports_background_worker() { "2" } else { "1" }, + ) + inspect(logger.pending_count(), content="0") + inspect(logger.dropped_count(), content="1") +} + test "async logger config stringify roundtrips stable fields" { let text = stringify_async_logger_config( AsyncLoggerConfig::new(