mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
✨ Add file sink reopen and failure counters
This commit is contained in:
@@ -90,6 +90,9 @@ test "native file support flag is queryable" {
|
||||
test "file sink availability reflects backend support" {
|
||||
let sink = file_sink("bitlogger-test.log")
|
||||
inspect(sink.is_available() == native_files_supported(), content="true")
|
||||
inspect(sink.open_failures(), content=if sink.is_available() { "0" } else { "1" })
|
||||
inspect(sink.write_failures(), content="0")
|
||||
inspect(sink.flush_failures(), content="0")
|
||||
if sink.is_available() {
|
||||
inspect(sink.flush(), content="true")
|
||||
inspect(sink.close(), content="true")
|
||||
@@ -110,9 +113,34 @@ test "file sink tracks rotation failures on unavailable backend" {
|
||||
sink.write(record(Level::Info, "a"))
|
||||
if sink.is_available() {
|
||||
inspect(sink.rotation_failures(), content="0")
|
||||
inspect(sink.write_failures(), content="0")
|
||||
ignore(sink.close())
|
||||
} else {
|
||||
inspect(sink.rotation_failures(), content="0")
|
||||
inspect(sink.write_failures(), content="1")
|
||||
}
|
||||
}
|
||||
|
||||
test "file sink reopen and failure counters reflect backend state" {
|
||||
let sink = file_sink("bitlogger-reopen.log")
|
||||
if sink.is_available() {
|
||||
inspect(sink.open_failures(), content="0")
|
||||
inspect(sink.close(), content="true")
|
||||
inspect(sink.reopen(), content="true")
|
||||
inspect(sink.is_available(), content="true")
|
||||
inspect(sink.open_failures(), content="0")
|
||||
sink.write(record(Level::Info, "reopened"))
|
||||
inspect(sink.write_failures(), content="0")
|
||||
inspect(sink.flush_failures(), content="0")
|
||||
inspect(sink.close(), content="true")
|
||||
ignore(remove_file_internal("bitlogger-reopen.log"))
|
||||
} else {
|
||||
inspect(sink.open_failures(), content="1")
|
||||
sink.write(record(Level::Info, "dropped"))
|
||||
inspect(sink.write_failures(), content="1")
|
||||
inspect(sink.reopen(), content="false")
|
||||
inspect(sink.open_failures(), content="2")
|
||||
inspect(sink.flush_failures(), content="0")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user