]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/sync_sync_test.go
safcm: group_order: higher priority for listed groups over remaining groups
[safcm/safcm.git] / cmd / safcm / sync_sync_test.go
index 31252936e663861f18aa352766ab43479540caae..a5f65811e0d82297f642f01dcf027dd175ff9da3 100644 (file)
@@ -59,6 +59,7 @@ func TestHostSyncReq(t *testing.T) {
                                Groups: []string{
                                        "all",
                                        "group",
+                                       "group3",
                                        "remove",
                                        "host1.example.org",
                                },
@@ -135,13 +136,19 @@ func TestHostSyncReq(t *testing.T) {
                                Services: []string{
                                        "unbound",
                                },
-                               Commands: []string{
-                                       "echo command one",
-                                       "echo -n command two",
+                               Commands: []*safcm.Command{
+                                       {
+                                               OrigGroup: "group",
+                                               Cmd:       "echo command one",
+                                       },
+                                       {
+                                               OrigGroup: "group",
+                                               Cmd:       "echo -n command two",
+                                       },
                                },
                        },
                        []string{
-                               "host1.example.org: <nil> 3 host groups: all group host1.example.org remove",
+                               "host1.example.org: <nil> 3 host groups: all group group3 host1.example.org remove",
                                "host1.example.org: <nil> 3 host group priorities (desc. order): host1.example.org",
                        },
                        nil,
@@ -157,6 +164,7 @@ func TestHostSyncReq(t *testing.T) {
                                Groups: []string{
                                        "all",
                                        "group",
+                                       "group3",
                                        "remove",
                                        "host1.example.org",
                                },
@@ -233,9 +241,15 @@ func TestHostSyncReq(t *testing.T) {
                                Services: []string{
                                        "unbound",
                                },
-                               Commands: []string{
-                                       "echo command one",
-                                       "echo -n command two",
+                               Commands: []*safcm.Command{
+                                       {
+                                               OrigGroup: "group",
+                                               Cmd:       "echo command one",
+                                       },
+                                       {
+                                               OrigGroup: "group",
+                                               Cmd:       "echo -n command two",
+                                       },
                                },
                        },
                        nil,
@@ -414,6 +428,39 @@ func TestHostSyncReq(t *testing.T) {
                        },
                        nil,
                },
+
+               {
+                       "group_order (single group)",
+                       "project-group_order-single",
+                       "host1.example.org",
+                       nil,
+                       safcm.LogDebug3,
+                       safcm.MsgSyncReq{
+                               Groups: []string{"all", "group-b", "group-a", "host1.example.org"},
+                               Files: map[string]*safcm.File{
+                                       "/": {
+                                               Path:      "/",
+                                               Mode:      fs.ModeDir | 0755,
+                                               Uid:       -1,
+                                               Gid:       -1,
+                                               OrigGroup: "group-a",
+                                       },
+                                       "/file.txt": {
+                                               Path:      "/file.txt",
+                                               Mode:      0644,
+                                               Uid:       -1,
+                                               Gid:       -1,
+                                               Data:      []byte("file.txt: from group-a\n"),
+                                               OrigGroup: "group-a",
+                                       },
+                               },
+                       },
+                       []string{
+                               "host1.example.org: <nil> 3 host groups: all group-a group-b host1.example.org",
+                               "host1.example.org: <nil> 3 host group priorities (desc. order): host1.example.org group-a",
+                       },
+                       nil,
+               },
        }
 
        for _, tc := range tests {