summaryrefslogtreecommitdiff
path: root/src/test/test-nulstr-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-11-11 21:55:00 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-11-13 17:39:08 +0900
commit08af3cc5a581894afc9c48c6427fb0f82756bec2 (patch)
tree767fb3fe87593c034c574d39c39e893695beffa4 /src/test/test-nulstr-util.c
parent1c03f7f4ba419aa65997e90accc0d935ae1cfbc5 (diff)
downloadsystemd-08af3cc5a581894afc9c48c6427fb0f82756bec2.tar.gz
strv: move nulstr utilities to nulstr-util.[ch]
Let's move them out of the generic, already very long strv.[ch] module into the more specific nulst-util.[ch] No code changes.
Diffstat (limited to 'src/test/test-nulstr-util.c')
-rw-r--r--src/test/test-nulstr-util.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/test-nulstr-util.c b/src/test/test-nulstr-util.c
new file mode 100644
index 0000000000..e707416abf
--- /dev/null
+++ b/src/test/test-nulstr-util.c
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "alloc-util.h"
+#include "nulstr-util.h"
+#include "strv.h"
+#include "tests.h"
+
+TEST(strv_split_nulstr) {
+ _cleanup_strv_free_ char **l = NULL;
+ const char nulstr[] = "str0\0str1\0str2\0str3\0";
+
+ l = strv_split_nulstr(nulstr);
+ assert_se(l);
+
+ assert_se(streq(l[0], "str0"));
+ assert_se(streq(l[1], "str1"));
+ assert_se(streq(l[2], "str2"));
+ assert_se(streq(l[3], "str3"));
+}
+
+TEST(strv_parse_nulstr) {
+ _cleanup_strv_free_ char **l = NULL;
+ const char nulstr[] = "hoge\0hoge2\0hoge3\0\0hoge5\0\0xxx";
+
+ l = strv_parse_nulstr(nulstr, sizeof(nulstr)-1);
+ assert_se(l);
+ puts("Parse nulstr:");
+ strv_print(l);
+
+ assert_se(streq(l[0], "hoge"));
+ assert_se(streq(l[1], "hoge2"));
+ assert_se(streq(l[2], "hoge3"));
+ assert_se(streq(l[3], ""));
+ assert_se(streq(l[4], "hoge5"));
+ assert_se(streq(l[5], ""));
+ assert_se(streq(l[6], "xxx"));
+}
+
+DEFINE_TEST_MAIN(LOG_INFO);