From 328d96b76bca38925823668d8effb879b525dd51 Mon Sep 17 00:00:00 2001 From: Doug Lauder Date: Wed, 18 Aug 2021 08:42:48 -0400 Subject: [PATCH] MM-38004 fix racy unit test (#18189) * fix racy unit test * check for nil err * fix stringer and namederr as well --- shared/mlog/mlog.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/shared/mlog/mlog.go b/shared/mlog/mlog.go index bfc2e5ab46..ac56362c7b 100644 --- a/shared/mlog/mlog.go +++ b/shared/mlog/mlog.go @@ -103,13 +103,25 @@ var String = logr.String // Stringer constructs a field containing a key and a fmt.Stringer value. // The fmt.Stringer's `String` method is called lazily. -var Stringer = logr.Stringer +var Stringer = func(key string, s fmt.Stringer) logr.Field { + if s == nil { + return Field{Key: key, Type: logr.StringType, String: ""} + } + return Field{Key: key, Type: logr.StringType, String: s.String()} +} // Err constructs a field containing a default key ("error") and error value. -var Err = logr.Err +var Err = func(err error) logr.Field { + return NamedErr("error", err) +} // NamedErr constructs a field containing a key and error value. -var NamedErr = logr.NamedErr +var NamedErr = func(key string, err error) logr.Field { + if err == nil { + return Field{Key: key, Type: logr.StringType, String: ""} + } + return Field{Key: key, Type: logr.StringType, String: err.Error()} +} // Bool constructs a field containing a key and bool value. var Bool = logr.Bool