LCOV - code coverage report
Current view: top level - test - test-unit-name.c (source / functions) Hit Total Coverage
Test: systemd_full.info Lines: 704 706 99.7 %
Date: 2019-08-23 13:36:53 Functions: 31 31 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 313 716 43.7 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: LGPL-2.1+ */
       2                 :            : 
       3                 :            : #include <pwd.h>
       4                 :            : #include <stdio.h>
       5                 :            : #include <stdlib.h>
       6                 :            : #include <string.h>
       7                 :            : 
       8                 :            : #include "alloc-util.h"
       9                 :            : #include "all-units.h"
      10                 :            : #include "glob-util.h"
      11                 :            : #include "format-util.h"
      12                 :            : #include "hostname-util.h"
      13                 :            : #include "macro.h"
      14                 :            : #include "manager.h"
      15                 :            : #include "path-util.h"
      16                 :            : #include "rm-rf.h"
      17                 :            : #include "special.h"
      18                 :            : #include "specifier.h"
      19                 :            : #include "string-util.h"
      20                 :            : #include "test-helper.h"
      21                 :            : #include "tests.h"
      22                 :            : #include "unit-def.h"
      23                 :            : #include "unit-name.h"
      24                 :            : #include "unit-printf.h"
      25                 :            : #include "unit.h"
      26                 :            : #include "user-util.h"
      27                 :            : #include "util.h"
      28                 :            : 
      29                 :          4 : static void test_unit_name_is_valid(void) {
      30         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo.service", UNIT_NAME_ANY));
      31         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo.service", UNIT_NAME_PLAIN));
      32         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo.service", UNIT_NAME_INSTANCE));
      33         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo.service", UNIT_NAME_TEMPLATE));
      34         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo.service", UNIT_NAME_INSTANCE|UNIT_NAME_TEMPLATE));
      35                 :            : 
      36         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar.service", UNIT_NAME_ANY));
      37         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@bar.service", UNIT_NAME_PLAIN));
      38         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar.service", UNIT_NAME_INSTANCE));
      39         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@bar.service", UNIT_NAME_TEMPLATE));
      40         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar.service", UNIT_NAME_INSTANCE|UNIT_NAME_TEMPLATE));
      41                 :            : 
      42         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar@bar.service", UNIT_NAME_ANY));
      43         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@bar@bar.service", UNIT_NAME_PLAIN));
      44         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar@bar.service", UNIT_NAME_INSTANCE));
      45         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@bar@bar.service", UNIT_NAME_TEMPLATE));
      46         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@bar@bar.service", UNIT_NAME_INSTANCE|UNIT_NAME_TEMPLATE));
      47                 :            : 
      48         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@.service", UNIT_NAME_ANY));
      49         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@.service", UNIT_NAME_PLAIN));
      50         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo@.service", UNIT_NAME_INSTANCE));
      51         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@.service", UNIT_NAME_TEMPLATE));
      52         [ -  + ]:          4 :         assert_se( unit_name_is_valid("foo@.service", UNIT_NAME_INSTANCE|UNIT_NAME_TEMPLATE));
      53                 :            : 
      54         [ -  + ]:          4 :         assert_se(!unit_name_is_valid(".service", UNIT_NAME_ANY));
      55         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("", UNIT_NAME_ANY));
      56         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("foo.waldo", UNIT_NAME_ANY));
      57         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("@.service", UNIT_NAME_ANY));
      58         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("@piep.service", UNIT_NAME_ANY));
      59                 :            : 
      60         [ -  + ]:          4 :         assert_se( unit_name_is_valid("user@1000.slice", UNIT_NAME_ANY));
      61         [ -  + ]:          4 :         assert_se( unit_name_is_valid("user@1000.slice", UNIT_NAME_INSTANCE));
      62         [ -  + ]:          4 :         assert_se(!unit_name_is_valid("user@1000.slice", UNIT_NAME_TEMPLATE));
      63                 :          4 : }
      64                 :            : 
      65                 :         32 : static void test_unit_name_replace_instance_one(const char *pattern, const char *repl, const char *expected, int ret) {
      66                 :         32 :         _cleanup_free_ char *t = NULL;
      67         [ -  + ]:         32 :         assert_se(unit_name_replace_instance(pattern, repl, &t) == ret);
      68                 :         32 :         puts(strna(t));
      69         [ -  + ]:         32 :         assert_se(streq_ptr(t, expected));
      70                 :         32 : }
      71                 :            : 
      72                 :          4 : static void test_unit_name_replace_instance(void) {
      73                 :          4 :         puts("-------------------------------------------------");
      74                 :          4 :         test_unit_name_replace_instance_one("foo@.service", "waldo", "foo@waldo.service", 0);
      75                 :          4 :         test_unit_name_replace_instance_one("foo@xyz.service", "waldo", "foo@waldo.service", 0);
      76                 :          4 :         test_unit_name_replace_instance_one("xyz", "waldo", NULL, -EINVAL);
      77                 :          4 :         test_unit_name_replace_instance_one("", "waldo", NULL, -EINVAL);
      78                 :          4 :         test_unit_name_replace_instance_one("foo.service", "waldo", NULL, -EINVAL);
      79                 :          4 :         test_unit_name_replace_instance_one(".service", "waldo", NULL, -EINVAL);
      80                 :          4 :         test_unit_name_replace_instance_one("foo@", "waldo", NULL, -EINVAL);
      81                 :          4 :         test_unit_name_replace_instance_one("@bar", "waldo", NULL, -EINVAL);
      82                 :          4 : }
      83                 :            : 
      84                 :         32 : static void test_unit_name_from_path_one(const char *path, const char *suffix, const char *expected, int ret) {
      85                 :         32 :         _cleanup_free_ char *t = NULL;
      86                 :            : 
      87         [ -  + ]:         32 :         assert_se(unit_name_from_path(path, suffix, &t) == ret);
      88                 :         32 :         puts(strna(t));
      89         [ -  + ]:         32 :         assert_se(streq_ptr(t, expected));
      90                 :            : 
      91         [ +  + ]:         32 :         if (t) {
      92                 :         24 :                 _cleanup_free_ char *k = NULL;
      93         [ -  + ]:         24 :                 assert_se(unit_name_to_path(t, &k) == 0);
      94                 :         24 :                 puts(strna(k));
      95         [ -  + ]:         24 :                 assert_se(path_equal(k, empty_to_root(path)));
      96                 :            :         }
      97                 :         32 : }
      98                 :            : 
      99                 :          4 : static void test_unit_name_from_path(void) {
     100                 :          4 :         puts("-------------------------------------------------");
     101                 :          4 :         test_unit_name_from_path_one("/waldo", ".mount", "waldo.mount", 0);
     102                 :          4 :         test_unit_name_from_path_one("/waldo/quuix", ".mount", "waldo-quuix.mount", 0);
     103                 :          4 :         test_unit_name_from_path_one("/waldo/quuix/", ".mount", "waldo-quuix.mount", 0);
     104                 :          4 :         test_unit_name_from_path_one("", ".mount", "-.mount", 0);
     105                 :          4 :         test_unit_name_from_path_one("/", ".mount", "-.mount", 0);
     106                 :          4 :         test_unit_name_from_path_one("///", ".mount", "-.mount", 0);
     107                 :          4 :         test_unit_name_from_path_one("/foo/../bar", ".mount", NULL, -EINVAL);
     108                 :          4 :         test_unit_name_from_path_one("/foo/./bar", ".mount", NULL, -EINVAL);
     109                 :          4 : }
     110                 :            : 
     111                 :         32 : static void test_unit_name_from_path_instance_one(const char *pattern, const char *path, const char *suffix, const char *expected, int ret) {
     112                 :         32 :         _cleanup_free_ char *t = NULL;
     113                 :            : 
     114         [ -  + ]:         32 :         assert_se(unit_name_from_path_instance(pattern, path, suffix, &t) == ret);
     115                 :         32 :         puts(strna(t));
     116         [ -  + ]:         32 :         assert_se(streq_ptr(t, expected));
     117                 :            : 
     118         [ +  + ]:         32 :         if (t) {
     119                 :         24 :                 _cleanup_free_ char *k = NULL, *v = NULL;
     120                 :            : 
     121         [ -  + ]:         24 :                 assert_se(unit_name_to_instance(t, &k) > 0);
     122         [ -  + ]:         24 :                 assert_se(unit_name_path_unescape(k, &v) == 0);
     123         [ -  + ]:         24 :                 assert_se(path_equal(v, empty_to_root(path)));
     124                 :            :         }
     125                 :         32 : }
     126                 :            : 
     127                 :          4 : static void test_unit_name_from_path_instance(void) {
     128                 :          4 :         puts("-------------------------------------------------");
     129                 :            : 
     130                 :          4 :         test_unit_name_from_path_instance_one("waldo", "/waldo", ".mount", "waldo@waldo.mount", 0);
     131                 :          4 :         test_unit_name_from_path_instance_one("waldo", "/waldo////quuix////", ".mount", "waldo@waldo-quuix.mount", 0);
     132                 :          4 :         test_unit_name_from_path_instance_one("waldo", "/", ".mount", "waldo@-.mount", 0);
     133                 :          4 :         test_unit_name_from_path_instance_one("waldo", "", ".mount", "waldo@-.mount", 0);
     134                 :          4 :         test_unit_name_from_path_instance_one("waldo", "///", ".mount", "waldo@-.mount", 0);
     135                 :          4 :         test_unit_name_from_path_instance_one("waldo", "..", ".mount", NULL, -EINVAL);
     136                 :          4 :         test_unit_name_from_path_instance_one("waldo", "/foo", ".waldi", NULL, -EINVAL);
     137                 :          4 :         test_unit_name_from_path_instance_one("wa--ldo", "/--", ".mount", "wa--ldo@\\x2d\\x2d.mount", 0);
     138                 :          4 : }
     139                 :            : 
     140                 :         32 : static void test_unit_name_to_path_one(const char *unit, const char *path, int ret) {
     141                 :         32 :         _cleanup_free_ char *p = NULL;
     142                 :            : 
     143         [ -  + ]:         32 :         assert_se(unit_name_to_path(unit, &p) == ret);
     144         [ -  + ]:         32 :         assert_se(streq_ptr(path, p));
     145                 :         32 : }
     146                 :            : 
     147                 :          4 : static void test_unit_name_to_path(void) {
     148                 :          4 :         test_unit_name_to_path_one("home.mount", "/home", 0);
     149                 :          4 :         test_unit_name_to_path_one("home-lennart.mount", "/home/lennart", 0);
     150                 :          4 :         test_unit_name_to_path_one("home-lennart-.mount", NULL, -EINVAL);
     151                 :          4 :         test_unit_name_to_path_one("-home-lennart.mount", NULL, -EINVAL);
     152                 :          4 :         test_unit_name_to_path_one("-home--lennart.mount", NULL, -EINVAL);
     153                 :          4 :         test_unit_name_to_path_one("home-..-lennart.mount", NULL, -EINVAL);
     154                 :          4 :         test_unit_name_to_path_one("", NULL, -EINVAL);
     155                 :          4 :         test_unit_name_to_path_one("home/foo", NULL, -EINVAL);
     156                 :          4 : }
     157                 :            : 
     158                 :         52 : static void test_unit_name_mangle_one(bool allow_globs, const char *pattern, const char *expect, int ret) {
     159                 :         52 :         _cleanup_free_ char *t = NULL;
     160                 :            : 
     161         [ -  + ]:         52 :         assert_se(unit_name_mangle(pattern, (allow_globs * UNIT_NAME_MANGLE_GLOB) | UNIT_NAME_MANGLE_WARN, &t) == ret);
     162                 :         52 :         puts(strna(t));
     163         [ -  + ]:         52 :         assert_se(streq_ptr(t, expect));
     164                 :            : 
     165         [ +  + ]:         52 :         if (t) {
     166                 :         48 :                 _cleanup_free_ char *k = NULL;
     167                 :            : 
     168   [ +  +  +  -  :         48 :                 assert_se(unit_name_is_valid(t, UNIT_NAME_ANY) ||
             -  +  -  + ]
     169                 :            :                           (allow_globs && string_is_glob(t)));
     170                 :            : 
     171         [ -  + ]:         48 :                 assert_se(unit_name_mangle(t, (allow_globs * UNIT_NAME_MANGLE_GLOB) | UNIT_NAME_MANGLE_WARN, &k) == 0);
     172         [ -  + ]:         48 :                 assert_se(streq_ptr(t, k));
     173                 :            :         }
     174                 :         52 : }
     175                 :            : 
     176                 :          4 : static void test_unit_name_mangle(void) {
     177                 :          4 :         puts("-------------------------------------------------");
     178                 :          4 :         test_unit_name_mangle_one(false, "foo.service", "foo.service", 0);
     179                 :          4 :         test_unit_name_mangle_one(false, "/home", "home.mount", 1);
     180                 :          4 :         test_unit_name_mangle_one(false, "/dev/sda", "dev-sda.device", 1);
     181                 :          4 :         test_unit_name_mangle_one(false, "üxknürz.service", "\\xc3\\xbcxkn\\xc3\\xbcrz.service", 1);
     182                 :          4 :         test_unit_name_mangle_one(false, "foobar-meh...waldi.service", "foobar-meh...waldi.service", 0);
     183                 :          4 :         test_unit_name_mangle_one(false, "_____####----.....service", "_____\\x23\\x23\\x23\\x23----.....service", 1);
     184                 :          4 :         test_unit_name_mangle_one(false, "_____##@;;;,,,##----.....service", "_____\\x23\\x23@\\x3b\\x3b\\x3b\\x2c\\x2c\\x2c\\x23\\x23----.....service", 1);
     185                 :          4 :         test_unit_name_mangle_one(false, "xxx@@@@/////\\\\\\\\\\yyy.service", "xxx@@@@-----\\\\\\\\\\yyy.service", 1);
     186                 :          4 :         test_unit_name_mangle_one(false, "", NULL, -EINVAL);
     187                 :            : 
     188                 :          4 :         test_unit_name_mangle_one(true, "foo.service", "foo.service", 0);
     189                 :          4 :         test_unit_name_mangle_one(true, "foo", "foo.service", 1);
     190                 :          4 :         test_unit_name_mangle_one(true, "foo*", "foo*", 0);
     191                 :          4 :         test_unit_name_mangle_one(true, "ü*", "\\xc3\\xbc*", 1);
     192                 :          4 : }
     193                 :            : 
     194                 :          4 : static int test_unit_printf(void) {
     195                 :          4 :         _cleanup_free_ char *mid = NULL, *bid = NULL, *host = NULL, *gid = NULL, *group = NULL, *uid = NULL, *user = NULL, *shell = NULL, *home = NULL;
     196                 :          4 :         _cleanup_(manager_freep) Manager *m = NULL;
     197                 :            :         Unit *u;
     198                 :            :         int r;
     199                 :            : 
     200   [ +  -  -  + ]:          4 :         assert_se(specifier_machine_id('m', NULL, NULL, &mid) >= 0 && mid);
     201   [ +  -  -  + ]:          4 :         assert_se(specifier_boot_id('b', NULL, NULL, &bid) >= 0 && bid);
     202         [ -  + ]:          4 :         assert_se(host = gethostname_malloc());
     203         [ -  + ]:          4 :         assert_se(user = uid_to_name(getuid()));
     204         [ -  + ]:          4 :         assert_se(group = gid_to_name(getgid()));
     205         [ -  + ]:          4 :         assert_se(asprintf(&uid, UID_FMT, getuid()));
     206         [ -  + ]:          4 :         assert_se(asprintf(&gid, UID_FMT, getgid()));
     207         [ -  + ]:          4 :         assert_se(get_home_dir(&home) >= 0);
     208         [ -  + ]:          4 :         assert_se(get_shell(&shell) >= 0);
     209                 :            : 
     210                 :          4 :         r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_MINIMAL, &m);
     211   [ -  +  -  + ]:          4 :         if (MANAGER_SKIP_TEST(r))
     212                 :          0 :                 return log_tests_skipped_errno(r, "manager_new");
     213         [ -  + ]:          4 :         assert_se(r == 0);
     214                 :            : 
     215                 :            : #define expect(unit, pattern, expected)                                 \
     216                 :            :         {                                                               \
     217                 :            :                 char *e;                                                \
     218                 :            :                 _cleanup_free_ char *t = NULL;                          \
     219                 :            :                 assert_se(unit_full_printf(unit, pattern, &t) >= 0);    \
     220                 :            :                 printf("result: %s\nexpect: %s\n", t, expected);        \
     221                 :            :                 if ((e = endswith(expected, "*")))                      \
     222                 :            :                         assert_se(strncmp(t, e, e-expected));              \
     223                 :            :                 else                                                    \
     224                 :            :                         assert_se(streq(t, expected));                     \
     225                 :            :         }
     226                 :            : 
     227         [ -  + ]:          4 :         assert_se(u = unit_new(m, sizeof(Service)));
     228         [ -  + ]:          4 :         assert_se(unit_add_name(u, "blah.service") == 0);
     229         [ -  + ]:          4 :         assert_se(unit_add_name(u, "blah.service") == 0);
     230                 :            : 
     231                 :            :         /* general tests */
     232   [ -  +  -  +  :          4 :         expect(u, "%%", "%");
             #  #  -  + ]
     233   [ -  +  -  +  :          4 :         expect(u, "%%s", "%s");
             #  #  -  + ]
     234   [ -  +  -  +  :          4 :         expect(u, "%,", "%,");
             #  #  -  + ]
     235   [ -  +  -  +  :          4 :         expect(u, "%", "%");
             #  #  -  + ]
     236                 :            : 
     237                 :            :         /* normal unit */
     238   [ -  +  -  +  :          4 :         expect(u, "%n", "blah.service");
             #  #  -  + ]
     239   [ -  +  -  +  :          4 :         expect(u, "%f", "/blah");
             #  #  -  + ]
     240   [ -  +  -  +  :          4 :         expect(u, "%N", "blah");
             #  #  -  + ]
     241   [ -  +  -  +  :          4 :         expect(u, "%p", "blah");
             #  #  -  + ]
     242   [ -  +  -  +  :          4 :         expect(u, "%P", "blah");
             #  #  -  + ]
     243   [ -  +  -  +  :          4 :         expect(u, "%i", "");
             #  #  -  + ]
     244   [ -  +  -  +  :          4 :         expect(u, "%I", "");
             #  #  -  + ]
     245   [ -  +  -  +  :          4 :         expect(u, "%j", "blah");
             #  #  -  + ]
     246   [ -  +  -  +  :          4 :         expect(u, "%J", "blah");
             #  #  -  + ]
     247   [ -  +  -  +  :          4 :         expect(u, "%g", group);
             #  #  -  + ]
     248   [ -  +  -  +  :          4 :         expect(u, "%G", gid);
             #  #  -  + ]
     249   [ -  +  -  +  :          4 :         expect(u, "%u", user);
             #  #  -  + ]
     250   [ -  +  -  +  :          4 :         expect(u, "%U", uid);
             #  #  -  + ]
     251   [ -  +  -  +  :          4 :         expect(u, "%h", home);
             #  #  -  + ]
     252   [ -  +  -  +  :          4 :         expect(u, "%m", mid);
             #  #  -  + ]
     253   [ -  +  -  +  :          4 :         expect(u, "%b", bid);
             #  #  -  + ]
     254   [ -  +  -  +  :          4 :         expect(u, "%H", host);
             #  #  -  + ]
     255   [ -  +  +  -  :          4 :         expect(u, "%t", "/run/user/*");
             -  +  #  # ]
     256                 :            : 
     257                 :            :         /* templated */
     258         [ -  + ]:          4 :         assert_se(u = unit_new(m, sizeof(Service)));
     259         [ -  + ]:          4 :         assert_se(unit_add_name(u, "blah@foo-foo.service") == 0);
     260         [ -  + ]:          4 :         assert_se(unit_add_name(u, "blah@foo-foo.service") == 0);
     261                 :            : 
     262   [ -  +  -  +  :          4 :         expect(u, "%n", "blah@foo-foo.service");
             #  #  -  + ]
     263   [ -  +  -  +  :          4 :         expect(u, "%N", "blah@foo-foo");
             #  #  -  + ]
     264   [ -  +  -  +  :          4 :         expect(u, "%f", "/foo/foo");
             #  #  -  + ]
     265   [ -  +  -  +  :          4 :         expect(u, "%p", "blah");
             #  #  -  + ]
     266   [ -  +  -  +  :          4 :         expect(u, "%P", "blah");
             #  #  -  + ]
     267   [ -  +  -  +  :          4 :         expect(u, "%i", "foo-foo");
             #  #  -  + ]
     268   [ -  +  -  +  :          4 :         expect(u, "%I", "foo/foo");
             #  #  -  + ]
     269   [ -  +  -  +  :          4 :         expect(u, "%j", "blah");
             #  #  -  + ]
     270   [ -  +  -  +  :          4 :         expect(u, "%J", "blah");
             #  #  -  + ]
     271   [ -  +  -  +  :          4 :         expect(u, "%g", group);
             #  #  -  + ]
     272   [ -  +  -  +  :          4 :         expect(u, "%G", gid);
             #  #  -  + ]
     273   [ -  +  -  +  :          4 :         expect(u, "%u", user);
             #  #  -  + ]
     274   [ -  +  -  +  :          4 :         expect(u, "%U", uid);
             #  #  -  + ]
     275   [ -  +  -  +  :          4 :         expect(u, "%h", home);
             #  #  -  + ]
     276   [ -  +  -  +  :          4 :         expect(u, "%m", mid);
             #  #  -  + ]
     277   [ -  +  -  +  :          4 :         expect(u, "%b", bid);
             #  #  -  + ]
     278   [ -  +  -  +  :          4 :         expect(u, "%H", host);
             #  #  -  + ]
     279   [ -  +  +  -  :          4 :         expect(u, "%t", "/run/user/*");
             -  +  #  # ]
     280                 :            : 
     281                 :            :         /* templated with components */
     282         [ -  + ]:          4 :         assert_se(u = unit_new(m, sizeof(Slice)));
     283         [ -  + ]:          4 :         assert_se(unit_add_name(u, "blah-blah\\x2d.slice") == 0);
     284                 :            : 
     285   [ -  +  -  +  :          4 :         expect(u, "%n", "blah-blah\\x2d.slice");
             #  #  -  + ]
     286   [ -  +  -  +  :          4 :         expect(u, "%N", "blah-blah\\x2d");
             #  #  -  + ]
     287   [ -  +  -  +  :          4 :         expect(u, "%f", "/blah/blah-");
             #  #  -  + ]
     288   [ -  +  -  +  :          4 :         expect(u, "%p", "blah-blah\\x2d");
             #  #  -  + ]
     289   [ -  +  -  +  :          4 :         expect(u, "%P", "blah/blah-");
             #  #  -  + ]
     290   [ -  +  -  +  :          4 :         expect(u, "%i", "");
             #  #  -  + ]
     291   [ -  +  -  +  :          4 :         expect(u, "%I", "");
             #  #  -  + ]
     292   [ -  +  -  +  :          4 :         expect(u, "%j", "blah\\x2d");
             #  #  -  + ]
     293   [ -  +  -  +  :          4 :         expect(u, "%J", "blah-");
             #  #  -  + ]
     294                 :            : 
     295                 :            : #undef expect
     296                 :            : 
     297                 :          4 :         return 0;
     298                 :            : }
     299                 :            : 
     300                 :          4 : static void test_unit_instance_is_valid(void) {
     301         [ -  + ]:          4 :         assert_se(unit_instance_is_valid("fooBar"));
     302         [ -  + ]:          4 :         assert_se(unit_instance_is_valid("foo-bar"));
     303         [ -  + ]:          4 :         assert_se(unit_instance_is_valid("foo.stUff"));
     304         [ -  + ]:          4 :         assert_se(unit_instance_is_valid("fOo123.stuff"));
     305         [ -  + ]:          4 :         assert_se(unit_instance_is_valid("@f_oo123.Stuff"));
     306                 :            : 
     307         [ -  + ]:          4 :         assert_se(!unit_instance_is_valid("$¢£"));
     308         [ -  + ]:          4 :         assert_se(!unit_instance_is_valid(""));
     309         [ -  + ]:          4 :         assert_se(!unit_instance_is_valid("foo bar"));
     310         [ -  + ]:          4 :         assert_se(!unit_instance_is_valid("foo/bar"));
     311                 :          4 : }
     312                 :            : 
     313                 :          4 : static void test_unit_prefix_is_valid(void) {
     314         [ -  + ]:          4 :         assert_se(unit_prefix_is_valid("fooBar"));
     315         [ -  + ]:          4 :         assert_se(unit_prefix_is_valid("foo-bar"));
     316         [ -  + ]:          4 :         assert_se(unit_prefix_is_valid("foo.stUff"));
     317         [ -  + ]:          4 :         assert_se(unit_prefix_is_valid("fOo123.stuff"));
     318         [ -  + ]:          4 :         assert_se(unit_prefix_is_valid("foo123.Stuff"));
     319                 :            : 
     320         [ -  + ]:          4 :         assert_se(!unit_prefix_is_valid("$¢£"));
     321         [ -  + ]:          4 :         assert_se(!unit_prefix_is_valid(""));
     322         [ -  + ]:          4 :         assert_se(!unit_prefix_is_valid("foo bar"));
     323         [ -  + ]:          4 :         assert_se(!unit_prefix_is_valid("foo/bar"));
     324         [ -  + ]:          4 :         assert_se(!unit_prefix_is_valid("@foo-bar"));
     325                 :          4 : }
     326                 :            : 
     327                 :          4 : static void test_unit_name_change_suffix(void) {
     328                 :            :         char *t;
     329                 :            : 
     330         [ -  + ]:          4 :         assert_se(unit_name_change_suffix("foo.mount", ".service", &t) == 0);
     331         [ -  + ]:          4 :         assert_se(streq(t, "foo.service"));
     332                 :          4 :         free(t);
     333                 :            : 
     334         [ -  + ]:          4 :         assert_se(unit_name_change_suffix("foo@stuff.service", ".socket", &t) == 0);
     335         [ -  + ]:          4 :         assert_se(streq(t, "foo@stuff.socket"));
     336                 :          4 :         free(t);
     337                 :          4 : }
     338                 :            : 
     339                 :          4 : static void test_unit_name_build(void) {
     340                 :            :         char *t;
     341                 :            : 
     342         [ -  + ]:          4 :         assert_se(unit_name_build("foo", "bar", ".service", &t) == 0);
     343         [ -  + ]:          4 :         assert_se(streq(t, "foo@bar.service"));
     344                 :          4 :         free(t);
     345                 :            : 
     346         [ -  + ]:          4 :         assert_se(unit_name_build("fo0-stUff_b", "bar", ".mount", &t) == 0);
     347         [ -  + ]:          4 :         assert_se(streq(t, "fo0-stUff_b@bar.mount"));
     348                 :          4 :         free(t);
     349                 :            : 
     350         [ -  + ]:          4 :         assert_se(unit_name_build("foo", NULL, ".service", &t) == 0);
     351         [ -  + ]:          4 :         assert_se(streq(t, "foo.service"));
     352                 :          4 :         free(t);
     353                 :          4 : }
     354                 :            : 
     355                 :          4 : static void test_slice_name_is_valid(void) {
     356         [ -  + ]:          4 :         assert_se( slice_name_is_valid(SPECIAL_ROOT_SLICE));
     357         [ -  + ]:          4 :         assert_se( slice_name_is_valid("foo.slice"));
     358         [ -  + ]:          4 :         assert_se( slice_name_is_valid("foo-bar.slice"));
     359         [ -  + ]:          4 :         assert_se( slice_name_is_valid("foo-bar-baz.slice"));
     360         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("-foo-bar-baz.slice"));
     361         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar-baz-.slice"));
     362         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("-foo-bar-baz-.slice"));
     363         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar--baz.slice"));
     364         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo--bar--baz.slice"));
     365         [ -  + ]:          4 :         assert_se(!slice_name_is_valid(".slice"));
     366         [ -  + ]:          4 :         assert_se(!slice_name_is_valid(""));
     367         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo.service"));
     368                 :            : 
     369         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo@.slice"));
     370         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo@bar.slice"));
     371         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar@baz.slice"));
     372         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo@bar@baz.slice"));
     373         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo@bar-baz.slice"));
     374         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("-foo-bar-baz@.slice"));
     375         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar-baz@-.slice"));
     376         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar-baz@a--b.slice"));
     377         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("-foo-bar-baz@-.slice"));
     378         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo-bar--baz@.slice"));
     379         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo--bar--baz@.slice"));
     380         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("@.slice"));
     381         [ -  + ]:          4 :         assert_se(!slice_name_is_valid("foo@bar.service"));
     382                 :          4 : }
     383                 :            : 
     384                 :          4 : static void test_build_subslice(void) {
     385                 :            :         char *a;
     386                 :            :         char *b;
     387                 :            : 
     388         [ -  + ]:          4 :         assert_se(slice_build_subslice(SPECIAL_ROOT_SLICE, "foo", &a) >= 0);
     389         [ -  + ]:          4 :         assert_se(slice_build_subslice(a, "bar", &b) >= 0);
     390                 :          4 :         free(a);
     391         [ -  + ]:          4 :         assert_se(slice_build_subslice(b, "barfoo", &a) >= 0);
     392                 :          4 :         free(b);
     393         [ -  + ]:          4 :         assert_se(slice_build_subslice(a, "foobar", &b) >= 0);
     394                 :          4 :         free(a);
     395         [ -  + ]:          4 :         assert_se(streq(b, "foo-bar-barfoo-foobar.slice"));
     396                 :          4 :         free(b);
     397                 :            : 
     398         [ -  + ]:          4 :         assert_se(slice_build_subslice("foo.service", "bar", &a) < 0);
     399         [ -  + ]:          4 :         assert_se(slice_build_subslice("foo", "bar", &a) < 0);
     400                 :          4 : }
     401                 :            : 
     402                 :         64 : static void test_build_parent_slice_one(const char *name, const char *expect, int ret) {
     403                 :         64 :         _cleanup_free_ char *s = NULL;
     404                 :            : 
     405         [ -  + ]:         64 :         assert_se(slice_build_parent_slice(name, &s) == ret);
     406         [ -  + ]:         64 :         assert_se(streq_ptr(s, expect));
     407                 :         64 : }
     408                 :            : 
     409                 :          4 : static void test_build_parent_slice(void) {
     410                 :          4 :         test_build_parent_slice_one(SPECIAL_ROOT_SLICE, NULL, 0);
     411                 :          4 :         test_build_parent_slice_one("foo.slice", SPECIAL_ROOT_SLICE, 1);
     412                 :          4 :         test_build_parent_slice_one("foo-bar.slice", "foo.slice", 1);
     413                 :          4 :         test_build_parent_slice_one("foo-bar-baz.slice", "foo-bar.slice", 1);
     414                 :          4 :         test_build_parent_slice_one("foo-bar--baz.slice", NULL, -EINVAL);
     415                 :          4 :         test_build_parent_slice_one("-foo-bar.slice", NULL, -EINVAL);
     416                 :          4 :         test_build_parent_slice_one("foo-bar-.slice", NULL, -EINVAL);
     417                 :          4 :         test_build_parent_slice_one("foo-bar.service", NULL, -EINVAL);
     418                 :          4 :         test_build_parent_slice_one(".slice", NULL, -EINVAL);
     419                 :          4 :         test_build_parent_slice_one("foo@bar.slice", NULL, -EINVAL);
     420                 :          4 :         test_build_parent_slice_one("foo-bar@baz.slice", NULL, -EINVAL);
     421                 :          4 :         test_build_parent_slice_one("foo-bar--@baz.slice", NULL, -EINVAL);
     422                 :          4 :         test_build_parent_slice_one("-foo-bar@bar.slice", NULL, -EINVAL);
     423                 :          4 :         test_build_parent_slice_one("foo-bar@-.slice", NULL, -EINVAL);
     424                 :          4 :         test_build_parent_slice_one("foo@bar.service", NULL, -EINVAL);
     425                 :          4 :         test_build_parent_slice_one("@.slice", NULL, -EINVAL);
     426                 :          4 : }
     427                 :            : 
     428                 :          4 : static void test_unit_name_to_instance(void) {
     429                 :            :         char *instance;
     430                 :            :         int r;
     431                 :            : 
     432                 :          4 :         r = unit_name_to_instance("foo@bar.service", &instance);
     433         [ -  + ]:          4 :         assert_se(r == UNIT_NAME_INSTANCE);
     434         [ -  + ]:          4 :         assert_se(streq(instance, "bar"));
     435                 :          4 :         free(instance);
     436                 :            : 
     437                 :          4 :         r = unit_name_to_instance("foo@.service", &instance);
     438         [ -  + ]:          4 :         assert_se(r == UNIT_NAME_TEMPLATE);
     439         [ -  + ]:          4 :         assert_se(streq(instance, ""));
     440                 :          4 :         free(instance);
     441                 :            : 
     442                 :          4 :         r = unit_name_to_instance("fo0-stUff_b@b.service", &instance);
     443         [ -  + ]:          4 :         assert_se(r == UNIT_NAME_INSTANCE);
     444         [ -  + ]:          4 :         assert_se(streq(instance, "b"));
     445                 :          4 :         free(instance);
     446                 :            : 
     447                 :          4 :         r = unit_name_to_instance("foo.service", &instance);
     448         [ -  + ]:          4 :         assert_se(r == UNIT_NAME_PLAIN);
     449         [ -  + ]:          4 :         assert_se(!instance);
     450                 :            : 
     451                 :          4 :         r = unit_name_to_instance("fooj@unk", &instance);
     452         [ -  + ]:          4 :         assert_se(r < 0);
     453         [ -  + ]:          4 :         assert_se(!instance);
     454                 :            : 
     455                 :          4 :         r = unit_name_to_instance("foo@", &instance);
     456         [ -  + ]:          4 :         assert_se(r < 0);
     457         [ -  + ]:          4 :         assert_se(!instance);
     458                 :          4 : }
     459                 :            : 
     460                 :          4 : static void test_unit_name_escape(void) {
     461                 :          4 :         _cleanup_free_ char *r;
     462                 :            : 
     463                 :          4 :         r = unit_name_escape("ab+-c.a/bc@foo.service");
     464         [ -  + ]:          4 :         assert_se(r);
     465         [ -  + ]:          4 :         assert_se(streq(r, "ab\\x2b\\x2dc.a-bc\\x40foo.service"));
     466                 :          4 : }
     467                 :            : 
     468                 :          8 : static void test_u_n_t_one(const char *name, const char *expected, int ret) {
     469                 :          8 :         _cleanup_free_ char *f = NULL;
     470                 :            : 
     471         [ -  + ]:          8 :         assert_se(unit_name_template(name, &f) == ret);
     472                 :          8 :         printf("got: %s, expected: %s\n", strna(f), strna(expected));
     473         [ -  + ]:          8 :         assert_se(streq_ptr(f, expected));
     474                 :          8 : }
     475                 :            : 
     476                 :          4 : static void test_unit_name_template(void) {
     477                 :          4 :         test_u_n_t_one("foo@bar.service", "foo@.service", 0);
     478                 :          4 :         test_u_n_t_one("foo.mount", NULL, -EINVAL);
     479                 :          4 : }
     480                 :            : 
     481                 :         48 : static void test_unit_name_path_unescape_one(const char *name, const char *path, int ret) {
     482                 :         48 :         _cleanup_free_ char *p = NULL;
     483                 :            : 
     484         [ -  + ]:         48 :         assert_se(unit_name_path_unescape(name, &p) == ret);
     485         [ -  + ]:         48 :         assert_se(streq_ptr(path, p));
     486                 :         48 : }
     487                 :            : 
     488                 :          4 : static void test_unit_name_path_unescape(void) {
     489                 :            : 
     490                 :          4 :         test_unit_name_path_unescape_one("foo", "/foo", 0);
     491                 :          4 :         test_unit_name_path_unescape_one("foo-bar", "/foo/bar", 0);
     492                 :          4 :         test_unit_name_path_unescape_one("foo-.bar", "/foo/.bar", 0);
     493                 :          4 :         test_unit_name_path_unescape_one("foo-bar-baz", "/foo/bar/baz", 0);
     494                 :          4 :         test_unit_name_path_unescape_one("-", "/", 0);
     495                 :          4 :         test_unit_name_path_unescape_one("--", NULL, -EINVAL);
     496                 :          4 :         test_unit_name_path_unescape_one("-foo-bar", NULL, -EINVAL);
     497                 :          4 :         test_unit_name_path_unescape_one("foo--bar", NULL, -EINVAL);
     498                 :          4 :         test_unit_name_path_unescape_one("foo-bar-", NULL, -EINVAL);
     499                 :          4 :         test_unit_name_path_unescape_one(".-bar", NULL, -EINVAL);
     500                 :          4 :         test_unit_name_path_unescape_one("foo-..", NULL, -EINVAL);
     501                 :          4 :         test_unit_name_path_unescape_one("", NULL, -EINVAL);
     502                 :          4 : }
     503                 :            : 
     504                 :         40 : static void test_unit_name_to_prefix_one(const char *input, int ret, const char *output) {
     505                 :         40 :         _cleanup_free_ char *k = NULL;
     506                 :            : 
     507         [ -  + ]:         40 :         assert_se(unit_name_to_prefix(input, &k) == ret);
     508         [ -  + ]:         40 :         assert_se(streq_ptr(k, output));
     509                 :         40 : }
     510                 :            : 
     511                 :          4 : static void test_unit_name_to_prefix(void) {
     512                 :          4 :         test_unit_name_to_prefix_one("foobar.service", 0, "foobar");
     513                 :          4 :         test_unit_name_to_prefix_one("", -EINVAL, NULL);
     514                 :          4 :         test_unit_name_to_prefix_one("foobar", -EINVAL, NULL);
     515                 :          4 :         test_unit_name_to_prefix_one(".service", -EINVAL, NULL);
     516                 :          4 :         test_unit_name_to_prefix_one("quux.quux", -EINVAL, NULL);
     517                 :          4 :         test_unit_name_to_prefix_one("quux.mount", 0, "quux");
     518                 :          4 :         test_unit_name_to_prefix_one("quux-quux.mount", 0, "quux-quux");
     519                 :          4 :         test_unit_name_to_prefix_one("quux@bar.mount", 0, "quux");
     520                 :          4 :         test_unit_name_to_prefix_one("quux-@.mount", 0, "quux-");
     521                 :          4 :         test_unit_name_to_prefix_one("@.mount", -EINVAL, NULL);
     522                 :          4 : }
     523                 :            : 
     524                 :       1132 : static void test_unit_name_from_dbus_path_one(const char *input, int ret, const char *output) {
     525                 :       1132 :         _cleanup_free_ char *k = NULL;
     526                 :            : 
     527         [ -  + ]:       1132 :         assert_se(unit_name_from_dbus_path(input, &k) == ret);
     528         [ -  + ]:       1132 :         assert_se(streq_ptr(k, output));
     529                 :       1132 : }
     530                 :            : 
     531                 :          4 : static void test_unit_name_from_dbus_path(void) {
     532                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dbus_2esocket", 0, "dbus.socket");
     533                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/_2d_2emount", 0, "-.mount");
     534                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/_2d_2eslice", 0, "-.slice");
     535                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/accounts_2ddaemon_2eservice", 0, "accounts-daemon.service");
     536                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/auditd_2eservice", 0, "auditd.service");
     537                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/basic_2etarget", 0, "basic.target");
     538                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/bluetooth_2etarget", 0, "bluetooth.target");
     539                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/boot_2eautomount", 0, "boot.automount");
     540                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/boot_2emount", 0, "boot.mount");
     541                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/btrfs_2emount", 0, "btrfs.mount");
     542                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/cryptsetup_2dpre_2etarget", 0, "cryptsetup-pre.target");
     543                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/cryptsetup_2etarget", 0, "cryptsetup.target");
     544                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dbus_2eservice", 0, "dbus.service");
     545                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dbus_2esocket", 0, "dbus.socket");
     546                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dcdrom_2edevice", 0, "dev-cdrom.device");
     547                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M120G2GC_5fCVPO044405HH120QGN_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M120G2GC_CVPO044405HH120QGN.device");
     548                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M120G2GC_5fCVPO044405HH120QGN_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M120G2GC_CVPO044405HH120QGN\\x2dpart1.device");
     549                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M160G2GC_5fCVPO951003RY160AGN_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M160G2GC_CVPO951003RY160AGN.device");
     550                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M160G2GC_5fCVPO951003RY160AGN_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M160G2GC_CVPO951003RY160AGN\\x2dpart1.device");
     551                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M160G2GC_5fCVPO951003RY160AGN_5cx2dpart2_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M160G2GC_CVPO951003RY160AGN\\x2dpart2.device");
     552                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dINTEL_5fSSDSA2M160G2GC_5fCVPO951003RY160AGN_5cx2dpart3_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dINTEL_SSDSA2M160G2GC_CVPO951003RY160AGN\\x2dpart3.device");
     553                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2data_5cx2dTSSTcorp_5fCDDVDW_5fTS_5cx2dL633C_5fR6176GLZB14646_2edevice", 0, "dev-disk-by\\x2did-ata\\x2dTSSTcorp_CDDVDW_TS\\x2dL633C_R6176GLZB14646.device");
     554                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x50015179591245ae_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x50015179591245ae.device");
     555                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x50015179591245ae_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x50015179591245ae\\x2dpart1.device");
     556                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x50015179591245ae_5cx2dpart2_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x50015179591245ae\\x2dpart2.device");
     557                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x50015179591245ae_5cx2dpart3_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x50015179591245ae\\x2dpart3.device");
     558                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x500151795946eab5_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x500151795946eab5.device");
     559                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2did_2dwwn_5cx2d0x500151795946eab5_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2did-wwn\\x2d0x500151795946eab5\\x2dpart1.device");
     560                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dlabel_2d_5cxe3_5cx82_5cxb7_5cxe3_5cx82_5cxb9_5cxe3_5cx83_5cx86_5cxe3_5cx83_5cxa0_5cxe3_5cx81_5cxa7_5cxe4_5cxba_5cx88_5cxe7_5cxb4_5cx84_5cxe6_5cxb8_5cx88_5cxe3_5cx81_5cxbf_2edevice", 0, "dev-disk-by\\x2dlabel-\\xe3\\x82\\xb7\\xe3\\x82\\xb9\\xe3\\x83\\x86\\xe3\\x83\\xa0\\xe3\\x81\\xa7\\xe4\\xba\\x88\\xe7\\xb4\\x84\\xe6\\xb8\\x88\\xe3\\x81\\xbf.device");
     561                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpartuuid_2d59834e50_5cx2d01_2edevice", 0, "dev-disk-by\\x2dpartuuid-59834e50\\x2d01.device");
     562                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpartuuid_2d63e2a7b3_5cx2d01_2edevice", 0, "dev-disk-by\\x2dpartuuid-63e2a7b3\\x2d01.device");
     563                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpartuuid_2d63e2a7b3_5cx2d02_2edevice", 0, "dev-disk-by\\x2dpartuuid-63e2a7b3\\x2d02.device");
     564                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpartuuid_2d63e2a7b3_5cx2d03_2edevice", 0, "dev-disk-by\\x2dpartuuid-63e2a7b3\\x2d03.device");
     565                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d1_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d1.device");
     566                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d1_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d1\\x2dpart1.device");
     567                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d1_5cx2dpart2_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d1\\x2dpart2.device");
     568                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d1_5cx2dpart3_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d1\\x2dpart3.device");
     569                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d2_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d2.device");
     570                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d6_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d6.device");
     571                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2dpath_2dpci_5cx2d0000_3a00_3a1f_2e2_5cx2data_5cx2d6_5cx2dpart1_2edevice", 0, "dev-disk-by\\x2dpath-pci\\x2d0000:00:1f.2\\x2data\\x2d6\\x2dpart1.device");
     572                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2duuid_2d1A34E3F034E3CD37_2edevice", 0, "dev-disk-by\\x2duuid-1A34E3F034E3CD37.device");
     573                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2duuid_2dB670EBFE70EBC2EB_2edevice", 0, "dev-disk-by\\x2duuid-B670EBFE70EBC2EB.device");
     574                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2duuid_2dFCD4F509D4F4C6C4_2edevice", 0, "dev-disk-by\\x2duuid-FCD4F509D4F4C6C4.device");
     575                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2ddisk_2dby_5cx2duuid_2db49ead57_5cx2d907c_5cx2d446c_5cx2db405_5cx2d5ca6cd865f5e_2edevice", 0, "dev-disk-by\\x2duuid-b49ead57\\x2d907c\\x2d446c\\x2db405\\x2d5ca6cd865f5e.device");
     576                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dhugepages_2emount", 0, "dev-hugepages.mount");
     577                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dmqueue_2emount", 0, "dev-mqueue.mount");
     578                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2drfkill_2edevice", 0, "dev-rfkill.device");
     579                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsda1_2edevice", 0, "dev-sda1.device");
     580                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsda2_2edevice", 0, "dev-sda2.device");
     581                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsda3_2edevice", 0, "dev-sda3.device");
     582                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsda_2edevice", 0, "dev-sda.device");
     583                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsdb1_2edevice", 0, "dev-sdb1.device");
     584                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsdb_2edevice", 0, "dev-sdb.device");
     585                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dsr0_2edevice", 0, "dev-sr0.device");
     586                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS0_2edevice", 0, "dev-ttyS0.device");
     587                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS10_2edevice", 0, "dev-ttyS10.device");
     588                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS11_2edevice", 0, "dev-ttyS11.device");
     589                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS12_2edevice", 0, "dev-ttyS12.device");
     590                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS13_2edevice", 0, "dev-ttyS13.device");
     591                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS14_2edevice", 0, "dev-ttyS14.device");
     592                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS15_2edevice", 0, "dev-ttyS15.device");
     593                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS16_2edevice", 0, "dev-ttyS16.device");
     594                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS17_2edevice", 0, "dev-ttyS17.device");
     595                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS18_2edevice", 0, "dev-ttyS18.device");
     596                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS19_2edevice", 0, "dev-ttyS19.device");
     597                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS1_2edevice", 0, "dev-ttyS1.device");
     598                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS20_2edevice", 0, "dev-ttyS20.device");
     599                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS21_2edevice", 0, "dev-ttyS21.device");
     600                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS22_2edevice", 0, "dev-ttyS22.device");
     601                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS23_2edevice", 0, "dev-ttyS23.device");
     602                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS24_2edevice", 0, "dev-ttyS24.device");
     603                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS25_2edevice", 0, "dev-ttyS25.device");
     604                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS26_2edevice", 0, "dev-ttyS26.device");
     605                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS27_2edevice", 0, "dev-ttyS27.device");
     606                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS28_2edevice", 0, "dev-ttyS28.device");
     607                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS29_2edevice", 0, "dev-ttyS29.device");
     608                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS2_2edevice", 0, "dev-ttyS2.device");
     609                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS30_2edevice", 0, "dev-ttyS30.device");
     610                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS31_2edevice", 0, "dev-ttyS31.device");
     611                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS3_2edevice", 0, "dev-ttyS3.device");
     612                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS4_2edevice", 0, "dev-ttyS4.device");
     613                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS5_2edevice", 0, "dev-ttyS5.device");
     614                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS6_2edevice", 0, "dev-ttyS6.device");
     615                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS7_2edevice", 0, "dev-ttyS7.device");
     616                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS8_2edevice", 0, "dev-ttyS8.device");
     617                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dev_2dttyS9_2edevice", 0, "dev-ttyS9.device");
     618                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dcmdline_2eservice", 0, "dracut-cmdline.service");
     619                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dinitqueue_2eservice", 0, "dracut-initqueue.service");
     620                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dmount_2eservice", 0, "dracut-mount.service");
     621                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dpre_2dmount_2eservice", 0, "dracut-pre-mount.service");
     622                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dpre_2dpivot_2eservice", 0, "dracut-pre-pivot.service");
     623                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dpre_2dtrigger_2eservice", 0, "dracut-pre-trigger.service");
     624                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dpre_2dudev_2eservice", 0, "dracut-pre-udev.service");
     625                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/dracut_2dshutdown_2eservice", 0, "dracut-shutdown.service");
     626                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/ebtables_2eservice", 0, "ebtables.service");
     627                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/emergency_2eservice", 0, "emergency.service");
     628                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/emergency_2etarget", 0, "emergency.target");
     629                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/fedora_2dimport_2dstate_2eservice", 0, "fedora-import-state.service");
     630                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/fedora_2dreadonly_2eservice", 0, "fedora-readonly.service");
     631                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/firewalld_2eservice", 0, "firewalld.service");
     632                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/getty_2dpre_2etarget", 0, "getty-pre.target");
     633                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/getty_2etarget", 0, "getty.target");
     634                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/getty_40tty1_2eservice", 0, "getty@tty1.service");
     635                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/graphical_2etarget", 0, "graphical.target");
     636                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/home_2emount", 0, "home.mount");
     637                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/init_2escope", 0, "init.scope");
     638                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dcleanup_2eservice", 0, "initrd-cleanup.service");
     639                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dfs_2etarget", 0, "initrd-fs.target");
     640                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dparse_2detc_2eservice", 0, "initrd-parse-etc.service");
     641                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2droot_2ddevice_2etarget", 0, "initrd-root-device.target");
     642                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2droot_2dfs_2etarget", 0, "initrd-root-fs.target");
     643                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dswitch_2droot_2eservice", 0, "initrd-switch-root.service");
     644                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dswitch_2droot_2etarget", 0, "initrd-switch-root.target");
     645                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2dudevadm_2dcleanup_2ddb_2eservice", 0, "initrd-udevadm-cleanup-db.service");
     646                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/initrd_2etarget", 0, "initrd.target");
     647                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/ip6tables_2eservice", 0, "ip6tables.service");
     648                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/ipset_2eservice", 0, "ipset.service");
     649                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/iptables_2eservice", 0, "iptables.service");
     650                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/irqbalance_2eservice", 0, "irqbalance.service");
     651                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/kmod_2dstatic_2dnodes_2eservice", 0, "kmod-static-nodes.service");
     652                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/ldconfig_2eservice", 0, "ldconfig.service");
     653                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/lightdm_2eservice", 0, "lightdm.service");
     654                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/livesys_2dlate_2eservice", 0, "livesys-late.service");
     655                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/lm_5fsensors_2eservice", 0, "lm_sensors.service");
     656                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/local_2dfs_2dpre_2etarget", 0, "local-fs-pre.target");
     657                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/local_2dfs_2etarget", 0, "local-fs.target");
     658                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/machines_2etarget", 0, "machines.target");
     659                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/mcelog_2eservice", 0, "mcelog.service");
     660                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/multi_2duser_2etarget", 0, "multi-user.target");
     661                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/network_2dpre_2etarget", 0, "network-pre.target");
     662                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/network_2etarget", 0, "network.target");
     663                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/nss_2dlookup_2etarget", 0, "nss-lookup.target");
     664                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/nss_2duser_2dlookup_2etarget", 0, "nss-user-lookup.target");
     665                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/paths_2etarget", 0, "paths.target");
     666                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/plymouth_2dquit_2dwait_2eservice", 0, "plymouth-quit-wait.service");
     667                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/plymouth_2dquit_2eservice", 0, "plymouth-quit.service");
     668                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/plymouth_2dstart_2eservice", 0, "plymouth-start.service");
     669                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/polkit_2eservice", 0, "polkit.service");
     670                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2eautomount", 0, "proc-sys-fs-binfmt_misc.automount");
     671                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/proc_2dsys_2dfs_2dbinfmt_5fmisc_2emount", 0, "proc-sys-fs-binfmt_misc.mount");
     672                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/rc_2dlocal_2eservice", 0, "rc-local.service");
     673                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dcryptsetup_2etarget", 0, "remote-cryptsetup.target");
     674                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dfs_2dpre_2etarget", 0, "remote-fs-pre.target");
     675                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/remote_2dfs_2etarget", 0, "remote-fs.target");
     676                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/rescue_2eservice", 0, "rescue.service");
     677                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/rescue_2etarget", 0, "rescue.target");
     678                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/run_2duser_2d1000_2emount", 0, "run-user-1000.mount");
     679                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/session_2d2_2escope", 0, "session-2.scope");
     680                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/shutdown_2etarget", 0, "shutdown.target");
     681                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/slices_2etarget", 0, "slices.target");
     682                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/smartd_2eservice", 0, "smartd.service");
     683                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sockets_2etarget", 0, "sockets.target");
     684                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sound_2etarget", 0, "sound.target");
     685                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sshd_2dkeygen_2etarget", 0, "sshd-keygen.target");
     686                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sshd_2dkeygen_40ecdsa_2eservice", 0, "sshd-keygen@ecdsa.service");
     687                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sshd_2dkeygen_40ed25519_2eservice", 0, "sshd-keygen@ed25519.service");
     688                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sshd_2dkeygen_40rsa_2eservice", 0, "sshd-keygen@rsa.service");
     689                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sshd_2eservice", 0, "sshd.service");
     690                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/swap_2etarget", 0, "swap.target");
     691                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a02_2e0_2dbacklight_2dacpi_5fvideo0_2edevice", 0, "sys-devices-pci0000:00-0000:00:02.0-backlight-acpi_video0.device");
     692                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a02_2e0_2ddrm_2dcard0_2dcard0_5cx2dLVDS_5cx2d1_2dintel_5fbacklight_2edevice", 0, "sys-devices-pci0000:00-0000:00:02.0-drm-card0-card0\\x2dLVDS\\x2d1-intel_backlight.device");
     693                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1a_2e0_2dusb1_2d1_5cx2d1_2d1_5cx2d1_2e6_2d1_5cx2d1_2e6_3a1_2e0_2dbluetooth_2dhci0_2edevice", 0, "sys-devices-pci0000:00-0000:00:1a.0-usb1-1\\x2d1-1\\x2d1.6-1\\x2d1.6:1.0-bluetooth-hci0.device");
     694                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1b_2e0_2dsound_2dcard0_2edevice", 0, "sys-devices-pci0000:00-0000:00:1b.0-sound-card0.device");
     695                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1c_2e0_2d0000_3a02_3a00_2e0_2dnet_2dwlp2s0_2edevice", 0, "sys-devices-pci0000:00-0000:00:1c.0-0000:02:00.0-net-wlp2s0.device");
     696                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1c_2e2_2d0000_3a04_3a00_2e0_2dnet_2denp4s0_2edevice", 0, "sys-devices-pci0000:00-0000:00:1c.2-0000:04:00.0-net-enp4s0.device");
     697                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data1_2dhost0_2dtarget0_3a0_3a0_2d0_3a0_3a0_3a0_2dblock_2dsda_2dsda1_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda1.device");
     698                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data1_2dhost0_2dtarget0_3a0_3a0_2d0_3a0_3a0_3a0_2dblock_2dsda_2dsda2_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda2.device");
     699                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data1_2dhost0_2dtarget0_3a0_3a0_2d0_3a0_3a0_3a0_2dblock_2dsda_2dsda3_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda3.device");
     700                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data1_2dhost0_2dtarget0_3a0_3a0_2d0_3a0_3a0_3a0_2dblock_2dsda_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda.device");
     701                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data2_2dhost1_2dtarget1_3a0_3a0_2d1_3a0_3a0_3a0_2dblock_2dsr0_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device");
     702                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data6_2dhost5_2dtarget5_3a0_3a0_2d5_3a0_3a0_3a0_2dblock_2dsdb_2dsdb1_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata6-host5-target5:0:0-5:0:0:0-block-sdb-sdb1.device");
     703                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dpci0000_3a00_2d0000_3a00_3a1f_2e2_2data6_2dhost5_2dtarget5_3a0_3a0_2d5_3a0_3a0_3a0_2dblock_2dsdb_2edevice", 0, "sys-devices-pci0000:00-0000:00:1f.2-ata6-host5-target5:0:0-5:0:0:0-block-sdb.device");
     704                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS0_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS0.device");
     705                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS10_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS10.device");
     706                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS11_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS11.device");
     707                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS12_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS12.device");
     708                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS13_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS13.device");
     709                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS14_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS14.device");
     710                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS15_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS15.device");
     711                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS16_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS16.device");
     712                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS17_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS17.device");
     713                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS18_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS18.device");
     714                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS19_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS19.device");
     715                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS1_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS1.device");
     716                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS20_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS20.device");
     717                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS21_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS21.device");
     718                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS22_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS22.device");
     719                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS23_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS23.device");
     720                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS24_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS24.device");
     721                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS25_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS25.device");
     722                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS26_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS26.device");
     723                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS27_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS27.device");
     724                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS28_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS28.device");
     725                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS29_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS29.device");
     726                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS2_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS2.device");
     727                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS30_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS30.device");
     728                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS31_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS31.device");
     729                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS3_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS3.device");
     730                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS4_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS4.device");
     731                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS5_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS5.device");
     732                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS6_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS6.device");
     733                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS7_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS7.device");
     734                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS8_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS8.device");
     735                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dplatform_2dserial8250_2dtty_2dttyS9_2edevice", 0, "sys-devices-platform-serial8250-tty-ttyS9.device");
     736                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2ddevices_2dvirtual_2dmisc_2drfkill_2edevice", 0, "sys-devices-virtual-misc-rfkill.device");
     737                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dfs_2dfuse_2dconnections_2emount", 0, "sys-fs-fuse-connections.mount");
     738                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dkernel_2dconfig_2emount", 0, "sys-kernel-config.mount");
     739                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dkernel_2ddebug_2emount", 0, "sys-kernel-debug.mount");
     740                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dmodule_2dconfigfs_2edevice", 0, "sys-module-configfs.device");
     741                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dsubsystem_2dbluetooth_2ddevices_2dhci0_2edevice", 0, "sys-subsystem-bluetooth-devices-hci0.device");
     742                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dsubsystem_2dnet_2ddevices_2denp4s0_2edevice", 0, "sys-subsystem-net-devices-enp4s0.device");
     743                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sys_2dsubsystem_2dnet_2ddevices_2dwlp2s0_2edevice", 0, "sys-subsystem-net-devices-wlp2s0.device");
     744                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sysinit_2etarget", 0, "sysinit.target");
     745                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/syslog_2eservice", 0, "syslog.service");
     746                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/syslog_2esocket", 0, "syslog.socket");
     747                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/syslog_2etarget", 0, "syslog.target");
     748                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/sysroot_2emount", 0, "sysroot.mount");
     749                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2dgetty_2eslice", 0, "system-getty.slice");
     750                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2dsshd_5cx2dkeygen_2eslice", 0, "system-sshd\\x2dkeygen.slice");
     751                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2dsystemd_5cx2dbacklight_2eslice", 0, "system-systemd\\x2dbacklight.slice");
     752                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2dsystemd_5cx2dcoredump_2eslice", 0, "system-systemd\\x2dcoredump.slice");
     753                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2duser_5cx2druntime_5cx2ddir_2eslice", 0, "system-user\\x2druntime\\x2ddir.slice");
     754                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/system_2eslice", 0, "system.slice");
     755                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dask_2dpassword_2dconsole_2epath", 0, "systemd-ask-password-console.path");
     756                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dask_2dpassword_2dconsole_2eservice", 0, "systemd-ask-password-console.service");
     757                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dask_2dpassword_2dwall_2epath", 0, "systemd-ask-password-wall.path");
     758                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dask_2dpassword_2dwall_2eservice", 0, "systemd-ask-password-wall.service");
     759                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dbacklight_40backlight_3aacpi_5fvideo0_2eservice", 0, "systemd-backlight@backlight:acpi_video0.service");
     760                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dbacklight_40backlight_3aintel_5fbacklight_2eservice", 0, "systemd-backlight@backlight:intel_backlight.service");
     761                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dbinfmt_2eservice", 0, "systemd-binfmt.service");
     762                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dcoredump_2esocket", 0, "systemd-coredump.socket");
     763                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dcoredump_400_2eservice", 0, "systemd-coredump@0.service");
     764                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dfirstboot_2eservice", 0, "systemd-firstboot.service");
     765                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dfsck_2droot_2eservice", 0, SPECIAL_FSCK_ROOT_SERVICE);
     766                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dhwdb_2dupdate_2eservice", 0, "systemd-hwdb-update.service");
     767                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dinitctl_2eservice", 0, "systemd-initctl.service");
     768                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dinitctl_2esocket", 0, "systemd-initctl.socket");
     769                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournal_2dcatalog_2dupdate_2eservice", 0, "systemd-journal-catalog-update.service");
     770                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournal_2dflush_2eservice", 0, "systemd-journal-flush.service");
     771                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournald_2daudit_2esocket", 0, "systemd-journald-audit.socket");
     772                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournald_2ddev_2dlog_2esocket", 0, "systemd-journald-dev-log.socket");
     773                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournald_2eservice", 0, "systemd-journald.service");
     774                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2djournald_2esocket", 0, "systemd-journald.socket");
     775                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dlogind_2eservice", 0, "systemd-logind.service");
     776                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dmachine_2did_2dcommit_2eservice", 0, "systemd-machine-id-commit.service");
     777                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dmodules_2dload_2eservice", 0, "systemd-modules-load.service");
     778                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dnetworkd_2eservice", 0, "systemd-networkd.service");
     779                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dnetworkd_2esocket", 0, "systemd-networkd.socket");
     780                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2drandom_2dseed_2eservice", 0, "systemd-random-seed.service");
     781                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dremount_2dfs_2eservice", 0, "systemd-remount-fs.service");
     782                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dresolved_2eservice", 0, "systemd-resolved.service");
     783                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2drfkill_2eservice", 0, "systemd-rfkill.service");
     784                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2drfkill_2esocket", 0, "systemd-rfkill.socket");
     785                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dsysctl_2eservice", 0, "systemd-sysctl.service");
     786                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dsysusers_2eservice", 0, "systemd-sysusers.service");
     787                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dtimesyncd_2eservice", 0, "systemd-timesyncd.service");
     788                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2eservice", 0, "systemd-tmpfiles-clean.service");
     789                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dclean_2etimer", 0, "systemd-tmpfiles-clean.timer");
     790                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dsetup_2ddev_2eservice", 0, "systemd-tmpfiles-setup-dev.service");
     791                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dtmpfiles_2dsetup_2eservice", 0, "systemd-tmpfiles-setup.service");
     792                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudev_2dtrigger_2eservice", 0, "systemd-udev-trigger.service");
     793                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudevd_2dcontrol_2esocket", 0, "systemd-udevd-control.socket");
     794                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudevd_2dkernel_2esocket", 0, "systemd-udevd-kernel.socket");
     795                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dudevd_2eservice", 0, "systemd-udevd.service");
     796                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2ddone_2eservice", 0, "systemd-update-done.service");
     797                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2dutmp_2drunlevel_2eservice", 0, "systemd-update-utmp-runlevel.service");
     798                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dupdate_2dutmp_2eservice", 0, "systemd-update-utmp.service");
     799                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2duser_2dsessions_2eservice", 0, "systemd-user-sessions.service");
     800                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/systemd_2dvconsole_2dsetup_2eservice", 0, "systemd-vconsole-setup.service");
     801                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/time_2dsync_2etarget", 0, "time-sync.target");
     802                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/timers_2etarget", 0, "timers.target");
     803                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/tmp_2emount", 0, "tmp.mount");
     804                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/umount_2etarget", 0, "umount.target");
     805                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/unbound_2danchor_2eservice", 0, "unbound-anchor.service");
     806                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/unbound_2danchor_2etimer", 0, "unbound-anchor.timer");
     807                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/upower_2eservice", 0, "upower.service");
     808                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/user_2d1000_2eslice", 0, "user-1000.slice");
     809                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/user_2druntime_2ddir_401000_2eservice", 0, "user-runtime-dir@1000.service");
     810                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/user_2eslice", 0, "user.slice");
     811                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/user_401000_2eservice", 0, "user@1000.service");
     812                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/usr_2dlocal_2dtexlive_2emount", 0, "usr-local-texlive.mount");
     813                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/var_2dlib_2dmachines_2emount", 0, "var-lib-machines.mount");
     814                 :          4 :         test_unit_name_from_dbus_path_one("/org/freedesktop/systemd1/unit/wpa_5fsupplicant_2eservice", 0, "wpa_supplicant.service");
     815                 :          4 : }
     816                 :            : 
     817                 :          4 : int main(int argc, char* argv[]) {
     818                 :          4 :         _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
     819                 :          4 :         int r, rc = 0;
     820                 :            : 
     821                 :          4 :         test_setup_logging(LOG_INFO);
     822                 :            : 
     823                 :          4 :         r = enter_cgroup_subroot();
     824         [ -  + ]:          4 :         if (r == -ENOMEDIUM)
     825                 :          0 :                 return log_tests_skipped("cgroupfs not available");
     826                 :            : 
     827         [ -  + ]:          4 :         assert_se(runtime_dir = setup_fake_runtime_dir());
     828                 :            : 
     829                 :          4 :         test_unit_name_is_valid();
     830                 :          4 :         test_unit_name_replace_instance();
     831                 :          4 :         test_unit_name_from_path();
     832                 :          4 :         test_unit_name_from_path_instance();
     833                 :          4 :         test_unit_name_mangle();
     834                 :          4 :         test_unit_name_to_path();
     835         [ +  - ]:          4 :         TEST_REQ_RUNNING_SYSTEMD(rc = test_unit_printf());
     836                 :          4 :         test_unit_instance_is_valid();
     837                 :          4 :         test_unit_prefix_is_valid();
     838                 :          4 :         test_unit_name_change_suffix();
     839                 :          4 :         test_unit_name_build();
     840                 :          4 :         test_slice_name_is_valid();
     841                 :          4 :         test_build_subslice();
     842                 :          4 :         test_build_parent_slice();
     843                 :          4 :         test_unit_name_to_instance();
     844                 :          4 :         test_unit_name_escape();
     845                 :          4 :         test_unit_name_template();
     846                 :          4 :         test_unit_name_path_unescape();
     847                 :          4 :         test_unit_name_to_prefix();
     848                 :          4 :         test_unit_name_from_dbus_path();
     849                 :            : 
     850                 :          4 :         return rc;
     851                 :            : }

Generated by: LCOV version 1.14