From e195bb8d425b83b2337fb9e5b466963b67934e9c Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Thu, 31 Aug 2023 08:34:43 +0000 Subject: [PATCH 1/2] feat: add more prominent failure notice on slogtest error Signed-off-by: Spike Curtis --- sloggers/slogtest/t.go | 19 ++++++++++--------- sloggers/slogtest/t_test.go | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/sloggers/slogtest/t.go b/sloggers/slogtest/t.go index 9d81766..7523796 100644 --- a/sloggers/slogtest/t.go +++ b/sloggers/slogtest/t.go @@ -7,6 +7,7 @@ package slogtest // import "cdr.dev/slog/sloggers/slogtest" import ( "context" + "fmt" "log" "os" "strings" @@ -78,19 +79,19 @@ func (ts *testSink) LogEntry(ctx context.Context, ent slog.SinkEntry) { // The testing package logs to stdout and not stderr. entryhuman.Fmt(&sb, os.Stdout, ent) - s := sb.String() - switch ent.Level { case slog.LevelDebug, slog.LevelInfo, slog.LevelWarn: - ts.tb.Log(s) - case slog.LevelError, slog.LevelCritical: - if ts.opts.IgnoreErrors { - ts.tb.Log(s) + ts.tb.Log(sb.String()) + case slog.LevelError, slog.LevelCritical, slog.LevelFatal: + if ts.opts.IgnoreErrors && ent.Level != slog.LevelFatal { + ts.tb.Log(sb.String()) } else { - ts.tb.Error(s) + sb.WriteString(fmt.Sprintf( + "\n *** slogtest: log detected at level %s; TEST FAILURE ***", + ent.Level, + )) + ts.tb.Error(sb.String()) } - case slog.LevelFatal: - ts.tb.Fatal(s) } } diff --git a/sloggers/slogtest/t_test.go b/sloggers/slogtest/t_test.go index d55fa88..9c1b88a 100644 --- a/sloggers/slogtest/t_test.go +++ b/sloggers/slogtest/t_test.go @@ -55,7 +55,7 @@ func TestCleanup(t *testing.T) { fn() } - // This shoud not log since the logger was cleaned up. + // This should not log since the logger was cleaned up. l.Info(bg, "hello") assert.Equal(t, "no logs", 0, tb.logs) } From 590093f8bb1d0640bf4a161fe8b744598962f728 Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Thu, 31 Aug 2023 10:40:01 +0000 Subject: [PATCH 2/2] reinstated Fatal logs calling tb.Fatal Signed-off-by: Spike Curtis --- sloggers/slogtest/t.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sloggers/slogtest/t.go b/sloggers/slogtest/t.go index 7523796..6923054 100644 --- a/sloggers/slogtest/t.go +++ b/sloggers/slogtest/t.go @@ -82,8 +82,8 @@ func (ts *testSink) LogEntry(ctx context.Context, ent slog.SinkEntry) { switch ent.Level { case slog.LevelDebug, slog.LevelInfo, slog.LevelWarn: ts.tb.Log(sb.String()) - case slog.LevelError, slog.LevelCritical, slog.LevelFatal: - if ts.opts.IgnoreErrors && ent.Level != slog.LevelFatal { + case slog.LevelError, slog.LevelCritical: + if ts.opts.IgnoreErrors { ts.tb.Log(sb.String()) } else { sb.WriteString(fmt.Sprintf( @@ -92,6 +92,9 @@ func (ts *testSink) LogEntry(ctx context.Context, ent slog.SinkEntry) { )) ts.tb.Error(sb.String()) } + case slog.LevelFatal: + sb.WriteString("\n *** slogtest: FATAL log detected; TEST FAILURE ***") + ts.tb.Fatal(sb.String()) } }