"bytes"
"fmt"
"os/exec"
- "reflect"
"testing"
- "github.com/google/go-cmp/cmp"
-
"ruderich.org/simon/safcm"
+ "ruderich.org/simon/safcm/testutil"
)
func TestSyncServicesSystemd(t *testing.T) {
}{
// NOTE: Also update MsgSyncResp in safcm test cases when
- // changing anything here!
+ // changing the MsgSyncResp struct!
{
"no service change necessary",
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-one service-two",
+ "4: sync remote: services: checking service-one service-two (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-one" "service-two"`,
`5: sync remote: services: command stdout:
ActiveState=active
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-one service-two",
+ "4: sync remote: services: checking service-one service-two (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-one" "service-two"`,
`5: sync remote: services: command stdout:
ActiveState=active
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-does-not-exist service-two",
+ "4: sync remote: services: checking service-does-not-exist service-two (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-does-not-exist" "service-two"`,
`5: sync remote: services: command stdout:
ActiveState=inactive
nil,
nil,
nil,
- []byte(`fake stderr`),
+ []byte("fake stderr"),
},
[]error{nil, nil, nil, nil},
[]*exec.Cmd{&exec.Cmd{
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-one service-two service-three",
+ "4: sync remote: services: checking service-one service-two service-three (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-one" "service-two" "service-three"`,
`5: sync remote: services: command stdout:
ActiveState=inactive
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-one service-two service-three",
+ "4: sync remote: services: checking service-one service-two service-three (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-one" "service-two" "service-three"`,
`5: sync remote: services: command stdout:
ActiveState=inactive
[][]byte{
nil,
nil,
- []byte(`fake stderr`),
+ []byte("fake stderr"),
},
[]error{
nil,
Stderr: &bytes.Buffer{},
}},
[]string{
- "4: sync remote: services: detected systemd",
- "4: sync remote: services: checking service-one service-two service-three",
+ "4: sync remote: services: checking service-one service-two service-three (systemd detected)",
`4: sync remote: services: running "/bin/systemctl" "show" "--property=ActiveState,UnitFileState,LoadError" "--" "service-one" "service-two" "service-three"`,
`5: sync remote: services: command stdout:
ActiveState=inactive
})
err := s.syncServicesSystemd()
- // 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()
- if !reflect.DeepEqual(tc.expResp, s.resp) {
- t.Errorf("resp: %s",
- cmp.Diff(tc.expResp, s.resp))
- }
- if !reflect.DeepEqual(tc.expDbg, dbg) {
- t.Errorf("dbg: %s",
- cmp.Diff(tc.expDbg, dbg))
- }
+ testutil.AssertEqual(t, "resp", s.resp, tc.expResp)
+ testutil.AssertEqual(t, "dbg", dbg, tc.expDbg)
})
}
}