This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git


The following commit(s) were added to refs/heads/develop by this push:
     new 8e7a35b99 test(logger): add unit tests to improve coverage (#3119)
8e7a35b99 is described below

commit 8e7a35b990be5a937da0998dc62978808070003a
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")
+       }
+}

Reply via email to