test: add test cases for parsing SYSTEMD_WANTS=/SYSTEMD_USER_WANTS=

This commit is contained in:
Yu Watanabe
2025-01-22 20:41:00 +00:00
committed by Luca Boccassi
parent a467358b2a
commit 4c9da4dc91
2 changed files with 108 additions and 0 deletions
+43
View File
@@ -547,6 +547,49 @@ TEST(extract_first_word) {
ASSERT_STREQ(t, "가너도루");
free(t);
assert_se(isempty(p));
/* For issue #16735. */
p = "test1@foo\\x2dbar\\x2dbaz.service test2@aaa\\x2dbbb\\x2dccc.service test3@escaped-path-like-data.service test4@/pure/path/like/data.service";
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE));
ASSERT_STREQ(t, "test1@foox2dbarx2dbaz.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE));
ASSERT_STREQ(t, "test2@aaax2dbbbx2dccc.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE));
ASSERT_STREQ(t, "test3@escaped-path-like-data.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE));
ASSERT_STREQ(t, "test4@/pure/path/like/data.service");
free(t);
p = "test1@foo\\x2dbar\\x2dbaz.service test2@aaa\\x2dbbb\\x2dccc.service test3@escaped-path-like-data.service test4@/pure/path/like/data.service";
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_RETAIN_ESCAPE));
ASSERT_STREQ(t, "test1@foo\\x2dbar\\x2dbaz.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_RETAIN_ESCAPE));
ASSERT_STREQ(t, "test2@aaa\\x2dbbb\\x2dccc.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_RETAIN_ESCAPE));
ASSERT_STREQ(t, "test3@escaped-path-like-data.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_RETAIN_ESCAPE));
ASSERT_STREQ(t, "test4@/pure/path/like/data.service");
free(t);
p = "test1@foo\\x2dbar\\x2dbaz.service test2@aaa\\x2dbbb\\x2dccc.service test3@escaped-path-like-data.service test4@/pure/path/like/data.service";
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE));
ASSERT_STREQ(t, "test1@foo-bar-baz.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE));
ASSERT_STREQ(t, "test2@aaa-bbb-ccc.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE));
ASSERT_STREQ(t, "test3@escaped-path-like-data.service");
free(t);
ASSERT_OK_POSITIVE(extract_first_word(&p, &t, NULL, EXTRACT_UNQUOTE | EXTRACT_CUNESCAPE));
ASSERT_STREQ(t, "test4@/pure/path/like/data.service");
free(t);
}
TEST(extract_first_word_and_warn) {