X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm-remote%2Fsync%2Fcommands_test.go;h=1c534188eae0439e6c3eda15acd816aa11376e30;hb=6015bd22c34e8287b43b462facd5ad491296c8c2;hp=1b1adf71768dc0b8027c8bb0bd7edfd7c2e30156;hpb=bc439f5c4aabef1cccfe40233c2e467602a55a60;p=safcm%2Fsafcm.git diff --git a/cmd/safcm-remote/sync/commands_test.go b/cmd/safcm-remote/sync/commands_test.go index 1b1adf7..1c53418 100644 --- a/cmd/safcm-remote/sync/commands_test.go +++ b/cmd/safcm-remote/sync/commands_test.go @@ -20,12 +20,10 @@ import ( "io/fs" "os" "os/exec" - "reflect" "testing" - "github.com/google/go-cmp/cmp" - "ruderich.org/simon/safcm" + "ruderich.org/simon/safcm/testutil" ) func TestSyncCommands(t *testing.T) { @@ -67,8 +65,11 @@ func TestSyncCommands(t *testing.T) { "group2", "host.example.org", }, - Commands: []string{ - "echo; env | grep SAFCM_", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo; env | grep SAFCM_", + }, }, }, nil, @@ -84,7 +85,7 @@ func TestSyncCommands(t *testing.T) { Env: env, }}, []string{ - `3: sync remote: commands: running "/bin/sh" "-c" "echo; env | grep SAFCM_"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo; env | grep SAFCM_" (group)`, "5: sync remote: commands: command output:\nfake stdout/stderr", }, safcm.MsgSyncResp{ @@ -107,8 +108,11 @@ func TestSyncCommands(t *testing.T) { "group2", "host.example.org", }, - Commands: []string{ - "echo; env | grep SAFCM_", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo; env | grep SAFCM_", + }, }, }, nil, @@ -136,8 +140,11 @@ func TestSyncCommands(t *testing.T) { "group2", "host.example.org", }, - Commands: []string{ - "echo hi; false", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo hi; false", + }, }, }, nil, @@ -153,7 +160,7 @@ func TestSyncCommands(t *testing.T) { Env: env, }}, []string{ - `3: sync remote: commands: running "/bin/sh" "-c" "echo hi; false"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo hi; false" (group)`, "5: sync remote: commands: command output:\nfake stdout/stderr", }, safcm.MsgSyncResp{ @@ -177,8 +184,11 @@ func TestSyncCommands(t *testing.T) { "group2", "host.example.org", }, - Commands: []string{ - "echo hi; false", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo hi; false", + }, }, }, nil, @@ -206,11 +216,20 @@ func TestSyncCommands(t *testing.T) { "group2", "host.example.org", }, - Commands: []string{ - "echo first", - "echo second", - "false", - "echo third", + Commands: []*safcm.Command{ + { + OrigGroup: "group1", + Cmd: "echo first", + }, { + OrigGroup: "group2", + Cmd: "echo second", + }, { + OrigGroup: "group3", + Cmd: "false", + }, { + OrigGroup: "group4", + Cmd: "echo third", + }, }, }, nil, @@ -252,11 +271,11 @@ func TestSyncCommands(t *testing.T) { Env: env, }}, []string{ - `3: sync remote: commands: running "/bin/sh" "-c" "echo first"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo first" (group1)`, "5: sync remote: commands: command output:\nfake stdout/stderr first", - `3: sync remote: commands: running "/bin/sh" "-c" "echo second"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo second" (group2)`, "5: sync remote: commands: command output:\nfake stdout/stderr second", - `3: sync remote: commands: running "/bin/sh" "-c" "false"`, + `3: sync remote: commands: running "/bin/sh" "-c" "false" (group3)`, }, safcm.MsgSyncResp{ CommandChanges: []safcm.CommandChange{ @@ -320,8 +339,11 @@ func TestSyncCommands(t *testing.T) { }, }, }, - Commands: []string{ - "echo; env | grep SAFCM_", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo; env | grep SAFCM_", + }, }, }, []string{ @@ -366,11 +388,11 @@ func TestSyncCommands(t *testing.T) { Env: env, }}, []string{ - `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger ."`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger ." (".")`, "5: sync remote: commands: command output:\nfake stdout/stderr .", - `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger dir"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger dir" ("dir")`, "5: sync remote: commands: command output:\nfake stdout/stderr dir", - `3: sync remote: commands: running "/bin/sh" "-c" "echo; env | grep SAFCM_"`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo; env | grep SAFCM_" (group)`, "5: sync remote: commands: command output:\nfake stdout/stderr", }, safcm.MsgSyncResp{ @@ -436,8 +458,11 @@ func TestSyncCommands(t *testing.T) { }, }, }, - Commands: []string{ - "echo; env | grep SAFCM_", + Commands: []*safcm.Command{ + { + OrigGroup: "group", + Cmd: "echo; env | grep SAFCM_", + }, }, }, []string{ @@ -472,9 +497,9 @@ func TestSyncCommands(t *testing.T) { Env: env, }}, []string{ - `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger ."`, + `3: sync remote: commands: running "/bin/sh" "-c" "echo trigger ." (".")`, "5: sync remote: commands: command output:\nfake stdout/stderr .", - `3: sync remote: commands: running "/bin/sh" "-c" "false"`, + `3: sync remote: commands: running "/bin/sh" "-c" "false" ("dir")`, "5: sync remote: commands: command output:\nfake stdout/stderr dir", }, safcm.MsgSyncResp{ @@ -497,31 +522,22 @@ func TestSyncCommands(t *testing.T) { } for _, tc := range tests { - s, res := prepareSync(tc.req, &testRunner{ - t: t, - name: tc.name, - expCmds: tc.expCmds, - resStdout: tc.stdout, - resStderr: tc.stderr, - resError: tc.errors, - }) - s.triggers = tc.triggers + t.Run(tc.name, func(t *testing.T) { + s, res := prepareSync(tc.req, &testRunner{ + t: t, + expCmds: tc.expCmds, + resStdout: tc.stdout, + resStderr: tc.stderr, + resError: tc.errors, + }) + s.triggers = tc.triggers - err := s.syncCommands() - // Ugly but the simplest way to compare errors (including nil) - if fmt.Sprintf("%s", err) != fmt.Sprintf("%s", tc.expErr) { - t.Errorf("%s: err = %#v, want %#v", - tc.name, err, tc.expErr) - } - dbg := res.Wait() + err := s.syncCommands() + testutil.AssertErrorEqual(t, "err", err, tc.expErr) + dbg := res.Wait() - if !reflect.DeepEqual(tc.expResp, s.resp) { - t.Errorf("%s: resp: %s", tc.name, - cmp.Diff(tc.expResp, s.resp)) - } - if !reflect.DeepEqual(tc.expDbg, dbg) { - t.Errorf("%s: dbg: %s", tc.name, - cmp.Diff(tc.expDbg, dbg)) - } + testutil.AssertEqual(t, "resp", s.resp, tc.expResp) + testutil.AssertEqual(t, "dbg", dbg, tc.expDbg) + }) } }