From 1d3f48401811babdb1c2d44b6123a5deda997b5d Mon Sep 17 00:00:00 2001 From: Denis Kirillov Date: Thu, 20 Feb 2025 17:26:42 +0300 Subject: [PATCH] [#596] Use zaptest.Logger Use zaptest to get logs which get printed only if a test fails or if you ran go test -v. Dont use zaptest.Logger for fuzz otherwise ngfuzz/libfuzz crashes Signed-off-by: Denis Kirillov --- api/cache/objects_test.go | 10 +++++----- api/cache/objectslist_test.go | 22 +++++++++++----------- api/handler/handler_fuzz_test.go | 10 +++++----- api/handler/handlers_test.go | 12 +++++++----- api/handler/object_list_test.go | 4 ++-- api/layer/versioning_test.go | 4 ++-- 6 files changed, 32 insertions(+), 30 deletions(-) diff --git a/api/cache/objects_test.go b/api/cache/objects_test.go index 7c4a0049..9eafa058 100644 --- a/api/cache/objects_test.go +++ b/api/cache/objects_test.go @@ -8,14 +8,14 @@ import ( oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" objecttest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/test" "github.com/stretchr/testify/require" - "go.uber.org/zap" + "go.uber.org/zap/zaptest" ) -func getTestConfig() *Config { +func getTestConfig(t *testing.T) *Config { return &Config{ Size: 10, Lifetime: 5 * time.Second, - Logger: zap.NewExample(), + Logger: zaptest.NewLogger(t), } } @@ -44,7 +44,7 @@ func TestCache(t *testing.T) { } t.Run("check get", func(t *testing.T) { - cache := New(getTestConfig()) + cache := New(getTestConfig(t)) err := cache.PutObject(extObjInfo) require.NoError(t, err) @@ -53,7 +53,7 @@ func TestCache(t *testing.T) { }) t.Run("check delete", func(t *testing.T) { - cache := New(getTestConfig()) + cache := New(getTestConfig(t)) err := cache.PutObject(extObjInfo) require.NoError(t, err) diff --git a/api/cache/objectslist_test.go b/api/cache/objectslist_test.go index d4e426cd..6fc192ad 100644 --- a/api/cache/objectslist_test.go +++ b/api/cache/objectslist_test.go @@ -8,17 +8,17 @@ import ( cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test" oidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id/test" "github.com/stretchr/testify/require" - "go.uber.org/zap" + "go.uber.org/zap/zaptest" ) const testingCacheLifetime = 5 * time.Second const testingCacheSize = 10 -func getTestObjectsListConfig() *Config { +func getTestObjectsListConfig(t *testing.T) *Config { return &Config{ Size: testingCacheSize, Lifetime: testingCacheLifetime, - Logger: zap.NewExample(), + Logger: zaptest.NewLogger(t), } } @@ -35,7 +35,7 @@ func TestObjectsListCache(t *testing.T) { t.Run("lifetime", func(t *testing.T) { var ( - config = getTestObjectsListConfig() + config = getTestObjectsListConfig(t) cache = NewObjectsListCache(config) listKey = ObjectsListKey{cid: cidKey} ) @@ -53,7 +53,7 @@ func TestObjectsListCache(t *testing.T) { t.Run("get cache with empty prefix", func(t *testing.T) { var ( - cache = NewObjectsListCache(getTestObjectsListConfig()) + cache = NewObjectsListCache(getTestObjectsListConfig(t)) listKey = ObjectsListKey{cid: cidKey} ) err := cache.PutVersions(listKey, versions) @@ -73,7 +73,7 @@ func TestObjectsListCache(t *testing.T) { prefix: "dir", } - cache := NewObjectsListCache(getTestObjectsListConfig()) + cache := NewObjectsListCache(getTestObjectsListConfig(t)) err := cache.PutVersions(listKey, versions) require.NoError(t, err) @@ -98,7 +98,7 @@ func TestObjectsListCache(t *testing.T) { } ) - cache := NewObjectsListCache(getTestObjectsListConfig()) + cache := NewObjectsListCache(getTestObjectsListConfig(t)) err := cache.PutVersions(listKey, versions) require.NoError(t, err) @@ -116,7 +116,7 @@ func TestObjectsListCache(t *testing.T) { } ) - cache := NewObjectsListCache(getTestObjectsListConfig()) + cache := NewObjectsListCache(getTestObjectsListConfig(t)) err := cache.PutVersions(listKey, versions) require.NoError(t, err) @@ -137,7 +137,7 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) { } t.Run("put object to the root of the bucket", func(t *testing.T) { - config := getTestObjectsListConfig() + config := getTestObjectsListConfig(t) config.Lifetime = time.Minute cache := NewObjectsListCache(config) for _, k := range keys { @@ -156,7 +156,7 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) { }) t.Run("put object to dir/", func(t *testing.T) { - config := getTestObjectsListConfig() + config := getTestObjectsListConfig(t) config.Lifetime = time.Minute cache := NewObjectsListCache(config) for _, k := range keys { @@ -175,7 +175,7 @@ func TestCleanCacheEntriesChangedWithPutObject(t *testing.T) { }) t.Run("put object to dir/lol/", func(t *testing.T) { - config := getTestObjectsListConfig() + config := getTestObjectsListConfig(t) config.Lifetime = time.Minute cache := NewObjectsListCache(config) for _, k := range keys { diff --git a/api/handler/handler_fuzz_test.go b/api/handler/handler_fuzz_test.go index fb9be66c..eb25968a 100644 --- a/api/handler/handler_fuzz_test.go +++ b/api/handler/handler_fuzz_test.go @@ -22,7 +22,7 @@ import ( "git.frostfs.info/TrueCloudLab/frostfs-s3-gw/creds/accessbox" engineiam "git.frostfs.info/TrueCloudLab/policy-engine/iam" utils "github.com/trailofbits/go-fuzz-utils" - "go.uber.org/zap/zaptest" + "go.uber.org/zap" ) var ( @@ -40,9 +40,9 @@ const ( func createTestBucketAndInitContext() { fuzzt = new(tt.T) - log := zaptest.NewLogger(fuzzt) + log := zap.NewExample() var err error - fuzzHc, err = prepareHandlerContextBase(layer.DefaultCachesConfigs(log)) + fuzzHc, err = prepareHandlerContextBase(layer.DefaultCachesConfigs(log), log) if err != nil { panic(err) } @@ -171,9 +171,9 @@ func generateHeaders(tp *utils.TypeProvider, r *http.Request, params []string) e func InitFuzzCreateBucketHandler() { fuzzt = new(tt.T) - log := zaptest.NewLogger(fuzzt) + log := zap.NewExample() var err error - fuzzHc, err = prepareHandlerContextBase(layer.DefaultCachesConfigs(log)) + fuzzHc, err = prepareHandlerContextBase(layer.DefaultCachesConfigs(log), log) if err != nil { panic(err) } diff --git a/api/handler/handlers_test.go b/api/handler/handlers_test.go index 78de4393..dc71d1c2 100644 --- a/api/handler/handlers_test.go +++ b/api/handler/handlers_test.go @@ -35,6 +35,7 @@ import ( "github.com/panjf2000/ants/v2" "github.com/stretchr/testify/require" "go.uber.org/zap" + "go.uber.org/zap/zaptest" "golang.org/x/exp/slices" ) @@ -158,7 +159,8 @@ func (c *configMock) putLocationConstraint(constraint string) { } func prepareHandlerContext(t *testing.T) *handlerContext { - hc, err := prepareHandlerContextBase(layer.DefaultCachesConfigs(zap.NewExample())) + log := zaptest.NewLogger(t) + hc, err := prepareHandlerContextBase(layer.DefaultCachesConfigs(log), log) require.NoError(t, err) return &handlerContext{ handlerContextBase: hc, @@ -167,7 +169,8 @@ func prepareHandlerContext(t *testing.T) *handlerContext { } func prepareHandlerContextWithMinCache(t *testing.T) *handlerContext { - hc, err := prepareHandlerContextBase(getMinCacheConfig(zap.NewExample())) + log := zaptest.NewLogger(t) + hc, err := prepareHandlerContextBase(getMinCacheConfig(log), log) require.NoError(t, err) return &handlerContext{ handlerContextBase: hc, @@ -175,13 +178,12 @@ func prepareHandlerContextWithMinCache(t *testing.T) *handlerContext { } } -func prepareHandlerContextBase(cacheCfg *layer.CachesConfig) (*handlerContextBase, error) { +func prepareHandlerContextBase(cacheCfg *layer.CachesConfig, log *zap.Logger) (*handlerContextBase, error) { key, err := keys.NewPrivateKey() if err != nil { return nil, err } - log := zap.NewExample() tp := layer.NewTestFrostFS(key) testResolver := &resolver.Resolver{Name: "test_resolver"} @@ -197,7 +199,7 @@ func prepareHandlerContextBase(cacheCfg *layer.CachesConfig) (*handlerContextBas return nil, err } - treeMock := tree.NewTree(memCli, zap.NewExample()) + treeMock := tree.NewTree(memCli, log) features := &layer.FeatureSettingsMock{} diff --git a/api/handler/object_list_test.go b/api/handler/object_list_test.go index e0b3c30c..7a6664b7 100644 --- a/api/handler/object_list_test.go +++ b/api/handler/object_list_test.go @@ -103,7 +103,7 @@ func TestListObjectsVersionsSkipLogTaggingNodesError(t *testing.T) { loggerCore, observedLog := observer.New(zap.DebugLevel) log := zap.New(loggerCore) - hcBase, err := prepareHandlerContextBase(layer.DefaultCachesConfigs(log)) + hcBase, err := prepareHandlerContextBase(layer.DefaultCachesConfigs(log), log) require.NoError(t, err) hc := &handlerContext{ handlerContextBase: hcBase, @@ -176,7 +176,7 @@ func TestListObjectsContextCanceled(t *testing.T) { layerCfg.SessionList.Lifetime = time.Hour layerCfg.SessionList.Size = 1 - hcBase, err := prepareHandlerContextBase(layerCfg) + hcBase, err := prepareHandlerContextBase(layerCfg, log) require.NoError(t, err) hc := &handlerContext{ handlerContextBase: hcBase, diff --git a/api/layer/versioning_test.go b/api/layer/versioning_test.go index 12e1e27a..51d35cd6 100644 --- a/api/layer/versioning_test.go +++ b/api/layer/versioning_test.go @@ -18,7 +18,7 @@ import ( "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user" "github.com/nspcc-dev/neo-go/pkg/crypto/keys" "github.com/stretchr/testify/require" - "go.uber.org/zap" + "go.uber.org/zap/zaptest" ) func (tc *testContext) putObject(content []byte) *data.ObjectInfo { @@ -139,7 +139,7 @@ type testContext struct { } func prepareContext(t *testing.T, cachesConfig ...*CachesConfig) *testContext { - logger := zap.NewExample() + logger := zaptest.NewLogger(t) key, err := keys.NewPrivateKey() require.NoError(t, err)