diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-11-24 10:14:37 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-11-24 10:14:37 +0300 |
commit | 56b0b20253ee17e1f2e423360b6596ebcafb8307 (patch) | |
tree | 37513f59e1ae076859e33e49578c27281bbeaba2 | |
parent | 1dcc934bcbe0f712306913a5a3d7963d77ae2e70 (diff) | |
parent | e683147d511a8d1ab4897d34a8a462480812e164 (diff) |
Merge branch 'jc-add-threadsafe-buffer' into 'master'
repository: use log hooks in tests
Closes #3933
See merge request gitlab-org/gitaly!4109
-rw-r--r-- | internal/gitaly/service/repository/gc_test.go | 9 | ||||
-rw-r--r-- | internal/gitaly/service/repository/repack_test.go | 37 |
2 files changed, 18 insertions, 28 deletions
diff --git a/internal/gitaly/service/repository/gc_test.go b/internal/gitaly/service/repository/gc_test.go index 35727167c..c11e51594 100644 --- a/internal/gitaly/service/repository/gc_test.go +++ b/internal/gitaly/service/repository/gc_test.go @@ -1,14 +1,13 @@ package repository import ( - "bytes" "fmt" "os" "path/filepath" "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/v14/internal/git" @@ -141,15 +140,13 @@ func TestGarbageCollectLogStatistics(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - logBuffer := &bytes.Buffer{} - logger := &logrus.Logger{Out: logBuffer, Formatter: &logrus.JSONFormatter{}, Level: logrus.InfoLevel} - + logger, hook := test.NewNullLogger() _, repo, _, client := setupRepositoryService(t, testserver.WithLogger(logger)) _, err := client.GarbageCollect(ctx, &gitalypb.GarbageCollectRequest{Repository: repo}) require.NoError(t, err) - mustCountObjectLog(t, logBuffer.String()) + mustCountObjectLog(t, hook.AllEntries()...) } func TestGarbageCollectDeletesRefsLocks(t *testing.T) { diff --git a/internal/gitaly/service/repository/repack_test.go b/internal/gitaly/service/repository/repack_test.go index 5a9a1b13d..4111bb064 100644 --- a/internal/gitaly/service/repository/repack_test.go +++ b/internal/gitaly/service/repository/repack_test.go @@ -1,15 +1,13 @@ package repository import ( - "bytes" - "encoding/json" "os/exec" "path/filepath" - "strings" "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/v14/internal/git/gittest" @@ -51,15 +49,13 @@ func TestRepackIncrementalCollectLogStatistics(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - logBuffer := &bytes.Buffer{} - logger := &logrus.Logger{Out: logBuffer, Formatter: &logrus.JSONFormatter{}, Level: logrus.InfoLevel} - + logger, hook := test.NewNullLogger() _, repo, _, client := setupRepositoryService(t, testserver.WithLogger(logger)) _, err := client.RepackIncremental(ctx, &gitalypb.RepackIncrementalRequest{Repository: repo}) assert.NoError(t, err) - mustCountObjectLog(t, logBuffer.String()) + mustCountObjectLog(t, hook.AllEntries()...) } func TestRepackLocal(t *testing.T) { @@ -178,31 +174,28 @@ func TestRepackFullCollectLogStatistics(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - logBuffer := &bytes.Buffer{} - logger := &logrus.Logger{Out: logBuffer, Formatter: &logrus.JSONFormatter{}, Level: logrus.InfoLevel} - + logger, hook := test.NewNullLogger() _, repo, _, client := setupRepositoryService(t, testserver.WithLogger(logger)) _, err := client.RepackFull(ctx, &gitalypb.RepackFullRequest{Repository: repo}) require.NoError(t, err) - mustCountObjectLog(t, logBuffer.String()) + mustCountObjectLog(t, hook.AllEntries()...) } -func mustCountObjectLog(t testing.TB, logData string) { +func mustCountObjectLog(t testing.TB, entries ...*logrus.Entry) { t.Helper() - msgs := strings.Split(logData, "\n") const key = "count_objects" - for _, msg := range msgs { - if strings.Contains(msg, key) { - var out map[string]interface{} - require.NoError(t, json.NewDecoder(strings.NewReader(msg)).Decode(&out)) - require.Contains(t, out, "grpc.request.glProjectPath") - require.Contains(t, out, "grpc.request.glRepository") - require.Contains(t, out, key, "there is no any information about statistics") - countObjects := out[key].(map[string]interface{}) - require.Contains(t, countObjects, "count") + for _, entry := range entries { + if entry.Message == "git repo statistic" { + require.Contains(t, entry.Data, "grpc.request.glProjectPath") + require.Contains(t, entry.Data, "grpc.request.glRepository") + require.Contains(t, entry.Data, key, "statistics not found") + + objectStats, ok := entry.Data[key].(map[string]interface{}) + require.True(t, ok, "expected count_objects to be a map") + require.Contains(t, objectStats, "count") return } } |