summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test-strv.c16
-rw-r--r--src/test/test-util.c15
2 files changed, 21 insertions, 10 deletions
diff --git a/src/test/test-strv.c b/src/test/test-strv.c
index 370219121b..cdd2a539af 100644
--- a/src/test/test-strv.c
+++ b/src/test/test-strv.c
@@ -159,12 +159,15 @@ static void test_strv_quote_unquote(const char* const *split, const char *quoted
static void test_strv_unquote(const char *quoted, const char **list) {
_cleanup_strv_free_ char **s;
+ _cleanup_free_ char *j;
unsigned i = 0;
char **t;
s = strv_split_quoted(quoted);
assert_se(s);
- strv_print(s);
+ j = strv_join(s, " | ");
+ assert(j);
+ puts(j);
STRV_FOREACH(t, s)
assert_se(streq(list[i++], *t));
@@ -172,6 +175,13 @@ static void test_strv_unquote(const char *quoted, const char **list) {
assert_se(list[i] == NULL);
}
+static void test_invalid_unquote(const char *quoted) {
+ char **s;
+
+ s = strv_split_quoted(quoted);
+ assert(s == NULL);
+}
+
static void test_strv_split(void) {
char **s;
unsigned i = 0;
@@ -428,7 +438,9 @@ int main(int argc, char *argv[]) {
test_strv_unquote(" \"x'\" ", (const char*[]) { "x'", NULL });
test_strv_unquote("a '--b=c \"d e\"'", (const char*[]) { "a", "--b=c \"d e\"", NULL });
- test_strv_unquote("a --b='c \"d e\"'", (const char*[]) { "a", "--b='c", "\"d", "e\"'", NULL });
+ test_invalid_unquote("a --b='c \"d e\"'");
+ test_invalid_unquote("a --b='c \"d e\" '");
+ test_invalid_unquote("a --b='c \"d e\"garbage");
test_strv_split();
test_strv_split_newlines();
diff --git a/src/test/test-util.c b/src/test/test-util.c
index 9a28ef9eec..a56b355672 100644
--- a/src/test/test-util.c
+++ b/src/test/test-util.c
@@ -311,7 +311,7 @@ static void test_cunescape(void) {
}
static void test_foreach_word(void) {
- char *w, *state;
+ const char *word, *state;
size_t l;
int i = 0;
const char test[] = "test abc d\te f ";
@@ -325,13 +325,12 @@ static void test_foreach_word(void) {
NULL
};
- FOREACH_WORD(w, l, test, state) {
- assert_se(strneq(expected[i++], w, l));
- }
+ FOREACH_WORD(word, l, test, state)
+ assert_se(strneq(expected[i++], word, l));
}
static void test_foreach_word_quoted(void) {
- char *w, *state;
+ const char *word, *state;
size_t l;
int i = 0;
const char test[] = "test a b c 'd' e '' '' hhh '' '' \"a b c\"";
@@ -352,11 +351,11 @@ static void test_foreach_word_quoted(void) {
};
printf("<%s>\n", test);
- FOREACH_WORD_QUOTED(w, l, test, state) {
+ FOREACH_WORD_QUOTED(word, l, test, state) {
_cleanup_free_ char *t = NULL;
- assert_se(t = strndup(w, l));
- assert_se(strneq(expected[i++], w, l));
+ assert_se(t = strndup(word, l));
+ assert_se(strneq(expected[i++], word, l));
printf("<%s>\n", t);
}
}