summaryrefslogtreecommitdiff
path: root/src/test/test-escape.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-01-27 18:09:25 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-01-27 19:58:06 +0900
commita6a36dea2d40553fcb6dbbde510c10ac97cb8062 (patch)
tree87d8526836fe9b3a16159563a9e26d934c42b52e /src/test/test-escape.c
parent0e72e469f88ce866668a0ca1965f51feb52d5e98 (diff)
downloadsystemd-a6a36dea2d40553fcb6dbbde510c10ac97cb8062.tar.gz
test: add tests for UNESCAPE_ACCEPT_NUL
Diffstat (limited to 'src/test/test-escape.c')
-rw-r--r--src/test/test-escape.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/test-escape.c b/src/test/test-escape.c
index add17f9547..f6aae1eb18 100644
--- a/src/test/test-escape.c
+++ b/src/test/test-escape.c
@@ -96,6 +96,22 @@ static void test_cunescape(void) {
assert_se(cunescape("A=A\\\\x0aB", UNESCAPE_RELAX, &unescaped) >= 0);
assert_se(streq_ptr(unescaped, "A=A\\x0aB"));
+ unescaped = mfree(unescaped);
+
+ assert_se(cunescape("\\x00\\x00\\x00", UNESCAPE_ACCEPT_NUL, &unescaped) == 3);
+ assert_se(memcmp(unescaped, "\0\0\0", 3) == 0);
+ unescaped = mfree(unescaped);
+
+ assert_se(cunescape("\\u0000\\u0000\\u0000", UNESCAPE_ACCEPT_NUL, &unescaped) == 3);
+ assert_se(memcmp(unescaped, "\0\0\0", 3) == 0);
+ unescaped = mfree(unescaped);
+
+ assert_se(cunescape("\\U00000000\\U00000000\\U00000000", UNESCAPE_ACCEPT_NUL, &unescaped) == 3);
+ assert_se(memcmp(unescaped, "\0\0\0", 3) == 0);
+ unescaped = mfree(unescaped);
+
+ assert_se(cunescape("\\000\\000\\000", UNESCAPE_ACCEPT_NUL, &unescaped) == 3);
+ assert_se(memcmp(unescaped, "\0\0\0", 3) == 0);
}
static void test_shell_escape_one(const char *s, const char *bad, const char *expected) {