This is an automated email from the ASF dual-hosted git repository. alexstocks pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
commit 8d153f575af583006f22e495adc9a0a59fb8b7a9 Author: Tsukikage <[email protected]> AuthorDate: Mon Dec 22 07:39:36 2025 +0800 test(logger): add unit tests to improve coverage (#3119) - zap: add tests for NewDefault, encoderConfig, text/default format, console and file appenders, invalid level handling (74.1% -> 100%) - logrus: add tests for text/default format, console and file appenders, valid level handling (95.2% -> 100%) - logger: add tests for SetLoggerLevel with non-OpsLogger (90.6% -> 93.8%) --- logger/core/logrus/logrus_test.go | 53 +++++++++++++++++++++++ logger/core/zap/zap_test.go | 88 +++++++++++++++++++++++++++++++++++++++ logger/logger_test.go | 23 ++++++++++ 3 files changed, 164 insertions(+) diff --git a/logger/core/logrus/logrus_test.go b/logger/core/logrus/logrus_test.go index c00091d86..336869bc4 100644 --- a/logger/core/logrus/logrus_test.go +++ b/logger/core/logrus/logrus_test.go @@ -53,3 +53,56 @@ func TestInstantiateLogrus_FileAppenderAndJson(t *testing.T) { t.Fatalf("expected logrus file logger, err=%v", err) } } + +func TestInstantiateLogrus_TextFormat(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"info"}, + constant.LoggerAppenderKey: []string{"console"}, + constant.LoggerFormatKey: []string{"text"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected logrus logger with text format, err=%v", err) + } +} + +func TestInstantiateLogrus_DefaultFormat(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"info"}, + constant.LoggerAppenderKey: []string{"console"}, + constant.LoggerFormatKey: []string{"unknown-format"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected logrus logger with default format fallback, err=%v", err) + } +} + +func TestInstantiateLogrus_ConsoleAndFileAppender(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"debug"}, + constant.LoggerAppenderKey: []string{"console,file"}, + constant.LoggerFormatKey: []string{"json"}, + constant.LoggerFileNameKey: []string{"test_combined.log"}, + constant.LoggerFileNaxSizeKey: []string{"1"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected logrus logger with console and file appenders, err=%v", err) + } +} + +func TestInstantiateLogrus_ValidLevel(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"debug"}, + constant.LoggerAppenderKey: []string{"console"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected logrus logger with valid level, err=%v", err) + } +} diff --git a/logger/core/zap/zap_test.go b/logger/core/zap/zap_test.go index 84ded0f52..62069c6cf 100644 --- a/logger/core/zap/zap_test.go +++ b/logger/core/zap/zap_test.go @@ -51,3 +51,91 @@ func TestInstantiateZap_FileAppender(t *testing.T) { t.Fatalf("expected zap file logger, err=%v", err) } } + +func TestInstantiateZap_TextFormat(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"info"}, + constant.LoggerAppenderKey: []string{"console"}, + constant.LoggerFormatKey: []string{"text"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected zap logger with text format, err=%v", err) + } +} + +func TestInstantiateZap_DefaultFormat(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"info"}, + constant.LoggerAppenderKey: []string{"console"}, + constant.LoggerFormatKey: []string{"unknown-format"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected zap logger with default format fallback, err=%v", err) + } +} + +func TestInstantiateZap_ConsoleAndFileAppender(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"debug"}, + constant.LoggerAppenderKey: []string{"console,file"}, + constant.LoggerFormatKey: []string{"json"}, + constant.LoggerFileNameKey: []string{"test_combined.log"}, + constant.LoggerFileNaxSizeKey: []string{"1"}, + }) + lg, err := instantiate(u) + if err != nil || lg == nil { + t.Fatalf("expected zap logger with console and file appenders, err=%v", err) + } +} + +func TestInstantiateZap_InvalidLevel(t *testing.T) { + u := &common.URL{} + u.ReplaceParams(url.Values{ + constant.LoggerLevelKey: []string{"not-a-valid-level"}, + constant.LoggerAppenderKey: []string{"console"}, + }) + lg, err := instantiate(u) + if err == nil { + t.Fatalf("expected error for invalid level, got nil") + } + if lg != nil { + t.Fatalf("expected nil logger for invalid level, got %v", lg) + } +} + +func TestNewDefault(t *testing.T) { + lg := NewDefault() + if lg == nil { + t.Fatalf("expected non-nil default logger") + } + if lg.Logger == nil { + t.Fatalf("expected non-nil underlying logger") + } +} + +func TestEncoderConfig(t *testing.T) { + ec := encoderConfig() + if ec.MessageKey != "msg" { + t.Fatalf("expected MessageKey 'msg', got %q", ec.MessageKey) + } + if ec.LevelKey != "level" { + t.Fatalf("expected LevelKey 'level', got %q", ec.LevelKey) + } + if ec.TimeKey != "time" { + t.Fatalf("expected TimeKey 'time', got %q", ec.TimeKey) + } + if ec.CallerKey != "line" { + t.Fatalf("expected CallerKey 'line', got %q", ec.CallerKey) + } + if ec.NameKey != "logger" { + t.Fatalf("expected NameKey 'logger', got %q", ec.NameKey) + } + if ec.StacktraceKey != "stacktrace" { + t.Fatalf("expected StacktraceKey 'stacktrace', got %q", ec.StacktraceKey) + } +} diff --git a/logger/logger_test.go b/logger/logger_test.go index eb5b44230..a5e7c0653 100644 --- a/logger/logger_test.go +++ b/logger/logger_test.go @@ -58,3 +58,26 @@ func TestSetLoggerLevel(t *testing.T) { t.Fatalf("expected level 'warn', got %q", m.level) } } + +// simpleLogger implements Logger but NOT OpsLogger +type simpleLogger struct{} + +func (s *simpleLogger) Debug(args ...any) {} +func (s *simpleLogger) Debugf(template string, args ...any) {} +func (s *simpleLogger) Info(args ...any) {} +func (s *simpleLogger) Infof(template string, args ...any) {} +func (s *simpleLogger) Warn(args ...any) {} +func (s *simpleLogger) Warnf(template string, args ...any) {} +func (s *simpleLogger) Error(args ...any) {} +func (s *simpleLogger) Errorf(template string, args ...any) {} +func (s *simpleLogger) Fatal(args ...any) {} +func (s *simpleLogger) Fatalf(fmt string, args ...any) {} + +func TestSetLoggerLevel_NotOpsLogger(t *testing.T) { + s := &simpleLogger{} + SetLogger(s) + ok := SetLoggerLevel("debug") + if ok { + t.Fatalf("expected SetLoggerLevel to return false for non-OpsLogger") + } +}
