chiark / gitweb /
test: add and improve hashmap tests
[elogind.git] / src / test / test-strv.c
index cdd2a539af9f024d9af91084e76678bb760e4462..bbfe306d7d0478a426d6cf93a810e371ebfba9a6 100644 (file)
@@ -141,6 +141,7 @@ static void test_strv_quote_unquote(const char* const *split, const char *quoted
         _cleanup_free_ char *p;
         _cleanup_strv_free_ char **s;
         char **t;
+        int r;
 
         p = strv_join_quoted((char **)split);
         assert_se(p);
@@ -148,7 +149,8 @@ static void test_strv_quote_unquote(const char* const *split, const char *quoted
         assert_se(p);
         assert_se(streq(p, quoted));
 
-        s = strv_split_quoted(quoted);
+        r = strv_split_quoted(&s, quoted);
+        assert_se(r == 0);
         assert_se(s);
         STRV_FOREACH(t, s) {
                 assert_se(*t);
@@ -162,11 +164,13 @@ static void test_strv_unquote(const char *quoted, const char **list) {
         _cleanup_free_ char *j;
         unsigned i = 0;
         char **t;
+        int r;
 
-        s = strv_split_quoted(quoted);
+        r = strv_split_quoted(&s, quoted);
+        assert_se(r == 0);
         assert_se(s);
         j = strv_join(s, " | ");
-        assert(j);
+        assert_se(j);
         puts(j);
 
         STRV_FOREACH(t, s)
@@ -176,10 +180,12 @@ static void test_strv_unquote(const char *quoted, const char **list) {
 }
 
 static void test_invalid_unquote(const char *quoted) {
-        char **s;
+        char **s = NULL;
+        int r;
 
-        s = strv_split_quoted(quoted);
-        assert(s == NULL);
+        r = strv_split_quoted(&s, quoted);
+        assert_se(s == NULL);
+        assert_se(r == -EINVAL);
 }
 
 static void test_strv_split(void) {
@@ -190,7 +196,7 @@ static void test_strv_split(void) {
 
         l = strv_split(str, ",");
 
-        assert(l);
+        assert_se(l);
 
         STRV_FOREACH(s, l) {
                 assert_se(streq(*s, input_table_multiple[i++]));
@@ -205,7 +211,7 @@ static void test_strv_split_newlines(void) {
 
         l = strv_split_newlines(str);
 
-        assert(l);
+        assert_se(l);
 
         STRV_FOREACH(s, l) {
                 assert_se(streq(*s, input_table_multiple[i++]));
@@ -441,6 +447,9 @@ int main(int argc, char *argv[]) {
         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_invalid_unquote("'");
+        test_invalid_unquote("\"");
+        test_invalid_unquote("'x'y");
 
         test_strv_split();
         test_strv_split_newlines();