]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm-remote/sync/files_test.go
Add basic support for OpenBSD
[safcm/safcm.git] / cmd / safcm-remote / sync / files_test.go
index e57401e3ada3c13b5d3e0edca9b37f06ab19d306..879fefda156b8789d6b0818459a05b15eb3aa9ae 100644 (file)
@@ -21,14 +21,12 @@ import (
        "math/rand"
        "os"
        "path/filepath"
-       "reflect"
        "regexp"
        "testing"
 
-       "github.com/google/go-cmp/cmp"
-
        "ruderich.org/simon/safcm"
        ft "ruderich.org/simon/safcm/cmd/safcm-remote/sync/filetest"
+       "ruderich.org/simon/safcm/testutil"
 )
 
 var randFilesRegexp = regexp.MustCompile(`\d+"$`)
@@ -263,43 +261,31 @@ func TestSyncFiles(t *testing.T) {
                        // don't want to modify the running system. Use this
                        // test (and the one below for triggers) as a basic
                        // check that absolute paths work.
+                       //
+                       // Use numeric IDs as not all systems use root/root;
+                       // for example BSDs use root/wheel.
                        "absolute paths: no change",
                        safcm.MsgSyncReq{
                                Files: map[string]*safcm.File{
                                        "/": {
                                                Path:      "/",
                                                Mode:      fs.ModeDir | 0755,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
+                                               Uid:       0,
+                                               Gid:       0,
                                                OrigGroup: "group",
                                        },
                                        "/etc": {
                                                Path:      "/etc",
                                                Mode:      fs.ModeDir | 0755,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
+                                               Uid:       0,
+                                               Gid:       0,
                                                OrigGroup: "group",
                                        },
                                        "/tmp": {
                                                Path:      "/tmp",
                                                Mode:      fs.ModeDir | 0777 | fs.ModeSticky,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
-                                               OrigGroup: "group",
-                                       },
-                                       "/var/tmp": {
-                                               Path:      "/var/tmp",
-                                               Mode:      fs.ModeDir | 0777 | fs.ModeSticky,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
+                                               Uid:       0,
+                                               Gid:       0,
                                                OrigGroup: "group",
                                        },
                                },
@@ -314,7 +300,6 @@ func TestSyncFiles(t *testing.T) {
                                `4: sync remote: files: "/" (group): unchanged`,
                                `4: sync remote: files: "/etc" (group): unchanged`,
                                `4: sync remote: files: "/tmp" (group): unchanged`,
-                               `4: sync remote: files: "/var/tmp" (group): unchanged`,
                        },
                        nil,
                },
@@ -758,10 +743,8 @@ func TestSyncFiles(t *testing.T) {
                                        "/": {
                                                Path:      "/",
                                                Mode:      fs.ModeDir | 0755,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
+                                               Uid:       0,
+                                               Gid:       0,
                                                OrigGroup: "group",
                                                TriggerCommands: []string{
                                                        "echo trigger /",
@@ -770,10 +753,8 @@ func TestSyncFiles(t *testing.T) {
                                        "/tmp": {
                                                Path:      "/tmp",
                                                Mode:      fs.ModeDir | 0777 | fs.ModeSticky,
-                                               User:      "root",
-                                               Uid:       -1,
-                                               Group:     "root",
-                                               Gid:       -1,
+                                               Uid:       0,
+                                               Gid:       0,
                                                OrigGroup: "group",
                                                TriggerCommands: []string{
                                                        "echo trigger /tmp",
@@ -863,38 +844,23 @@ func TestSyncFiles(t *testing.T) {
                        s.setDefaults()
 
                        err := s.syncFiles()
-                       // Ugly but the simplest way to compare errors (including nil)
-                       if fmt.Sprintf("%s", err) != fmt.Sprintf("%s", tc.expErr) {
-                               t.Errorf("err = %#v, want %#v",
-                                       err, tc.expErr)
-                       }
+                       testutil.AssertErrorEqual(t, "err", err, tc.expErr)
                        dbg := res.Wait()
                        // Remove random file names from result
                        for i, x := range dbg {
                                dbg[i] = randFilesRegexp.ReplaceAllString(x, `RND"`)
                        }
-                       if !reflect.DeepEqual(tc.expDbg, dbg) {
-                               t.Errorf("dbg: %s",
-                                       cmp.Diff(tc.expDbg, dbg))
-                       }
+                       testutil.AssertEqual(t, "dbg", dbg, tc.expDbg)
 
                        files, err := ft.WalkDir(path)
                        if err != nil {
                                t.Fatal(err)
                        }
-                       if !reflect.DeepEqual(tc.expFiles, files) {
-                               t.Errorf("files: %s",
-                                       cmp.Diff(tc.expFiles, files))
-                       }
+                       testutil.AssertEqual(t, "files", files, tc.expFiles)
 
-                       if !reflect.DeepEqual(tc.expResp, s.resp) {
-                               t.Errorf("resp: %s",
-                                       cmp.Diff(tc.expResp, s.resp))
-                       }
-                       if !reflect.DeepEqual(tc.triggers, s.triggers) {
-                               t.Errorf("triggers: %s",
-                                       cmp.Diff(tc.triggers, s.triggers))
-                       }
+                       testutil.AssertEqual(t, "resp", s.resp, tc.expResp)
+                       testutil.AssertEqual(t, "triggers",
+                               s.triggers, tc.triggers)
                })
        }
 
@@ -2422,38 +2388,22 @@ file
 
                        var changed bool
                        err := s.syncFile(tc.file, &changed)
-                       // Ugly but the simplest way to compare errors (including nil)
-                       if fmt.Sprintf("%s", err) != fmt.Sprintf("%s", tc.expErr) {
-                               t.Errorf("err = %#v, want %#v",
-                                       err, tc.expErr)
-                       }
+                       testutil.AssertErrorEqual(t, "err", err, tc.expErr)
                        dbg := res.Wait()
                        // Remove random file names from result
                        for i, x := range dbg {
                                dbg[i] = randFilesRegexp.ReplaceAllString(x, `RND"`)
                        }
-                       if !reflect.DeepEqual(tc.expDbg, dbg) {
-                               t.Errorf("dbg: %s",
-                                       cmp.Diff(tc.expDbg, dbg))
-                       }
+                       testutil.AssertEqual(t, "dbg", dbg, tc.expDbg)
 
                        files, err := ft.WalkDir(path)
                        if err != nil {
                                t.Fatal(err)
                        }
-                       if !reflect.DeepEqual(tc.expFiles, files) {
-                               t.Errorf("files: %s",
-                                       cmp.Diff(tc.expFiles, files))
-                       }
+                       testutil.AssertEqual(t, "files", files, tc.expFiles)
 
-                       if tc.expChanged != changed {
-                               t.Errorf("changed = %#v, want %#v",
-                                       changed, tc.expChanged)
-                       }
-                       if !reflect.DeepEqual(tc.expResp, s.resp) {
-                               t.Errorf("resp: %s",
-                                       cmp.Diff(tc.expResp, s.resp))
-                       }
+                       testutil.AssertEqual(t, "changed", changed, tc.expChanged)
+                       testutil.AssertEqual(t, "resp", s.resp, tc.expResp)
                })
        }