diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2021-05-06 18:54:20 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2021-05-12 11:24:58 +0300 |
commit | 1a0abd84ef1d9dcc70e713fc445e729dcccbdc57 (patch) | |
tree | e3bffbdbcb65547c82b7d3a5d87279048786cb75 | |
parent | ce974d3bc4df0b4339e52d9ff1b5142114893db8 (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.go | 11 |
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")) |