]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-specifier.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 #include "alloc-util.h"
6 #include "string-util.h"
9 static void test_specifier_escape_one(const char *a
, const char *b
) {
10 _cleanup_free_
char *x
= NULL
;
12 x
= specifier_escape(a
);
13 assert_se(streq_ptr(x
, b
));
16 static void test_specifier_escape(void) {
17 test_specifier_escape_one(NULL
, NULL
);
18 test_specifier_escape_one("", "");
19 test_specifier_escape_one("%", "%%");
20 test_specifier_escape_one("foo bar", "foo bar");
21 test_specifier_escape_one("foo%bar", "foo%%bar");
22 test_specifier_escape_one("%%%%%", "%%%%%%%%%%");
25 static void test_specifier_escape_strv_one(char **a
, char **b
) {
26 _cleanup_strv_free_
char **x
= NULL
;
28 assert_se(specifier_escape_strv(a
, &x
) >= 0);
29 assert_se(strv_equal(x
, b
));
32 static void test_specifier_escape_strv(void) {
33 test_specifier_escape_strv_one(NULL
, NULL
);
34 test_specifier_escape_strv_one(STRV_MAKE(NULL
), STRV_MAKE(NULL
));
35 test_specifier_escape_strv_one(STRV_MAKE(""), STRV_MAKE(""));
36 test_specifier_escape_strv_one(STRV_MAKE("foo"), STRV_MAKE("foo"));
37 test_specifier_escape_strv_one(STRV_MAKE("%"), STRV_MAKE("%%"));
38 test_specifier_escape_strv_one(STRV_MAKE("foo", "%", "foo%", "%foo", "foo%foo", "quux", "%%%"), STRV_MAKE("foo", "%%", "foo%%", "%%foo", "foo%%foo", "quux", "%%%%%%"));
41 int main(int argc
, char *argv
[]) {
42 log_set_max_level(LOG_DEBUG
);
44 test_specifier_escape();
45 test_specifier_escape_strv();