diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-09-14 10:36:42 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-09-18 15:05:40 +0300 |
commit | 85d054935371ff90c74dcad5c0f0aafce38fc32e (patch) | |
tree | d1ec602fcfba322882e8dadf53d826d3ab514e5f | |
parent | e0dd71b9d9fdc634ea75bfcae6f24112ad5dec25 (diff) |
tests: Stop using `NullLogger` in favor of our own internal logger
Stop using logrus' `NullLogger` in favor of our own internal logger that
can be set up with the testhelper package.
27 files changed, 123 insertions, 124 deletions
diff --git a/cmd/gitaly-hooks/hooks_test.go b/cmd/gitaly-hooks/hooks_test.go index 25cd7937f..ead3f1a7b 100644 --- a/cmd/gitaly-hooks/hooks_test.go +++ b/cmd/gitaly-hooks/hooks_test.go @@ -11,7 +11,6 @@ import ( "strings" "testing" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/command" @@ -167,7 +166,7 @@ func testHooksPrePostReceive(t *testing.T, cfg config.Cfg, repo *gitalypb.Reposi gitlabUser, gitlabPassword := "gitlab_user-1234", "gitlabsecret9887" httpProxy, httpsProxy, noProxy := "http://test.example.com:8080", "https://test.example.com:8080", "*" - logger, _ := test.NewNullLogger() + logger := testhelper.NewLogger(t) c := gitlab.TestServerOptions{ User: gitlabUser, @@ -356,7 +355,7 @@ func TestHooksPostReceiveFailed(t *testing.T) { glProtocol := "ssh" changes := "oldhead newhead" - logger, _ := test.NewNullLogger() + logger := testhelper.NewLogger(t) ctx := testhelper.Context(t) cfg := testcfg.Build(t, testcfg.WithBase(config.Cfg{Auth: auth.Config{Token: "abc123"}})) @@ -478,7 +477,7 @@ func TestHooksNotAllowed(t *testing.T) { glProtocol := "ssh" changes := "oldhead newhead" - logger, _ := test.NewNullLogger() + logger := testhelper.NewLogger(t) ctx := testhelper.Context(t) cfg := testcfg.Build(t, testcfg.WithBase(config.Cfg{Auth: auth.Config{Token: "abc123"}})) @@ -610,7 +609,8 @@ func TestGitalyHooksPackObjects(t *testing.T) { SkipCreationViaService: true, }) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) runHookServiceServer(t, cfg, false, testserver.WithLogger(logger)) testcfg.BuildGitalyHooks(t, cfg) diff --git a/internal/cgroups/v1_linux_test.go b/internal/cgroups/v1_linux_test.go index d8bc70383..ba8a55b29 100644 --- a/internal/cgroups/v1_linux_test.go +++ b/internal/cgroups/v1_linux_test.go @@ -15,7 +15,6 @@ import ( cgrps "github.com/containerd/cgroups/v3" "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config/cgroups" @@ -522,7 +521,8 @@ func TestPruneOldCgroups(t *testing.T) { pid := tc.setup(t, tc.cfg, mock) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) mock.pruneOldCgroups(tc.cfg, logger) @@ -542,7 +542,7 @@ func TestPruneOldCgroups(t *testing.T) { } else { require.DirExists(t, oldGitalyProcessMemoryDir) require.DirExists(t, oldGitalyProcesssCPUDir) - require.Len(t, hook.Entries, 0) + require.Empty(t, hook.AllEntries()) } }) } diff --git a/internal/cgroups/v2_linux_test.go b/internal/cgroups/v2_linux_test.go index 0215edb39..96c5a3fdb 100644 --- a/internal/cgroups/v2_linux_test.go +++ b/internal/cgroups/v2_linux_test.go @@ -15,7 +15,6 @@ import ( cgrps "github.com/containerd/cgroups/v3" "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config/cgroups" @@ -500,7 +499,7 @@ func TestPruneOldCgroupsV2(t *testing.T) { pid := tc.setup(t, tc.cfg, mock) - logger, _ := test.NewNullLogger() + logger := testhelper.NewLogger(t) mock.pruneOldCgroups(tc.cfg, logger) // create cgroups directories with a different pid diff --git a/internal/command/command_test.go b/internal/command/command_test.go index 081e5ab1a..ad1b5fd6c 100644 --- a/internal/command/command_test.go +++ b/internal/command/command_test.go @@ -17,12 +17,10 @@ import ( "time" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/cgroups" "gitlab.com/gitlab-org/gitaly/v16/internal/featureflag" - "gitlab.com/gitlab-org/gitaly/v16/internal/log" "gitlab.com/gitlab-org/gitaly/v16/internal/structerr" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb" @@ -350,9 +348,10 @@ func TestCommand_stderrLogging(t *testing.T) { exit 1 `)) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) ctx := testhelper.Context(t) - ctx = log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx) + ctx = logger.ToContext(ctx) var stdout bytes.Buffer cmd, err := New(ctx, []string{binaryPath}, WithStdout(&stdout)) @@ -374,9 +373,10 @@ func TestCommand_stderrLoggingTruncation(t *testing.T) { exit 1 `)) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) ctx := testhelper.Context(t) - ctx = log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx) + ctx = logger.ToContext(ctx) var stdout bytes.Buffer cmd, err := New(ctx, []string{binaryPath}, WithStdout(&stdout)) @@ -395,9 +395,10 @@ func TestCommand_stderrLoggingWithNulBytes(t *testing.T) { exit 1 `)) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) ctx := testhelper.Context(t) - ctx = log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx) + ctx = logger.ToContext(ctx) var stdout bytes.Buffer cmd, err := New(ctx, []string{binaryPath}, WithStdout(&stdout)) @@ -418,9 +419,10 @@ func TestCommand_stderrLoggingLongLine(t *testing.T) { exit 1 `)) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) ctx := testhelper.Context(t) - ctx = log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx) + ctx = logger.ToContext(ctx) var stdout bytes.Buffer cmd, err := New(ctx, []string{binaryPath}, WithStdout(&stdout)) @@ -465,9 +467,10 @@ func TestCommand_stderrLoggingMaxBytes(t *testing.T) { exit 1 `)) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) ctx := testhelper.Context(t) - ctx = log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx) + ctx = logger.ToContext(ctx) var stdout bytes.Buffer cmd, err := New(ctx, []string{binaryPath}, WithStdout(&stdout)) @@ -490,10 +493,11 @@ func (m mockCgroupManager) AddCommand(*exec.Cmd, ...cgroups.AddCommandOption) (s func TestCommand_logMessage(t *testing.T) { t.Parallel() - logger, hook := test.NewNullLogger() - logger.SetLevel(logrus.DebugLevel) + logger := testhelper.NewLogger(t) + logger.Logger.SetLevel(logrus.DebugLevel) + hook := testhelper.AddLoggerHook(logger) - ctx := log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(testhelper.Context(t)) + ctx := logger.ToContext(testhelper.Context(t)) cmd, err := New(ctx, []string{"echo", "hello world"}, WithCgroup(mockCgroupManager{ diff --git a/internal/git/housekeeping/optimize_repository_ext_test.go b/internal/git/housekeeping/optimize_repository_ext_test.go index b5060f755..374c9afeb 100644 --- a/internal/git/housekeeping/optimize_repository_ext_test.go +++ b/internal/git/housekeeping/optimize_repository_ext_test.go @@ -7,7 +7,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v16/internal/git/housekeeping" @@ -170,10 +169,11 @@ func TestPruneIfNeeded(t *testing.T) { } } - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) require.NoError(t, housekeeping.NewManager(cfg.Prometheus, nil).OptimizeRepository(ctx, logger, repo)) - require.Equal(t, tc.expectedLogEntries, hook.Entries[len(hook.Entries)-1].Data["optimizations"]) + require.Equal(t, tc.expectedLogEntries, hook.LastEntry().Data["optimizations"]) }) } } diff --git a/internal/git/objectpool/fetch_test.go b/internal/git/objectpool/fetch_test.go index 395a3f8dd..ad192964c 100644 --- a/internal/git/objectpool/fetch_test.go +++ b/internal/git/objectpool/fetch_test.go @@ -8,7 +8,6 @@ import ( "testing" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" @@ -329,10 +328,11 @@ func TestObjectPool_logStats(t *testing.T) { }, } { t.Run(tc.desc, func(t *testing.T) { - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) pool := tc.setup(t) - require.NoError(t, pool.logStats(ctx, logrus.NewEntry(logger))) + require.NoError(t, pool.logStats(ctx, logger)) logEntries := hook.AllEntries() require.Len(t, logEntries, 1) diff --git a/internal/git/stats/repository_info_test.go b/internal/git/stats/repository_info_test.go index 82f69ccb9..2827b91bf 100644 --- a/internal/git/stats/repository_info_test.go +++ b/internal/git/stats/repository_info_test.go @@ -12,13 +12,11 @@ import ( "time" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v16/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v16/internal/helper/perm" - "gitlab.com/gitlab-org/gitaly/v16/internal/log" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testcfg" "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb" @@ -102,8 +100,9 @@ func TestLogObjectInfo(t *testing.T) { t.Run("shared repo with multiple alternates", func(t *testing.T) { t.Parallel() - logger, hook := test.NewNullLogger() - ctx := log.FromLogrusEntry(logger.WithField("test", "logging")).ToContext(ctx) + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) + ctx := logger.ToContext(ctx) _, repoPath1 := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ SkipCreationViaService: true, @@ -151,8 +150,9 @@ func TestLogObjectInfo(t *testing.T) { t.Run("repo without alternates", func(t *testing.T) { t.Parallel() - logger, hook := test.NewNullLogger() - ctx := log.FromLogrusEntry(logger.WithField("test", "logging")).ToContext(ctx) + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) + ctx := logger.ToContext(ctx) repo, repoPath := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ SkipCreationViaService: true, diff --git a/internal/gitaly/config/temp_dir_test.go b/internal/gitaly/config/temp_dir_test.go index bb33d11a4..37db19751 100644 --- a/internal/gitaly/config/temp_dir_test.go +++ b/internal/gitaly/config/temp_dir_test.go @@ -7,7 +7,6 @@ import ( "path/filepath" "testing" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/helper/perm" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" @@ -81,12 +80,13 @@ func TestPruneOldGitalyProcessDirectories(t *testing.T) { nonPrunableDirs = append(nonPrunableDirs, dirPath) } - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) require.NoError(t, PruneOldGitalyProcessDirectories(logger, cfg.RuntimeDir)) actualLogs := map[string]string{} actualErrs := map[string]error{} - for _, entry := range hook.Entries { + for _, entry := range hook.AllEntries() { actualLogs[entry.Data["path"].(string)] = entry.Message if entry.Data["error"] != nil { err, ok := entry.Data["error"].(error) @@ -116,9 +116,10 @@ func TestPruneOldGitalyProcessDirectories(t *testing.T) { _, err := SetupRuntimeDirectory(cfg, 0) require.NoError(t, err) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) require.NoError(t, PruneOldGitalyProcessDirectories(logger, cfg.RuntimeDir)) - require.Len(t, hook.Entries, 1) + require.Len(t, hook.AllEntries(), 1) require.Equal(t, "removed gitaly directory with no pid", hook.LastEntry().Message) }) } diff --git a/internal/gitaly/server/server_factory_test.go b/internal/gitaly/server/server_factory_test.go index f1d3ed929..2aace7b08 100644 --- a/internal/gitaly/server/server_factory_test.go +++ b/internal/gitaly/server/server_factory_test.go @@ -8,7 +8,6 @@ import ( "testing" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/bootstrap/starter" @@ -142,7 +141,8 @@ func TestGitalyServerFactory(t *testing.T) { t.Setenv("GITALY_LOG_REQUEST_METHOD_ALLOW_PATTERN", ".") cfg := testcfg.Build(t) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) sf := NewGitalyServerFactory( cfg, logger.WithContext(ctx), diff --git a/internal/gitaly/service/hook/pack_objects_test.go b/internal/gitaly/service/hook/pack_objects_test.go index bbfa1a437..80811dc5e 100644 --- a/internal/gitaly/service/hook/pack_objects_test.go +++ b/internal/gitaly/service/hook/pack_objects_test.go @@ -14,7 +14,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git" @@ -486,7 +485,8 @@ func testServerPackObjectsHookWithSidechannelWithRuntimeDir(t *testing.T, runtim cfg := cfgWithCache(t, 0) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) cfg.SocketPath = runHooksServer( t, diff --git a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go index edbcd00dc..cb8a15301 100644 --- a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go +++ b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go @@ -9,7 +9,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git" @@ -203,7 +202,8 @@ func TestFetchIntoObjectPool_CollectLogStatistics(t *testing.T) { locator := config.NewLocator(cfg) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) cfg.SocketPath = runObjectPoolServer(t, cfg, locator, logger) repo, repoPath := gittest.CreateRepository(t, ctx, cfg) diff --git a/internal/gitaly/service/repository/optimize_test.go b/internal/gitaly/service/repository/optimize_test.go index 02006ee52..2264bae59 100644 --- a/internal/gitaly/service/repository/optimize_test.go +++ b/internal/gitaly/service/repository/optimize_test.go @@ -10,7 +10,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v16/internal/git/housekeeping" @@ -381,7 +380,8 @@ func TestOptimizeRepository_logStatistics(t *testing.T) { t.Parallel() ctx := testhelper.Context(t) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) cfg, client := setupRepositoryService(t, testserver.WithLogger(logger)) repoProto, _ := gittest.CreateRepository(t, ctx, cfg) diff --git a/internal/grpc/grpcstats/stats_test.go b/internal/grpc/grpcstats/stats_test.go index 9b334bfb8..432a2a897 100644 --- a/internal/grpc/grpcstats/stats_test.go +++ b/internal/grpc/grpcstats/stats_test.go @@ -10,7 +10,6 @@ import ( grpcmwlogrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/client" @@ -55,7 +54,8 @@ func TestPayloadBytes(t *testing.T) { t.Parallel() ctx := testhelper.Context(t) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) opts := []grpc.ServerOption{ grpc.StatsHandler(log.PerRPCLogHandler{ @@ -64,7 +64,7 @@ func TestPayloadBytes(t *testing.T) { }), grpc.ChainUnaryInterceptor( grpcmwlogrus.UnaryServerInterceptor( - logrus.NewEntry(logger), + logger.Entry, grpcmwlogrus.WithMessageProducer( log.MessageProducer( log.PropagationMessageProducer(grpcmwlogrus.DefaultMessageProducer), @@ -76,7 +76,7 @@ func TestPayloadBytes(t *testing.T) { ), grpc.ChainStreamInterceptor( grpcmwlogrus.StreamServerInterceptor( - logrus.NewEntry(logger), + logger.Entry, grpcmwlogrus.WithMessageProducer( log.MessageProducer( log.PropagationMessageProducer(grpcmwlogrus.DefaultMessageProducer), diff --git a/internal/grpc/middleware/customfieldshandler/customfields_handler_test.go b/internal/grpc/middleware/customfieldshandler/customfields_handler_test.go index f1a02b859..316b65e85 100644 --- a/internal/grpc/middleware/customfieldshandler/customfields_handler_test.go +++ b/internal/grpc/middleware/customfieldshandler/customfields_handler_test.go @@ -8,7 +8,6 @@ import ( grpcmwlogrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" @@ -77,7 +76,8 @@ func TestInterceptor(t *testing.T) { SkipCreationViaService: true, }) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) s := createNewServer(t, cfg, logger) defer s.Stop() diff --git a/internal/grpc/middleware/featureflag/featureflag_handler_test.go b/internal/grpc/middleware/featureflag/featureflag_handler_test.go index c8ed414e0..f0b62f1b8 100644 --- a/internal/grpc/middleware/featureflag/featureflag_handler_test.go +++ b/internal/grpc/middleware/featureflag/featureflag_handler_test.go @@ -6,8 +6,6 @@ import ( "testing" grpcmwlogrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" - "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/featureflag" "gitlab.com/gitlab-org/gitaly/v16/internal/log" @@ -31,8 +29,8 @@ func (m *mockService) UnaryCall( // This test doesn't use testhelper.NewFeatureSets intentionally. func TestFeatureFlagLogs(t *testing.T) { - logger, loggerHook := test.NewNullLogger() - logger.SetLevel(logrus.InfoLevel) + logger := testhelper.NewLogger(t) + loggerHook := testhelper.AddLoggerHook(logger) listener, err := net.Listen("tcp", "localhost:0") require.NoError(t, err) @@ -41,7 +39,7 @@ func TestFeatureFlagLogs(t *testing.T) { server := grpc.NewServer( grpc.ChainUnaryInterceptor( grpcmwlogrus.UnaryServerInterceptor( - logrus.NewEntry(logger), + logger.Entry, grpcmwlogrus.WithMessageProducer( log.MessageProducer( grpcmwlogrus.DefaultMessageProducer, diff --git a/internal/limiter/adaptive_calculator_test.go b/internal/limiter/adaptive_calculator_test.go index 3cc106539..867a88250 100644 --- a/internal/limiter/adaptive_calculator_test.go +++ b/internal/limiter/adaptive_calculator_test.go @@ -10,7 +10,6 @@ import ( "github.com/prometheus/client_golang/prometheus/testutil" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/helper" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" @@ -34,8 +33,8 @@ func TestAdaptiveCalculator_alreadyStarted(t *testing.T) { func TestAdaptiveCalculator_realTimerTicker(t *testing.T) { t.Parallel() - logger, hook := test.NewNullLogger() - logger.SetLevel(logrus.InfoLevel) + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) limit := newTestLimit("testLimit", 25, 100, 10, 0.5) watcher := newTestWatcher("testWatcher", []string{"", "", "", "", ""}, nil) @@ -548,9 +547,8 @@ gitaly_concurrency_limiting_watcher_errors_total{watcher="testWatcher2"} 5 } for _, tc := range tests { t.Run(tc.desc, func(t *testing.T) { - logger, hook := test.NewNullLogger() - hook.Reset() - logger.SetLevel(logrus.InfoLevel) + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) tickerDone := make(chan struct{}) ticker := helper.NewCountTicker(tc.waitEvents, func() { diff --git a/internal/praefect/datastore/collector_test.go b/internal/praefect/datastore/collector_test.go index 7add5a7e3..5e5a7fd3b 100644 --- a/internal/praefect/datastore/collector_test.go +++ b/internal/praefect/datastore/collector_test.go @@ -13,7 +13,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/testutil" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" @@ -201,7 +200,9 @@ func TestRepositoryStoreCollector(t *testing.T) { timeout = 0 } - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) + c := NewRepositoryStoreCollector(logger, []string{"virtual-storage-1", "virtual-storage-2"}, tx, timeout) err := testutil.CollectAndCompare(c, strings.NewReader(fmt.Sprintf(` # HELP gitaly_praefect_unavailable_repositories Number of repositories that have no healthy, up to date replicas. @@ -210,8 +211,8 @@ gitaly_praefect_unavailable_repositories{virtual_storage="virtual-storage-1"} %d gitaly_praefect_unavailable_repositories{virtual_storage="virtual-storage-2"} 0 `, tc.count))) if tc.error != nil { - require.Equal(t, "failed collecting unavailable repository count metric", hook.Entries[0].Message) - require.Equal(t, logrus.Fields{"error": tc.error, "component": "RepositoryStoreCollector"}, hook.Entries[0].Data) + require.Equal(t, "failed collecting unavailable repository count metric", hook.AllEntries()[0].Message) + require.Equal(t, logrus.Fields{"error": tc.error, "component": "RepositoryStoreCollector"}, hook.AllEntries()[0].Data) return } @@ -240,7 +241,7 @@ func (c *checkIfQueriedDB) ExecContext(ctx context.Context, query string, args . } func TestRepositoryStoreCollector_CollectNotCalledOnRegister(t *testing.T) { - logger, _ := test.NewNullLogger() + logger := testhelper.NewLogger(t) var db checkIfQueriedDB c := NewRepositoryStoreCollector(logger, []string{"virtual-storage-1", "virtual-storage-2"}, &db, 2*time.Second) @@ -349,9 +350,10 @@ WHERE virtual_storage = 'virtual-storage-1' AND storage != 'gitaly-1' `) require.NoError(t, err) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) require.NoError(t, testutil.CollectAndCompare( - NewVerificationQueueDepthCollector(logrus.NewEntry(logger), tx, time.Minute, 30*time.Second, map[string][]string{ + NewVerificationQueueDepthCollector(logger, tx, time.Minute, 30*time.Second, map[string][]string{ "virtual-storage-1": {"gitaly-1", "gitaly-2", "gitaly-3"}, "virtual-storage-2": {"gitaly-1", "gitaly-2", "gitaly-3"}, }), diff --git a/internal/praefect/datastore/listener_test.go b/internal/praefect/datastore/listener_test.go index 2b3c6ef4a..36d90ee86 100644 --- a/internal/praefect/datastore/listener_test.go +++ b/internal/praefect/datastore/listener_test.go @@ -12,7 +12,6 @@ import ( "github.com/jackc/pgx/v5/pgconn" "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/helper" @@ -182,7 +181,8 @@ func TestResilientListener_Listen(t *testing.T) { ctx, cancel := context.WithCancel(testhelper.Context(t)) const channel = "channel_z" - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) connected := make(chan struct{}) disconnected := make(chan struct{}) handler := mockListenHandler{ diff --git a/internal/praefect/delete_object_pool_test.go b/internal/praefect/delete_object_pool_test.go index aa4850879..ea37c1026 100644 --- a/internal/praefect/delete_object_pool_test.go +++ b/internal/praefect/delete_object_pool_test.go @@ -5,8 +5,6 @@ import ( "testing" grpcmwlogrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" - "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v16/internal/log" @@ -71,9 +69,10 @@ func TestDeleteObjectPoolHandler(t *testing.T) { defer secondaryConn.Close() praefectLn, praefectAddr := testhelper.GetLocalhostListener(t) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) praefectSrv := grpc.NewServer(grpc.ChainStreamInterceptor( - grpcmwlogrus.StreamServerInterceptor(logrus.NewEntry(logger), grpcmwlogrus.WithTimestampFormat(log.LogTimestampFormat)), + grpcmwlogrus.StreamServerInterceptor(logger.Entry, grpcmwlogrus.WithTimestampFormat(log.LogTimestampFormat)), )) praefectSrv.RegisterService(&grpc.ServiceDesc{ ServiceName: "gitaly.ObjectPoolService", @@ -107,9 +106,10 @@ func TestDeleteObjectPoolHandler(t *testing.T) { }) require.NoError(t, err) - require.Equal(t, 2, len(hook.Entries), "expected a log entry for failed deletion") - require.Equal(t, "failed deleting repository", hook.Entries[0].Message) - require.Equal(t, repo.StorageName, hook.Entries[0].Data["virtual_storage"]) - require.Equal(t, repo.RelativePath, hook.Entries[0].Data["relative_path"]) - require.Equal(t, "secondary", hook.Entries[0].Data["storage"]) + require.Len(t, hook.AllEntries(), 2, "expected a log entry for failed deletion") + entry := hook.AllEntries()[0] + require.Equal(t, "failed deleting repository", entry.Message) + require.Equal(t, repo.StorageName, entry.Data["virtual_storage"]) + require.Equal(t, repo.RelativePath, entry.Data["relative_path"]) + require.Equal(t, "secondary", entry.Data["storage"]) } diff --git a/internal/praefect/nodes/per_repository_test.go b/internal/praefect/nodes/per_repository_test.go index 19b73bd25..6ffe236fb 100644 --- a/internal/praefect/nodes/per_repository_test.go +++ b/internal/praefect/nodes/per_repository_test.go @@ -4,10 +4,8 @@ import ( "testing" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v16/internal/log" "gitlab.com/gitlab-org/gitaly/v16/internal/praefect/datastore" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testdb" @@ -530,16 +528,17 @@ func TestPerRepositoryElector(t *testing.T) { for _, step := range tc.steps { runElection := func(tx *testdb.TxWrapper) (string, *logrus.Entry) { - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) elector := NewPerRepositoryElector(tx) - primary, err := elector.GetPrimary(log.FromLogrusEntry(logrus.NewEntry(logger)).ToContext(ctx), "", repositoryID) + primary, err := elector.GetPrimary(logger.ToContext(ctx), "", repositoryID) assert.Equal(t, step.error, err) - assert.Less(t, len(hook.Entries), 2) + assert.Less(t, len(hook.AllEntries()), 2) var entry *logrus.Entry - if len(hook.Entries) == 1 { - entry = &hook.Entries[0] + if len(hook.AllEntries()) == 1 { + entry = hook.AllEntries()[0] } return primary, entry diff --git a/internal/praefect/nodes/sql_elector_test.go b/internal/praefect/nodes/sql_elector_test.go index 332cdcfe3..6c42f8a97 100644 --- a/internal/praefect/nodes/sql_elector_test.go +++ b/internal/praefect/nodes/sql_elector_test.go @@ -6,7 +6,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/grpc/backchannel" @@ -404,7 +403,8 @@ func TestElectNewPrimary(t *testing.T) { _, err := tx.Exec(testCase.initialReplQueueInsert) require.NoError(t, err) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) elector := newSQLElector(shardName, config.Config{}, db.DB, logger, ns) ctx := testhelper.Context(t) diff --git a/internal/praefect/repocleaner/action_log_test.go b/internal/praefect/repocleaner/action_log_test.go index 03fbf6728..5f22f45b6 100644 --- a/internal/praefect/repocleaner/action_log_test.go +++ b/internal/praefect/repocleaner/action_log_test.go @@ -4,7 +4,6 @@ import ( "testing" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" ) @@ -12,7 +11,8 @@ import ( func TestLogWarnAction_Perform(t *testing.T) { ctx := testhelper.Context(t) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) action := NewLogWarnAction(logger) err := action.Perform(ctx, "vs1", "g1", []string{"p/1", "p/2"}) require.NoError(t, err) diff --git a/internal/praefect/repocleaner/repository_test.go b/internal/praefect/repocleaner/repository_test.go index 86fe0cbed..751e88d92 100644 --- a/internal/praefect/repocleaner/repository_test.go +++ b/internal/praefect/repocleaner/repository_test.go @@ -8,7 +8,6 @@ import ( "time" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" @@ -151,8 +150,8 @@ func TestRunner_Run(t *testing.T) { require.NoError(t, repoStore.CreateRepository(ctx, int64(i), conf.VirtualStorages[0].Name, set.relativePath, set.relativePath, set.primary, set.secondaries, nil, false, false)) } - logger, loggerHook := test.NewNullLogger() - logger.SetLevel(logrus.DebugLevel) + logger := testhelper.NewLogger(t) + loggerHook := testhelper.AddLoggerHook(logger) entry := logger.WithContext(ctx) clientHandshaker := backchannel.NewClientHandshaker(entry, praefect.NewBackchannelServerFactory(entry, transaction.NewServer(nil), nil), backchannel.DefaultConfiguration()) @@ -287,8 +286,9 @@ func TestRunner_Run_noAvailableStorages(t *testing.T) { // Continue execution of the first runner after the second completes. defer close(releaseFirst) - logger, loggerHook := test.NewNullLogger() - logger.SetLevel(logrus.DebugLevel) + logger := testhelper.NewLogger(t) + logger.Logger.SetLevel(logrus.DebugLevel) + loggerHook := testhelper.AddLoggerHook(logger) runner := NewRunner(cfg, logger, praefect.StaticHealthChecker{virtualStorage: []string{storage1}}, nodeSet.Connections(), storageCleanup, storageCleanup, actionStub{ PerformMethod: func(ctx context.Context, virtualStorage, storage string, notExisting []string) error { diff --git a/internal/praefect/server_test.go b/internal/praefect/server_test.go index 2d59238ab..8b6221208 100644 --- a/internal/praefect/server_test.go +++ b/internal/praefect/server_test.go @@ -13,8 +13,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/datastructure" @@ -398,11 +396,12 @@ func TestWarnDuplicateAddrs(t *testing.T) { } ctx := testhelper.Context(t) - tLogger, hook := test.NewNullLogger() + tLogger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(tLogger) // instantiate a praefect server and trigger warning _, _, cleanup := RunPraefectServer(t, ctx, conf, BuildOptions{ - WithLogger: logrus.NewEntry(tLogger), + WithLogger: tLogger, WithNodeMgr: nullNodeMgr{}, // to suppress node address issues }) defer cleanup() @@ -429,11 +428,11 @@ func TestWarnDuplicateAddrs(t *testing.T) { }, } - tLogger, hook = test.NewNullLogger() + hook.Reset() // instantiate a praefect server and trigger warning _, _, cleanup = RunPraefectServer(t, ctx, conf, BuildOptions{ - WithLogger: logrus.NewEntry(tLogger), + WithLogger: tLogger, WithNodeMgr: nullNodeMgr{}, // to suppress node address issues }) defer cleanup() @@ -478,11 +477,11 @@ func TestWarnDuplicateAddrs(t *testing.T) { }, } - tLogger, hook = test.NewNullLogger() + hook.Reset() // instantiate a praefect server and trigger warning _, _, cleanup = RunPraefectServer(t, ctx, conf, BuildOptions{ - WithLogger: logrus.NewEntry(tLogger), + WithLogger: tLogger, WithNodeMgr: nullNodeMgr{}, // to suppress node address issues }) defer cleanup() diff --git a/internal/praefect/verifier_test.go b/internal/praefect/verifier_test.go index 9fa5e68d6..69a96213e 100644 --- a/internal/praefect/verifier_test.go +++ b/internal/praefect/verifier_test.go @@ -11,7 +11,6 @@ import ( "github.com/prometheus/client_golang/prometheus/testutil" "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" gitalyconfig "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config" @@ -808,8 +807,10 @@ func TestVerifier_runExpiredLeaseReleaser(t *testing.T) { tx := db.Begin(t) defer tx.Rollback(t) - logger, hook := test.NewNullLogger() - verifier := NewMetadataVerifier(logrus.NewEntry(logger), tx, nil, nil, 0, true) + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) + + verifier := NewMetadataVerifier(logger, tx, nil, nil, 0, true) // set batch size lower than the number of locked leases to ensure the batching works verifier.batchSize = 2 @@ -835,10 +836,10 @@ func TestVerifier_runExpiredLeaseReleaser(t *testing.T) { // actualReleased contains the released leases from the logs. It's keyed // as virtual storage -> relative path -> storage. actualReleased := map[string]map[string]map[string]struct{}{} - require.Equal(t, 2, len(hook.AllEntries())) - for i := range hook.Entries { - require.Equal(t, "released stale verification leases", hook.Entries[i].Message, hook.Entries[i].Data[logrus.ErrorKey]) - for virtualStorage, relativePaths := range hook.Entries[i].Data["leases_released"].(map[string]map[string][]string) { + require.Len(t, hook.AllEntries(), 2) + for _, entry := range hook.AllEntries() { + require.Equal(t, "released stale verification leases", entry.Message, entry.Data[logrus.ErrorKey]) + for virtualStorage, relativePaths := range entry.Data["leases_released"].(map[string]map[string][]string) { for relativePath, storages := range relativePaths { for _, storage := range storages { if actualReleased[virtualStorage] == nil { diff --git a/internal/tempdir/clean_test.go b/internal/tempdir/clean_test.go index a7e14ab4e..7b6030783 100644 --- a/internal/tempdir/clean_test.go +++ b/internal/tempdir/clean_test.go @@ -6,7 +6,6 @@ import ( "testing" "time" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config" @@ -64,10 +63,11 @@ func TestCleanTempDir(t *testing.T) { gittest.WriteCommit(t, cfg, repoPath, gittest.WithBranch("master")) - logger, hook := test.NewNullLogger() + logger := testhelper.NewLogger(t) + hook := testhelper.AddLoggerHook(logger) cleanTempDir(logger, locator, cfg.Storages) - require.Equal(t, 2, len(hook.Entries), hook.Entries) + require.Len(t, hook.AllEntries(), 2) require.Equal(t, "finished tempdir cleaner walk", hook.LastEntry().Message) } diff --git a/internal/testhelper/testserver/structerr_interceptors_test.go b/internal/testhelper/testserver/structerr_interceptors_test.go index 330c823b5..2a2e7bb2d 100644 --- a/internal/testhelper/testserver/structerr_interceptors_test.go +++ b/internal/testhelper/testserver/structerr_interceptors_test.go @@ -8,8 +8,6 @@ import ( "testing" grpcmwlogrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" - "github.com/sirupsen/logrus" - "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v16/internal/log" "gitlab.com/gitlab-org/gitaly/v16/internal/structerr" @@ -88,8 +86,8 @@ func TestFieldsProducer(t *testing.T) { t.Parallel() ctx := testhelper.Context(t) - logger, loggerHook := test.NewNullLogger() - logger.SetLevel(logrus.ErrorLevel) + logger := testhelper.NewLogger(t) + loggerHook := testhelper.AddLoggerHook(logger) listener, err := net.Listen("tcp", "localhost:0") require.NoError(t, err) @@ -98,7 +96,7 @@ func TestFieldsProducer(t *testing.T) { server := grpc.NewServer( grpc.ChainUnaryInterceptor( grpcmwlogrus.UnaryServerInterceptor( - logrus.NewEntry(logger), + logger.Entry, grpcmwlogrus.WithMessageProducer( log.MessageProducer( grpcmwlogrus.DefaultMessageProducer, |