]>
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"
10 static void test_specifier_escape_one(const char *a
, const char *b
) {
11 _cleanup_free_
char *x
= NULL
;
13 x
= specifier_escape(a
);
14 assert_se(streq_ptr(x
, b
));
17 static void test_specifier_escape(void) {
18 test_specifier_escape_one(NULL
, NULL
);
19 test_specifier_escape_one("", "");
20 test_specifier_escape_one("%", "%%");
21 test_specifier_escape_one("foo bar", "foo bar");
22 test_specifier_escape_one("foo%bar", "foo%%bar");
23 test_specifier_escape_one("%%%%%", "%%%%%%%%%%");
26 static void test_specifier_escape_strv_one(char **a
, char **b
) {
27 _cleanup_strv_free_
char **x
= NULL
;
29 assert_se(specifier_escape_strv(a
, &x
) >= 0);
30 assert_se(strv_equal(x
, b
));
33 static void test_specifier_escape_strv(void) {
34 test_specifier_escape_strv_one(NULL
, NULL
);
35 test_specifier_escape_strv_one(STRV_MAKE(NULL
), STRV_MAKE(NULL
));
36 test_specifier_escape_strv_one(STRV_MAKE(""), STRV_MAKE(""));
37 test_specifier_escape_strv_one(STRV_MAKE("foo"), STRV_MAKE("foo"));
38 test_specifier_escape_strv_one(STRV_MAKE("%"), STRV_MAKE("%%"));
39 test_specifier_escape_strv_one(STRV_MAKE("foo", "%", "foo%", "%foo", "foo%foo", "quux", "%%%"), STRV_MAKE("foo", "%%", "foo%%", "%%foo", "foo%%foo", "quux", "%%%%%%"));
42 int main(int argc
, char *argv
[]) {
43 test_setup_logging(LOG_DEBUG
);
45 test_specifier_escape();
46 test_specifier_escape_strv();