]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/config/files_test.go
Use SPDX license identifiers
[safcm/safcm.git] / cmd / safcm / config / files_test.go
index 6124e8ad93b8a2b48eb59ad658b3689251096eeb..bbd4ff5979089d7eefe2e331b3b86b51c5c60c41 100644 (file)
@@ -1,17 +1,5 @@
-// Copyright (C) 2021  Simon Ruderich
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright (C) 2021-2024  Simon Ruderich
 
 package config
 
@@ -20,15 +8,15 @@ import (
        "io/fs"
        "os"
        "runtime"
-       "syscall"
        "testing"
 
        "ruderich.org/simon/safcm"
+       ft "ruderich.org/simon/safcm/remote/sync/filetest"
        "ruderich.org/simon/safcm/testutil"
 )
 
-func chmod(name string, perm int) {
-       err := os.Chmod(name, FullPermToFileMode(perm))
+func chmod(name string, mode fs.FileMode) {
+       err := os.Chmod(name, mode)
        if err != nil {
                panic(err)
        }
@@ -39,7 +27,7 @@ func TestLoadFiles(t *testing.T) {
        if err != nil {
                t.Fatal(err)
        }
-       defer os.Chdir(cwd)
+       defer os.Chdir(cwd) //nolint:errcheck
 
        err = os.Chdir("../testdata/project")
        if err != nil {
@@ -47,15 +35,15 @@ func TestLoadFiles(t *testing.T) {
        }
 
        // Regular users cannot create sticky files
-       skipInvalidSticky := runtime.GOOS == "freebsd" ||
-               runtime.GOOS == "openbsd"
+       skipInvalidSticky := os.Getuid() != 0 &&
+               (runtime.GOOS == "freebsd" || runtime.GOOS == "openbsd")
 
        chmod("files-invalid-perm-dir/files", 0500)
        defer chmod("files-invalid-perm-dir/files", 0700)
        chmod("files-invalid-perm-dir/files/etc/", 0755)
        chmod("files-invalid-perm-dir/files/etc/resolv.conf", 0644)
        chmod("files-invalid-perm-dir-setgid/files", 0755)
-       chmod("files-invalid-perm-dir-setgid/files/etc/", 02755)
+       chmod("files-invalid-perm-dir-setgid/files/etc/", 0755|fs.ModeSetgid)
        chmod("files-invalid-perm-dir-setgid/files/etc/resolv.conf", 0644)
        chmod("files-invalid-perm-file/files", 0755)
        chmod("files-invalid-perm-file/files/etc/", 0755)
@@ -66,13 +54,11 @@ func TestLoadFiles(t *testing.T) {
        if !skipInvalidSticky {
                chmod("files-invalid-perm-file-sticky/files", 0755)
                chmod("files-invalid-perm-file-sticky/files/etc", 0755)
-               chmod("files-invalid-perm-file-sticky/files/etc/resolv.conf", 01644)
+               chmod("files-invalid-perm-file-sticky/files/etc/resolv.conf",
+                       0644|fs.ModeSticky)
        }
 
-       err = syscall.Mkfifo("files-invalid-type/files/invalid", 0644)
-       if err != nil {
-               t.Fatal(err)
-       }
+       ft.CreateFifo("files-invalid-type/files/invalid", 0644)
        defer os.Remove("files-invalid-type/files/invalid")
 
        const errMsg = `