]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add basic tests for octescape() 25644/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Dec 2022 03:00:45 +0000 (12:00 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Dec 2022 03:18:14 +0000 (12:18 +0900)
src/test/test-escape.c

index da19272624fbd27f6b8b54c53d36430c2661dfba..de82020d5fe684105a35a5588ef4ddae5f3fe1cb 100644 (file)
@@ -219,4 +219,20 @@ TEST(quote_command_line) {
                                     "true \"\\$dollar\"");
 }
 
+static void test_octescape_one(const char *s, const char *expected) {
+        _cleanup_free_ char *ret;
+
+        assert_se(ret = octescape(s, strlen_ptr(s)));
+        log_debug("octescape(\"%s\") → \"%s\" (expected: \"%s\")", strnull(s), ret, expected);
+        assert_se(streq(ret, expected));
+}
+
+TEST(octescape) {
+        test_octescape_one(NULL, "");
+        test_octescape_one("", "");
+        test_octescape_one("foo", "foo");
+        test_octescape_one("\"\\\"", "\\042\\134\\042");
+        test_octescape_one("\123\213\222", "\123\\213\\222");
+}
+
 DEFINE_TEST_MAIN(LOG_DEBUG);