code.gitea.io/gitea@v1.19.3/modules/util/file_unix_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 //go:build !windows 5 6 package util 7 8 import ( 9 "os" 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestApplyUmask(t *testing.T) { 16 f, err := os.CreateTemp(t.TempDir(), "test-filemode-") 17 assert.NoError(t, err) 18 19 err = os.Chmod(f.Name(), 0o777) 20 assert.NoError(t, err) 21 st, err := os.Stat(f.Name()) 22 assert.NoError(t, err) 23 assert.EqualValues(t, 0o777, st.Mode().Perm()&0o777) 24 25 oldDefaultUmask := defaultUmask 26 defaultUmask = 0o037 27 defer func() { 28 defaultUmask = oldDefaultUmask 29 }() 30 err = ApplyUmask(f.Name(), os.ModePerm) 31 assert.NoError(t, err) 32 st, err = os.Stat(f.Name()) 33 assert.NoError(t, err) 34 assert.EqualValues(t, 0o740, st.Mode().Perm()&0o777) 35 }