From 9370c83ffc1d7dbd2e5fcd95ee0c6a043ae4448a Mon Sep 17 00:00:00 2001 From: Nanaloveyuki Date: Sun, 14 Jun 2026 06:13:06 +0800 Subject: [PATCH] :white_check_mark: cover async facade clear shutdown --- src-async/BitLoggerAsync_test.mbt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src-async/BitLoggerAsync_test.mbt b/src-async/BitLoggerAsync_test.mbt index 562d2c9..76e363f 100644 --- a/src-async/BitLoggerAsync_test.mbt +++ b/src-async/BitLoggerAsync_test.mbt @@ -1056,6 +1056,30 @@ async test "library async shutdown preserves wrapped failure cleanup semantics" ) } +async test "library async shutdown clear abandons pending records through facade" { + let logger = LibraryAsyncLogger::new( + @bitlogger.callback_sink(fn(_) { + + }), + config=AsyncLoggerConfig::new( + max_pending=2, + overflow=AsyncOverflowPolicy::Blocking, + ), + min_level=@bitlogger.Level::Info, + target="async.lib.clear", + ) + let full = logger.to_async_logger() + + logger.info("one") + inspect(full.pending_count(), content="1") + inspect(full.dropped_count(), content="0") + logger.shutdown(clear=true) + inspect(full.is_closed(), content="true") + inspect(full.is_running(), content="false") + inspect(full.pending_count(), content="0") + inspect(full.dropped_count(), content="1") +} + async test "library async logger can be built from config" { let logger = parse_and_build_library_async_logger( "{\"logger\":{\"min_level\":\"warn\",\"target\":\"async.lib.config\",\"sink\":{\"kind\":\"console\"}},\"async_config\":{\"max_pending\":2,\"overflow\":\"DropNewest\",\"max_batch\":1,\"linger_ms\":0,\"flush\":\"Never\"}}",