diff options
author | John Cai <jcai@gitlab.com> | 2023-01-11 01:00:07 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2023-01-11 01:00:07 +0300 |
commit | 3dc98b368b6240e4e7a65d981efc9095bfaa3cbe (patch) | |
tree | 2296800e313b6d2f39bae93bd2da1bfc98ab18ca | |
parent | fd4a815831bc2375d594fd9b7c3d358f975c2b19 (diff) |
wip: catfile blackbox testingjc-unify-blob-writes-catfile
-rw-r--r-- | internal/git/catfile/cache_test.go | 40 | ||||
-rw-r--r-- | internal/git/catfile/object_content_reader_test.go | 60 | ||||
-rw-r--r-- | internal/git/catfile/object_info_reader_test.go | 49 | ||||
-rw-r--r-- | internal/git/catfile/parser_test.go | 16 | ||||
-rw-r--r-- | internal/git/catfile/request_queue_test.go | 67 | ||||
-rw-r--r-- | internal/git/catfile/tag_test.go | 14 | ||||
-rw-r--r-- | internal/git/catfile/testhelper_test.go | 40 |
7 files changed, 117 insertions, 169 deletions
diff --git a/internal/git/catfile/cache_test.go b/internal/git/catfile/cache_test.go index e2ca83332..8108a7857 100644 --- a/internal/git/catfile/cache_test.go +++ b/internal/git/catfile/cache_test.go @@ -1,23 +1,6 @@ package catfile -import ( - "context" - "errors" - "io" - "os" - "testing" - "time" - - "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/repository" - "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" - "gitlab.com/gitlab-org/labkit/correlation" - "google.golang.org/grpc/metadata" -) +/** func TestProcesses_add(t *testing.T) { ctx := testhelper.Context(t) @@ -211,7 +194,7 @@ func TestCache_ObjectReader(t *testing.T) { }) gittest.WriteCommit(t, cfg, repoPath, gittest.WithBranch("main")) - repoExecutor := newRepoExecutor(t, cfg, repo) + RepoExecutor := NewRepoExecutor(t, cfg, repo) cache := newCache(time.Hour, 10, helper.NewManualTicker()) defer cache.Stop() @@ -220,7 +203,7 @@ func TestCache_ObjectReader(t *testing.T) { // The context doesn't carry a session ID and is thus uncacheable. // The process should never get returned to the cache and must be // killed on context cancellation. - reader, cancel, err := cache.ObjectReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectReader(ctx, RepoExecutor) require.NoError(t, err) cancel() @@ -237,7 +220,7 @@ func TestCache_ObjectReader(t *testing.T) { metadata.Pairs(SessionIDField, "1"), ) - reader, cancel, err := cache.ObjectReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectReader(ctx, RepoExecutor) require.NoError(t, err) // Cancel the context such that the process will be considered for return to the @@ -263,7 +246,7 @@ func TestCache_ObjectReader(t *testing.T) { metadata.Pairs(SessionIDField, "1"), ) - reader, cancel, err := cache.ObjectReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectReader(ctx, RepoExecutor) require.NoError(t, err) // While we request object data, we do not consume it at all. The reader is thus @@ -288,7 +271,7 @@ func TestCache_ObjectReader(t *testing.T) { metadata.Pairs(SessionIDField, "1"), ) - reader, cancel, err := cache.ObjectReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectReader(ctx, RepoExecutor) require.NoError(t, err) // Closed processes naturally cannot be reused anymore and thus shouldn't ever get @@ -311,7 +294,7 @@ func TestCache_ObjectInfoReader(t *testing.T) { }) gittest.WriteCommit(t, cfg, repoPath, gittest.WithBranch("main")) - repoExecutor := newRepoExecutor(t, cfg, repo) + RepoExecutor := NewRepoExecutor(t, cfg, repo) cache := newCache(time.Hour, 10, helper.NewManualTicker()) defer cache.Stop() @@ -320,7 +303,7 @@ func TestCache_ObjectInfoReader(t *testing.T) { // The context doesn't carry a session ID and is thus uncacheable. // The process should never get returned to the cache and must be // killed on context cancellation. - reader, cancel, err := cache.ObjectInfoReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectInfoReader(ctx, RepoExecutor) require.NoError(t, err) cancel() @@ -337,7 +320,7 @@ func TestCache_ObjectInfoReader(t *testing.T) { metadata.Pairs(SessionIDField, "1"), ) - reader, cancel, err := cache.ObjectInfoReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectInfoReader(ctx, RepoExecutor) require.NoError(t, err) // Cancel the process such it will be considered for return to the cache. @@ -362,7 +345,7 @@ func TestCache_ObjectInfoReader(t *testing.T) { metadata.Pairs(SessionIDField, "1"), ) - reader, cancel, err := cache.ObjectInfoReader(ctx, repoExecutor) + reader, cancel, err := cache.ObjectInfoReader(ctx, RepoExecutor) require.NoError(t, err) // Closed processes naturally cannot be reused anymore and thus shouldn't ever get @@ -391,7 +374,7 @@ func mustCreateCacheable(t *testing.T, cfg config.Cfg, repo repository.GitRepo) ctx, cancel := context.WithCancel(testhelper.Context(t)) - batch, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repo), nil) + batch, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repo), nil) require.NoError(t, err) return batch, cancel @@ -419,3 +402,4 @@ func keys(t *testing.T, p *processes) []key { return result } +**/ diff --git a/internal/git/catfile/object_content_reader_test.go b/internal/git/catfile/object_content_reader_test.go index ba8ac1af0..73148cb00 100644 --- a/internal/git/catfile/object_content_reader_test.go +++ b/internal/git/catfile/object_content_reader_test.go @@ -1,21 +1,6 @@ package catfile -import ( - "errors" - "fmt" - "io" - "os" - "testing" - - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/git" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" -) +/* func TestObjectContentReader_reader(t *testing.T) { ctx := testhelper.Context(t) @@ -37,7 +22,7 @@ func TestObjectContentReader_reader(t *testing.T) { commitContents := gittest.Exec(t, cfg, "-C", repoPath, "cat-file", "-p", commitID.String()) t.Run("read existing object by ref", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) object, err := reader.Object(ctx, "refs/heads/main") @@ -49,7 +34,7 @@ func TestObjectContentReader_reader(t *testing.T) { }) t.Run("read existing object by object ID", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) object, err := reader.Object(ctx, commitID.Revision()) @@ -61,7 +46,7 @@ func TestObjectContentReader_reader(t *testing.T) { }) t.Run("read missing ref", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) _, err = reader.Object(ctx, "refs/heads/does-not-exist") @@ -78,7 +63,7 @@ func TestObjectContentReader_reader(t *testing.T) { }) t.Run("read fails when not consuming previous object", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) _, err = reader.Object(ctx, commitID.Revision()) @@ -90,7 +75,7 @@ func TestObjectContentReader_reader(t *testing.T) { }) t.Run("read fails when partially consuming previous object", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) object, err := reader.Object(ctx, commitID.Revision()) @@ -107,7 +92,7 @@ func TestObjectContentReader_reader(t *testing.T) { t.Run("read increments Prometheus counter", func(t *testing.T) { counter := prometheus.NewCounterVec(prometheus.CounterOpts{}, []string{"type"}) - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), counter) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), counter) require.NoError(t, err) for objectType, revision := range map[string]git.Revision{ @@ -141,7 +126,7 @@ func TestObjectContentReader_queue(t *testing.T) { barfooBlob := gittest.WriteBlob(t, cfg, repoPath, []byte("barfoo")) t.Run("read single object", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -160,7 +145,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("read multiple objects", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -184,7 +169,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("request multiple objects", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -206,7 +191,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("read without request", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -218,7 +203,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("flush with single request", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -240,7 +225,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("flush with multiple requests", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -263,7 +248,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("flush without request", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -277,7 +262,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("request invalid object", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -292,7 +277,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("can continue reading after NotFoundError", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -318,7 +303,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("requesting multiple queues fails", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) _, cleanup, err := reader.objectQueue(ctx, "trace") @@ -337,7 +322,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("requesting object dirties reader", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -368,7 +353,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("closing queue blocks request", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -384,7 +369,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("closing queue blocks read", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -405,7 +390,7 @@ func TestObjectContentReader_queue(t *testing.T) { }) t.Run("closing queue blocks consuming", func(t *testing.T) { - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.objectQueue(ctx, "trace") @@ -447,7 +432,7 @@ func TestObjectContentReader_replaceRefs(t *testing.T) { gittest.Exec(t, cfg, "-c", "core.useReplaceRefs=true", "-C", repoPath, "cat-file", "-p", originalOID.String()), )) - reader, err := newObjectContentReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectContentReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) object, err := reader.Object(ctx, originalOID.Revision()) @@ -460,3 +445,4 @@ func TestObjectContentReader_replaceRefs(t *testing.T) { // content of the blob. require.Equal(t, "original", string(contents)) } +*/ diff --git a/internal/git/catfile/object_info_reader_test.go b/internal/git/catfile/object_info_reader_test.go index 99d088fa3..1274df981 100644 --- a/internal/git/catfile/object_info_reader_test.go +++ b/internal/git/catfile/object_info_reader_test.go @@ -1,24 +1,6 @@ package catfile -import ( - "bufio" - "errors" - "fmt" - "io" - "os" - "strconv" - "strings" - "testing" - - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/testutil" - "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/git" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" -) +/** func TestParseObjectInfo_success(t *testing.T) { t.Parallel() @@ -182,7 +164,7 @@ func TestObjectInfoReader(t *testing.T) { t.Run(tc.desc, func(t *testing.T) { counter := prometheus.NewCounterVec(prometheus.CounterOpts{}, []string{"type"}) - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), counter) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), counter) require.NoError(t, err) require.Equal(t, float64(0), testutil.ToFloat64(counter.WithLabelValues("info"))) @@ -236,7 +218,7 @@ func TestObjectInfoReader_queue(t *testing.T) { } t.Run("read single info", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -252,7 +234,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("read multiple object infos", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -273,7 +255,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("request multiple object infos", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -292,7 +274,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("read without request", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -304,7 +286,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("flush with single request", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -323,7 +305,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("flush with multiple requests", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -343,7 +325,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("flush without request", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -357,7 +339,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("request invalid object info", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -372,7 +354,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("can continue reading after NotFoundError", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -395,7 +377,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("requesting multiple queues fails", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) _, cleanup, err := reader.infoQueue(ctx, "trace") @@ -414,7 +396,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("requesting object dirties reader", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -438,7 +420,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("closing queue blocks request", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -454,7 +436,7 @@ func TestObjectInfoReader_queue(t *testing.T) { }) t.Run("closing queue blocks read", func(t *testing.T) { - reader, err := newObjectInfoReader(ctx, newRepoExecutor(t, cfg, repoProto), nil) + reader, err := newObjectInfoReader(ctx, NewRepoExecutor(t, cfg, repoProto), nil) require.NoError(t, err) queue, cleanup, err := reader.infoQueue(ctx, "trace") @@ -474,3 +456,4 @@ func TestObjectInfoReader_queue(t *testing.T) { require.Equal(t, fmt.Errorf("cannot read object info: %w", os.ErrClosed), err) }) } +**/ diff --git a/internal/git/catfile/parser_test.go b/internal/git/catfile/parser_test.go index 59afbb127..e6015b4e6 100644 --- a/internal/git/catfile/parser_test.go +++ b/internal/git/catfile/parser_test.go @@ -1,19 +1,6 @@ package catfile -import ( - "bytes" - "fmt" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/git" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" - "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" - "google.golang.org/protobuf/types/known/timestamppb" -) +/** func TestParser_ParseCommit(t *testing.T) { t.Parallel() @@ -369,3 +356,4 @@ fF3T79iV8paT4/OfX8Ygg= }) } } +**/ diff --git a/internal/git/catfile/request_queue_test.go b/internal/git/catfile/request_queue_test.go index bd8cd5b59..cd1f2bf29 100644 --- a/internal/git/catfile/request_queue_test.go +++ b/internal/git/catfile/request_queue_test.go @@ -1,4 +1,4 @@ -package catfile +package catfile_test import ( "context" @@ -11,6 +11,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v15/internal/git" + "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" @@ -41,10 +42,10 @@ func TestRequestQueue_ReadObject(t *testing.T) { reader, queue := newInterceptedObjectQueue(t, ctx, "#!/bin/sh\nread\n") require.NoError(t, queue.RequestObject("foo")) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) - reader.close() - require.True(t, queue.isDirty()) + reader.Close() + require.True(t, queue.IsDirty()) _, err := queue.ReadObject() require.Equal(t, fmt.Errorf("cannot read object info: %w", fmt.Errorf("file already closed")), err) @@ -67,7 +68,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { _, err = queue.ReadObject() require.Equal(t, fmt.Errorf("current object has not been fully read"), err) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) }) t.Run("read with invalid object header", func(t *testing.T) { @@ -81,7 +82,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { require.Equal(t, fmt.Errorf("invalid info line: %q", "something something"), err) // The queue must be dirty when we failed due to an unexpected error. - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) }) t.Run("read with unexpected exit", func(t *testing.T) { @@ -95,7 +96,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { require.Equal(t, fmt.Errorf("read info line: %w", io.EOF), err) // The queue must be dirty when we failed due to an unexpected error. - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) }) t.Run("read with missing object", func(t *testing.T) { @@ -110,7 +111,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { // The queue must be empty even if the object wasn't found: this is a graceful // failure that we should handle alright. - require.False(t, queue.isDirty()) + require.False(t, queue.IsDirty()) }) t.Run("read single object", func(t *testing.T) { @@ -120,11 +121,11 @@ func TestRequestQueue_ReadObject(t *testing.T) { `, oid)) require.NoError(t, queue.RequestObject("foo")) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) object, err := queue.ReadObject() require.NoError(t, err) - require.Equal(t, ObjectInfo{ + require.Equal(t, catfile.ObjectInfo{ Oid: oid, Type: "blob", Size: 10, @@ -134,7 +135,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { require.NoError(t, err) require.Equal(t, "1234567890", string(data)) - require.False(t, queue.isDirty()) + require.False(t, queue.IsDirty()) }) t.Run("read multiple objects", func(t *testing.T) { @@ -149,14 +150,14 @@ func TestRequestQueue_ReadObject(t *testing.T) { require.NoError(t, queue.RequestObject("foo")) require.NoError(t, queue.RequestObject("foo")) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) for _, expectedObject := range []struct { - info ObjectInfo + info catfile.ObjectInfo data string }{ { - info: ObjectInfo{ + info: catfile.ObjectInfo{ Oid: oid, Type: "blob", Size: 10, @@ -164,7 +165,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { data: "1234567890", }, { - info: ObjectInfo{ + info: catfile.ObjectInfo{ Oid: secondOID, Type: "commit", Size: 10, @@ -172,7 +173,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { data: "0987654321", }, } { - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) object, err := queue.ReadObject() require.NoError(t, err) @@ -183,7 +184,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { require.Equal(t, expectedObject.data, string(data)) } - require.False(t, queue.isDirty()) + require.False(t, queue.IsDirty()) }) t.Run("truncated object", func(t *testing.T) { @@ -193,11 +194,11 @@ func TestRequestQueue_ReadObject(t *testing.T) { `, oid)) require.NoError(t, queue.RequestObject("foo")) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) object, err := queue.ReadObject() require.NoError(t, err) - require.Equal(t, ObjectInfo{ + require.Equal(t, catfile.ObjectInfo{ Oid: oid, Type: "blob", Size: 10, @@ -216,7 +217,7 @@ func TestRequestQueue_ReadObject(t *testing.T) { _, err = object.Read(buf[:]) require.Equal(t, fmt.Errorf("discard newline: \"EOF\""), err) - require.True(t, queue.isDirty()) + require.True(t, queue.IsDirty()) }) } @@ -227,7 +228,7 @@ func TestRequestQueue_RequestObject(t *testing.T) { oid := git.ObjectID(strings.Repeat("1", gittest.DefaultObjectHash.EncodedLen())) - requireRevision := func(t *testing.T, queue *requestQueue, rev git.Revision) { + requireRevision := func(t *testing.T, queue catfile.ObjectQueue, rev git.Revision) { object, err := queue.ReadObject() require.NoError(t, err) @@ -238,7 +239,7 @@ func TestRequestQueue_RequestObject(t *testing.T) { t.Run("requesting revision on closed queue", func(t *testing.T) { _, queue := newInterceptedObjectQueue(t, ctx, "#!/bin/sh") - queue.close() + queue.Close() require.Equal(t, fmt.Errorf("cannot request revision: %w", os.ErrClosed), queue.RequestObject("foo")) }) @@ -332,7 +333,7 @@ func TestRequestQueue_RequestInfo(t *testing.T) { t.Run("requesting revision on closed queue", func(t *testing.T) { _, queue := newInterceptedInfoQueue(t, ctx, "#!/bin/sh") - queue.close() + queue.Close() require.Equal(t, fmt.Errorf("cannot request revision: %w", os.ErrClosed), queue.RequestInfo("foo")) }) @@ -409,7 +410,7 @@ func TestRequestQueueCounters64BitAlignment(t *testing.T) { require.Equal(t, 0, int(unsafe.Sizeof(requestQueue{}.counters))%8) } -func newInterceptedObjectQueue(t *testing.T, ctx context.Context, script string) (ObjectContentReader, *requestQueue) { +func newInterceptedObjectQueue(t *testing.T, ctx context.Context, script string) (catfile.ObjectContentReader, catfile.ObjectQueue) { cfg := testcfg.Build(t) repo, _ := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ SkipCreationViaService: true, @@ -418,23 +419,23 @@ func newInterceptedObjectQueue(t *testing.T, ctx context.Context, script string) commandFactory := gittest.NewInterceptingCommandFactory(t, ctx, cfg, func(execEnv git.ExecutionEnvironment) string { return script }) - repoExecutor := repoExecutor{ + RepoExecutor := RepoExecutor{ GitRepo: repo, gitCmdFactory: commandFactory, } - reader, err := newObjectContentReader(ctx, &repoExecutor, nil) + reader, err := NewObjectContentReader(ctx, &RepoExecutor, nil) require.NoError(t, err) - t.Cleanup(reader.close) + t.Cleanup(reader.Close) - queue, cleanup, err := reader.objectQueue(ctx, "trace") + queue, cleanup, err := reader.ObjectQueue(ctx) require.NoError(t, err) t.Cleanup(cleanup) return reader, queue } -func newInterceptedInfoQueue(t *testing.T, ctx context.Context, script string) (ObjectInfoReader, *requestQueue) { +func newInterceptedInfoQueue(t *testing.T, ctx context.Context, script string) (catfile.ObjectInfoReader, catfile.ObjectInfoQueue) { cfg := testcfg.Build(t) repo, _ := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ SkipCreationViaService: true, @@ -443,16 +444,16 @@ func newInterceptedInfoQueue(t *testing.T, ctx context.Context, script string) ( commandFactory := gittest.NewInterceptingCommandFactory(t, ctx, cfg, func(execEnv git.ExecutionEnvironment) string { return script }) - repoExecutor := repoExecutor{ + RepoExecutor := RepoExecutor{ GitRepo: repo, gitCmdFactory: commandFactory, } - reader, err := newObjectInfoReader(ctx, &repoExecutor, nil) + reader, err := NewObjectInfoReader(ctx, &RepoExecutor, nil) require.NoError(t, err) - t.Cleanup(reader.close) + t.Cleanup(reader.Close) - queue, cleanup, err := reader.infoQueue(ctx, "trace") + queue, cleanup, err := reader.InfoQueue(ctx) require.NoError(t, err) t.Cleanup(cleanup) diff --git a/internal/git/catfile/tag_test.go b/internal/git/catfile/tag_test.go index efc54e20c..4ea925236 100644 --- a/internal/git/catfile/tag_test.go +++ b/internal/git/catfile/tag_test.go @@ -1,17 +1,6 @@ package catfile -import ( - "fmt" - "strings" - "testing" - - "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/git" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" - "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" - "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" -) +/** func TestGetTag(t *testing.T) { ctx := testhelper.Context(t) @@ -95,3 +84,4 @@ func TestTrimTag(t *testing.T) { }) } } +**/ diff --git a/internal/git/catfile/testhelper_test.go b/internal/git/catfile/testhelper_test.go index dd226a468..246451750 100644 --- a/internal/git/catfile/testhelper_test.go +++ b/internal/git/catfile/testhelper_test.go @@ -23,23 +23,23 @@ func TestMain(m *testing.M) { testhelper.Run(m) } -type repoExecutor struct { +type RepoExecutor struct { repository.GitRepo - gitCmdFactory git.CommandFactory + GitCmdFactory git.CommandFactory } -func newRepoExecutor(t *testing.T, cfg config.Cfg, repo repository.GitRepo) git.RepositoryExecutor { - return &repoExecutor{ +func NewRepoExecutor(t *testing.T, cfg config.Cfg, repo repository.GitRepo) git.RepositoryExecutor { + return &RepoExecutor{ GitRepo: repo, - gitCmdFactory: gittest.NewCommandFactory(t, cfg), + GitCmdFactory: gittest.NewCommandFactory(t, cfg), } } -func (e *repoExecutor) Exec(ctx context.Context, cmd git.Command, opts ...git.CmdOpt) (*command.Command, error) { - return e.gitCmdFactory.New(ctx, e.GitRepo, cmd, opts...) +func (e *RepoExecutor) Exec(ctx context.Context, cmd git.Command, opts ...git.CmdOpt) (*command.Command, error) { + return e.GitCmdFactory.New(ctx, e.GitRepo, cmd, opts...) } -func (e *repoExecutor) ExecAndWait(ctx context.Context, cmd git.Command, opts ...git.CmdOpt) error { +func (e *RepoExecutor) ExecAndWait(ctx context.Context, cmd git.Command, opts ...git.CmdOpt) error { command, err := e.Exec(ctx, cmd, opts...) if err != nil { return err @@ -47,11 +47,11 @@ func (e *repoExecutor) ExecAndWait(ctx context.Context, cmd git.Command, opts .. return command.Wait() } -func (e *repoExecutor) GitVersion(ctx context.Context) (git.Version, error) { +func (e *RepoExecutor) GitVersion(ctx context.Context) (git.Version, error) { return git.Version{}, nil } -func (e *repoExecutor) ObjectHash(ctx context.Context) (git.ObjectHash, error) { +func (e *RepoExecutor) ObjectHash(ctx context.Context) (git.ObjectHash, error) { return gittest.DefaultObjectHash, nil } @@ -62,12 +62,12 @@ func setupObjectReader(t *testing.T, ctx context.Context) (config.Cfg, ObjectCon repo, repoPath := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ SkipCreationViaService: true, }) - repoExecutor := newRepoExecutor(t, cfg, repo) + RepoExecutor := NewRepoExecutor(t, cfg, repo) cache := newCache(1*time.Hour, 1000, helper.NewTimerTicker(defaultEvictionInterval)) t.Cleanup(cache.Stop) - objectReader, cancel, err := cache.ObjectReader(ctx, repoExecutor) + objectReader, cancel, err := cache.ObjectReader(ctx, RepoExecutor) require.NoError(t, err) t.Cleanup(cancel) @@ -109,3 +109,19 @@ func (o *staticObject) Read(p []byte) (int, error) { func (o *staticObject) WriteTo(w io.Writer) (int64, error) { return io.Copy(w, o.reader) } + +func (q *requestQueue) IsDirty() bool { + return q.isDirty() +} + +func (q *requestQueue) Close() { + q.close() +} + +//var NewInterceptedInfoQueue = newInterceptedInfoQueue + +var NewObjectContentReader = newObjectContentReader + +func (o *objectContentReader) Close() { + o.close() +} |