22 lines
645 B
Go
22 lines
645 B
Go
package services
|
|
|
|
import "testing"
|
|
|
|
func TestValidateUnit(t *testing.T) {
|
|
valid := []string{"sshd.service", "getty@tty1.service", "foo.bar:baz-1.service", "a_b.timer"}
|
|
for _, u := range valid {
|
|
if err := validateUnit(u); err != nil {
|
|
t.Errorf("validateUnit(%q) = %v, want nil", u, err)
|
|
}
|
|
}
|
|
|
|
// Empty, flag-injection, and anything with shell/path metacharacters must
|
|
// be rejected before reaching systemctl.
|
|
invalid := []string{"", "-rf", "--now", "a b", "foo;rm -rf /", "a/b", "naughty$()", "x|y"}
|
|
for _, u := range invalid {
|
|
if err := validateUnit(u); err == nil {
|
|
t.Errorf("validateUnit(%q) = nil, want error", u)
|
|
}
|
|
}
|
|
}
|