summaryrefslogtreecommitdiff
path: root/src/test/test-unit-name.c
diff options
context:
space:
mode:
authorAnita Zhang <the.anitazha@gmail.com>2019-10-04 16:03:04 -0700
committerAnita Zhang <the.anitazha@gmail.com>2019-10-07 12:02:12 -0700
commite23d911664b4fd86eb2c24b64233cb9f23cffdd1 (patch)
tree8ab06f0dd7a626ed1ca9603240c37a9ca2e9cf5f /src/test/test-unit-name.c
parent0490b44031f0406ad053e150349666605b22ab15 (diff)
downloadsystemd-e23d911664b4fd86eb2c24b64233cb9f23cffdd1.tar.gz
core: disallow using '-.service' as a service name
-.service.d will become a special top level drop in so don't let it be a usable service name (otherwise the interaction gets complicated).
Diffstat (limited to 'src/test/test-unit-name.c')
-rw-r--r--src/test/test-unit-name.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/test-unit-name.c b/src/test/test-unit-name.c
index 25c649828e..aa072c4ca8 100644
--- a/src/test/test-unit-name.c
+++ b/src/test/test-unit-name.c
@@ -355,6 +355,24 @@ static void test_unit_name_build(void) {
free(t);
}
+static void test_service_unit_name_is_valid(void) {
+ assert_se(service_unit_name_is_valid("foo.service"));
+ assert_se(service_unit_name_is_valid("foo@bar.service"));
+ assert_se(service_unit_name_is_valid("foo@bar@bar.service"));
+ assert_se(service_unit_name_is_valid("--.service"));
+ assert_se(service_unit_name_is_valid(".-.service"));
+ assert_se(service_unit_name_is_valid("-foo-bar.service"));
+ assert_se(service_unit_name_is_valid("-foo-bar-.service"));
+ assert_se(service_unit_name_is_valid("foo-bar-.service"));
+
+ assert_se(!service_unit_name_is_valid("-.service"));
+ assert_se(!service_unit_name_is_valid(""));
+ assert_se(!service_unit_name_is_valid("foo.slice"));
+ assert_se(!service_unit_name_is_valid("@.service"));
+ assert_se(!service_unit_name_is_valid("@bar.service"));
+ assert_se(!service_unit_name_is_valid("-@.service"));
+}
+
static void test_slice_name_is_valid(void) {
assert_se( slice_name_is_valid(SPECIAL_ROOT_SLICE));
assert_se( slice_name_is_valid("foo.slice"));
@@ -840,6 +858,7 @@ int main(int argc, char* argv[]) {
test_unit_prefix_is_valid();
test_unit_name_change_suffix();
test_unit_name_build();
+ test_service_unit_name_is_valid();
test_slice_name_is_valid();
test_build_subslice();
test_build_parent_slice();