diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-04-28 10:08:26 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-04-28 10:08:26 +0300 |
commit | d0eb94f3ff8fe6ce7d286d8fa45f60839faf4c76 (patch) | |
tree | dad00312f5b232b05ef903b92318a90974806dbe | |
parent | cb032e35e1db91275365608857d435c7f68d7375 (diff) |
protoregistry: Don't use separate package for testing registry
We're using a separate package to test the Proto registry. This is not
needed, so let's remove the separate package so that we can also test
internal functions that are not exposed to callers.
While at it, enable testing with the SHA256 object format.
-rw-r--r-- | internal/praefect/protoregistry/protoregistry_test.go | 219 |
1 files changed, 111 insertions, 108 deletions
diff --git a/internal/praefect/protoregistry/protoregistry_test.go b/internal/praefect/protoregistry/protoregistry_test.go index a048caa55..9e448c443 100644 --- a/internal/praefect/protoregistry/protoregistry_test.go +++ b/internal/praefect/protoregistry/protoregistry_test.go @@ -1,141 +1,142 @@ -package protoregistry_test +package protoregistry import ( "fmt" "testing" "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/protoregistry" ) func TestNewProtoRegistry(t *testing.T) { - expectedResults := map[string]map[string]protoregistry.OpType{ + t.Parallel() + + expectedResults := map[string]map[string]OpType{ "BlobService": { - "GetBlob": protoregistry.OpAccessor, - "GetBlobs": protoregistry.OpAccessor, - "GetLFSPointers": protoregistry.OpAccessor, + "GetBlob": OpAccessor, + "GetBlobs": OpAccessor, + "GetLFSPointers": OpAccessor, }, "CleanupService": { - "ApplyBfgObjectMapStream": protoregistry.OpMutator, + "ApplyBfgObjectMapStream": OpMutator, }, "CommitService": { - "CommitIsAncestor": protoregistry.OpAccessor, - "CommitLanguages": protoregistry.OpAccessor, - "CommitStats": protoregistry.OpAccessor, - "CommitsByMessage": protoregistry.OpAccessor, - "CountCommits": protoregistry.OpAccessor, - "CountDivergingCommits": protoregistry.OpAccessor, - "FilterShasWithSignatures": protoregistry.OpAccessor, - "FindAllCommits": protoregistry.OpAccessor, - "FindCommit": protoregistry.OpAccessor, - "FindCommits": protoregistry.OpAccessor, - "GetTreeEntries": protoregistry.OpAccessor, - "LastCommitForPath": protoregistry.OpAccessor, - "ListCommitsByOid": protoregistry.OpAccessor, - "ListFiles": protoregistry.OpAccessor, - "ListLastCommitsForTree": protoregistry.OpAccessor, - "RawBlame": protoregistry.OpAccessor, - "TreeEntry": protoregistry.OpAccessor, + "CommitIsAncestor": OpAccessor, + "CommitLanguages": OpAccessor, + "CommitStats": OpAccessor, + "CommitsByMessage": OpAccessor, + "CountCommits": OpAccessor, + "CountDivergingCommits": OpAccessor, + "FilterShasWithSignatures": OpAccessor, + "FindAllCommits": OpAccessor, + "FindCommit": OpAccessor, + "FindCommits": OpAccessor, + "GetTreeEntries": OpAccessor, + "LastCommitForPath": OpAccessor, + "ListCommitsByOid": OpAccessor, + "ListFiles": OpAccessor, + "ListLastCommitsForTree": OpAccessor, + "RawBlame": OpAccessor, + "TreeEntry": OpAccessor, }, "ConflictsService": { - "ListConflictFiles": protoregistry.OpAccessor, - "ResolveConflicts": protoregistry.OpMutator, + "ListConflictFiles": OpAccessor, + "ResolveConflicts": OpMutator, }, "DiffService": { - "CommitDelta": protoregistry.OpAccessor, - "CommitDiff": protoregistry.OpAccessor, - "DiffStats": protoregistry.OpAccessor, - "RawDiff": protoregistry.OpAccessor, - "RawPatch": protoregistry.OpAccessor, + "CommitDelta": OpAccessor, + "CommitDiff": OpAccessor, + "DiffStats": OpAccessor, + "RawDiff": OpAccessor, + "RawPatch": OpAccessor, }, "NamespaceService": { - "AddNamespace": protoregistry.OpMutator, - "NamespaceExists": protoregistry.OpAccessor, - "RemoveNamespace": protoregistry.OpMutator, - "RenameNamespace": protoregistry.OpMutator, + "AddNamespace": OpMutator, + "NamespaceExists": OpAccessor, + "RemoveNamespace": OpMutator, + "RenameNamespace": OpMutator, }, "ObjectPoolService": { - "CreateObjectPool": protoregistry.OpMutator, - "DeleteObjectPool": protoregistry.OpMutator, - "DisconnectGitAlternates": protoregistry.OpMutator, - "LinkRepositoryToObjectPool": protoregistry.OpMutator, + "CreateObjectPool": OpMutator, + "DeleteObjectPool": OpMutator, + "DisconnectGitAlternates": OpMutator, + "LinkRepositoryToObjectPool": OpMutator, }, "OperationService": { - "UserApplyPatch": protoregistry.OpMutator, - "UserCherryPick": protoregistry.OpMutator, - "UserCommitFiles": protoregistry.OpMutator, - "UserCreateBranch": protoregistry.OpMutator, - "UserCreateTag": protoregistry.OpMutator, - "UserDeleteBranch": protoregistry.OpMutator, - "UserDeleteTag": protoregistry.OpMutator, - "UserFFBranch": protoregistry.OpMutator, - "UserMergeBranch": protoregistry.OpMutator, - "UserMergeToRef": protoregistry.OpMutator, - "UserRevert": protoregistry.OpMutator, - "UserSquash": protoregistry.OpMutator, - "UserUpdateBranch": protoregistry.OpMutator, - "UserUpdateSubmodule": protoregistry.OpMutator, + "UserApplyPatch": OpMutator, + "UserCherryPick": OpMutator, + "UserCommitFiles": OpMutator, + "UserCreateBranch": OpMutator, + "UserCreateTag": OpMutator, + "UserDeleteBranch": OpMutator, + "UserDeleteTag": OpMutator, + "UserFFBranch": OpMutator, + "UserMergeBranch": OpMutator, + "UserMergeToRef": OpMutator, + "UserRevert": OpMutator, + "UserSquash": OpMutator, + "UserUpdateBranch": OpMutator, + "UserUpdateSubmodule": OpMutator, }, "RefService": { - "DeleteRefs": protoregistry.OpMutator, - "FindAllBranchNames": protoregistry.OpAccessor, - "FindAllBranches": protoregistry.OpAccessor, - "FindAllRemoteBranches": protoregistry.OpAccessor, - "FindAllTagNames": protoregistry.OpAccessor, - "FindAllTags": protoregistry.OpAccessor, - "FindBranch": protoregistry.OpAccessor, - "FindDefaultBranchName": protoregistry.OpAccessor, - "FindLocalBranches": protoregistry.OpAccessor, - "GetTagMessages": protoregistry.OpAccessor, - "ListBranchNamesContainingCommit": protoregistry.OpAccessor, - "ListTagNamesContainingCommit": protoregistry.OpAccessor, - "RefExists": protoregistry.OpAccessor, + "DeleteRefs": OpMutator, + "FindAllBranchNames": OpAccessor, + "FindAllBranches": OpAccessor, + "FindAllRemoteBranches": OpAccessor, + "FindAllTagNames": OpAccessor, + "FindAllTags": OpAccessor, + "FindBranch": OpAccessor, + "FindDefaultBranchName": OpAccessor, + "FindLocalBranches": OpAccessor, + "GetTagMessages": OpAccessor, + "ListBranchNamesContainingCommit": OpAccessor, + "ListTagNamesContainingCommit": OpAccessor, + "RefExists": OpAccessor, }, "RemoteService": { - "FindRemoteRepository": protoregistry.OpAccessor, - "FindRemoteRootRef": protoregistry.OpAccessor, - "UpdateRemoteMirror": protoregistry.OpAccessor, + "FindRemoteRepository": OpAccessor, + "FindRemoteRootRef": OpAccessor, + "UpdateRemoteMirror": OpAccessor, }, "RepositoryService": { - "ApplyGitattributes": protoregistry.OpMutator, - "BackupCustomHooks": protoregistry.OpAccessor, - "CalculateChecksum": protoregistry.OpAccessor, - "CreateBundle": protoregistry.OpAccessor, - "CreateFork": protoregistry.OpMutator, - "CreateRepository": protoregistry.OpMutator, - "CreateRepositoryFromBundle": protoregistry.OpMutator, - "CreateRepositoryFromSnapshot": protoregistry.OpMutator, - "CreateRepositoryFromURL": protoregistry.OpMutator, - "FetchBundle": protoregistry.OpMutator, - "FetchRemote": protoregistry.OpMutator, - "FetchSourceBranch": protoregistry.OpMutator, - "FindLicense": protoregistry.OpAccessor, - "FindMergeBase": protoregistry.OpAccessor, - "Fsck": protoregistry.OpAccessor, - "GetArchive": protoregistry.OpAccessor, - "GetInfoAttributes": protoregistry.OpAccessor, - "GetRawChanges": protoregistry.OpAccessor, - "GetSnapshot": protoregistry.OpAccessor, - "HasLocalBranches": protoregistry.OpAccessor, - "OptimizeRepository": protoregistry.OpMaintenance, - "PruneUnreachableObjects": protoregistry.OpMaintenance, - "RepositoryExists": protoregistry.OpAccessor, - "RepositorySize": protoregistry.OpAccessor, - "RestoreCustomHooks": protoregistry.OpMutator, - "SearchFilesByContent": protoregistry.OpAccessor, - "SearchFilesByName": protoregistry.OpAccessor, - "WriteRef": protoregistry.OpMutator, + "ApplyGitattributes": OpMutator, + "BackupCustomHooks": OpAccessor, + "CalculateChecksum": OpAccessor, + "CreateBundle": OpAccessor, + "CreateFork": OpMutator, + "CreateRepository": OpMutator, + "CreateRepositoryFromBundle": OpMutator, + "CreateRepositoryFromSnapshot": OpMutator, + "CreateRepositoryFromURL": OpMutator, + "FetchBundle": OpMutator, + "FetchRemote": OpMutator, + "FetchSourceBranch": OpMutator, + "FindLicense": OpAccessor, + "FindMergeBase": OpAccessor, + "Fsck": OpAccessor, + "GetArchive": OpAccessor, + "GetInfoAttributes": OpAccessor, + "GetRawChanges": OpAccessor, + "GetSnapshot": OpAccessor, + "HasLocalBranches": OpAccessor, + "OptimizeRepository": OpMaintenance, + "PruneUnreachableObjects": OpMaintenance, + "RepositoryExists": OpAccessor, + "RepositorySize": OpAccessor, + "RestoreCustomHooks": OpMutator, + "SearchFilesByContent": OpAccessor, + "SearchFilesByName": OpAccessor, + "WriteRef": OpMutator, }, "SmartHTTPService": { - "InfoRefsReceivePack": protoregistry.OpAccessor, - "InfoRefsUploadPack": protoregistry.OpAccessor, - "PostReceivePack": protoregistry.OpMutator, - "PostUploadPackWithSidechannel": protoregistry.OpAccessor, + "InfoRefsReceivePack": OpAccessor, + "InfoRefsUploadPack": OpAccessor, + "PostReceivePack": OpMutator, + "PostUploadPackWithSidechannel": OpAccessor, }, "SSHService": { - "SSHReceivePack": protoregistry.OpMutator, - "SSHUploadArchive": protoregistry.OpAccessor, - "SSHUploadPack": protoregistry.OpAccessor, + "SSHReceivePack": OpMutator, + "SSHUploadArchive": OpAccessor, + "SSHUploadPack": OpAccessor, }, } @@ -143,17 +144,19 @@ func TestNewProtoRegistry(t *testing.T) { for methodName, opType := range methods { method := fmt.Sprintf("/gitaly.%s/%s", serviceName, methodName) - methodInfo, err := protoregistry.GitalyProtoPreregistered.LookupMethod(method) + methodInfo, err := GitalyProtoPreregistered.LookupMethod(method) require.NoError(t, err) require.Equalf(t, opType, methodInfo.Operation, "expect %s:%s to have the correct op type", serviceName, methodName) require.Equal(t, method, methodInfo.FullMethodName()) - require.False(t, protoregistry.GitalyProtoPreregistered.IsInterceptedMethod(method), method) + require.False(t, GitalyProtoPreregistered.IsInterceptedMethod(method), method) } } } func TestNewProtoRegistry_IsInterceptedMethod(t *testing.T) { + t.Parallel() + for service, methods := range map[string][]string{ "ServerService": { "ServerInfo", @@ -173,8 +176,8 @@ func TestNewProtoRegistry_IsInterceptedMethod(t *testing.T) { for _, method := range methods { t.Run(method, func(t *testing.T) { fullMethodName := fmt.Sprintf("/gitaly.%s/%s", service, method) - require.True(t, protoregistry.GitalyProtoPreregistered.IsInterceptedMethod(fullMethodName)) - methodInfo, err := protoregistry.GitalyProtoPreregistered.LookupMethod(fullMethodName) + require.True(t, GitalyProtoPreregistered.IsInterceptedMethod(fullMethodName)) + methodInfo, err := GitalyProtoPreregistered.LookupMethod(fullMethodName) require.Empty(t, methodInfo) require.Error(t, err, "full method name not found:") }) |