static char *specifier_filename(char specifier, void *data, void *userdata) { Unit *u = userdata; assert(u); if (u->instance) return unit_name_path_unescape(u->instance); return unit_name_to_path(u->id); }
static void test_u_n_f_p_i_one(const char *pattern, const char *path, const char *suffix, const char *expected, int ret) { _cleanup_free_ char *t = NULL; assert_se(unit_name_from_path_instance(pattern, path, suffix, &t) == ret); puts(strna(t)); assert_se(streq_ptr(t, expected)); if (t) { _cleanup_free_ char *k = NULL, *v = NULL; assert_se(unit_name_to_instance(t, &k) > 0); assert_se(unit_name_path_unescape(k, &v) == 0); assert_se(path_equal(v, isempty(path) ? "/" : path)); } }
static void test_unit_name_path_unescape_one(const char *name, const char *path, int ret) { _cleanup_free_ char *p = NULL; assert_se(unit_name_path_unescape(name, &p) == ret); assert_se(streq_ptr(path, p)); }