Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <git@zjvandeweg.nl>2021-05-06 18:54:20 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2021-05-12 11:24:58 +0300
commit1a0abd84ef1d9dcc70e713fc445e729dcccbdc57 (patch)
treee3bffbdbcb65547c82b7d3a5d87279048786cb75
parentce974d3bc4df0b4339e52d9ff1b5142114893db8 (diff)
testing: Assert access rather than permission mask
Given `git-init(1)` might give different permission than the defined 0770 the parent directory of a repo might have, the test might fail depending on the users system. This change updates the test to assert read, write, and execution permissions, rather than checking a mask or the masks String(). That asserts what we really care about. This assertion is made on the relevant subdirectories too.
-rw-r--r--internal/gitaly/service/repository/create_test.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/internal/gitaly/service/repository/create_test.go b/internal/gitaly/service/repository/create_test.go
index e8ea68c58..e9fd7ae7c 100644
--- a/internal/gitaly/service/repository/create_test.go
+++ b/internal/gitaly/service/repository/create_test.go
@@ -23,6 +23,7 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/testhelper/testcfg"
"gitlab.com/gitlab-org/gitaly/internal/testhelper/testserver"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
+ "golang.org/x/sys/unix"
"google.golang.org/grpc/codes"
)
@@ -54,14 +55,18 @@ func TestCreateRepositorySuccess(t *testing.T) {
_, err := client.CreateRepository(ctx, req)
require.NoError(t, err)
- fi, err := os.Stat(repoDir)
- require.NoError(t, err)
- require.Equal(t, "drwxr-x---", fi.Mode().String())
+ require.NoError(t, unix.Access(repoDir, unix.R_OK))
+ require.NoError(t, unix.Access(repoDir, unix.W_OK))
+ require.NoError(t, unix.Access(repoDir, unix.X_OK))
for _, dir := range []string{repoDir, filepath.Join(repoDir, "refs")} {
fi, err := os.Stat(dir)
require.NoError(t, err)
require.True(t, fi.IsDir(), "%q must be a directory", fi.Name())
+
+ require.NoError(t, unix.Access(dir, unix.R_OK))
+ require.NoError(t, unix.Access(dir, unix.W_OK))
+ require.NoError(t, unix.Access(dir, unix.X_OK))
}
symRef, err := ioutil.ReadFile(path.Join(repoDir, "HEAD"))