src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/testutil/chmod.go (about) 1 package testutil 2 3 import ( 4 "io/fs" 5 "os" 6 ) 7 8 // ChmodOrSkip runs [os.Chmod], but skips the test if file's mode is not exactly 9 // mode or if there is any error. 10 func ChmodOrSkip(s Skipper, name string, mode fs.FileMode) { 11 err := os.Chmod(name, mode) 12 if err != nil { 13 s.Skipf("chmod: %v", err) 14 } 15 fi, err := os.Stat(name) 16 if err != nil { 17 s.Skipf("stat: %v", err) 18 } 19 if fi.Mode() != mode { 20 s.Skipf("file mode %O is not %O", fi.Mode(), mode) 21 } 22 }