diff --git a/systemctl_test.go b/systemctl_test.go index 6e8ef5d..0e246f6 100644 --- a/systemctl_test.go +++ b/systemctl_test.go @@ -42,7 +42,6 @@ func TestMain(m *testing.M) { func TestDaemonReload(t *testing.T) { testCases := []struct { - unit string err error opts Options runAsUser bool @@ -50,22 +49,26 @@ func TestDaemonReload(t *testing.T) { /* Run these tests only as a user */ // fail to reload system daemon as user - {"", ErrInsufficientPermissions, Options{UserMode: false}, true}, + {ErrInsufficientPermissions, Options{UserMode: false}, true}, // reload user's scope daemon - {"", nil, Options{UserMode: true}, true}, + {nil, Options{UserMode: true}, true}, /* End user tests*/ /* Run these tests only as a superuser */ // succeed to reload daemon - {"", nil, Options{UserMode: false}, false}, + {nil, Options{UserMode: false}, false}, // fail to connect to user bus as system - {"", ErrBusFailure, Options{UserMode: true}, false}, + {ErrBusFailure, Options{UserMode: true}, false}, /* End superuser tests*/ } for _, tc := range testCases { - t.Run(fmt.Sprintf("%s as %s", tc.unit, userString), func(t *testing.T) { + mode := "user" + if tc.opts.UserMode == false { + mode = "system" + } + t.Run(fmt.Sprintf("DaemonReload as %s, %s mode", userString, mode), func(t *testing.T) { if (userString == "root" || userString == "system") && tc.runAsUser { t.Skip("skipping user test while running as superuser") } else if (userString != "root" && userString != "system") && !tc.runAsUser { diff --git a/util.go b/util.go index f66205f..2cc88cd 100644 --- a/util.go +++ b/util.go @@ -52,23 +52,23 @@ func execute(ctx context.Context, args []string) (string, string, int, error) { func filterErr(stderr string) error { switch { - case strings.Contains(`does not exist`, stderr): + case strings.Contains(stderr, `does not exist`): return errors.Join(ErrDoesNotExist, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`not found.`, stderr): + case strings.Contains(stderr, `not found.`): return errors.Join(ErrDoesNotExist, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`not loaded.`, stderr): + case strings.Contains(stderr, `not loaded.`): return errors.Join(ErrUnitNotLoaded, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`No such file or directory`, stderr): + case strings.Contains(stderr, `No such file or directory`): return errors.Join(ErrDoesNotExist, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`Interactive authentication required`, stderr): + case strings.Contains(stderr, `Interactive authentication required`): return errors.Join(ErrInsufficientPermissions, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`Access denied`, stderr): + case strings.Contains(stderr, `Access denied`): return errors.Join(ErrInsufficientPermissions, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`DBUS_SESSION_BUS_ADDRESS`, stderr): + case strings.Contains(stderr, `DBUS_SESSION_BUS_ADDRESS`): return errors.Join(ErrBusFailure, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`is masked`, stderr): + case strings.Contains(stderr, `is masked`): return errors.Join(ErrMasked, fmt.Errorf("stderr: %s", stderr)) - case strings.Contains(`Failed`, stderr): + case strings.Contains(stderr, `Failed`): return errors.Join(ErrUnspecified, fmt.Errorf("stderr: %s", stderr)) default: return nil