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