X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-strv.c;fp=src%2Ftest%2Ftest-strv.c;h=7002b8b1c0dea144835a83c768f8c5e7afa7c2a1;hb=250a918dc4c8a15d927deecc3b3f6a0604657ae4;hp=de5cef0b17ec3c3757e8e1329b1969b9fc04d8d7;hpb=7b1132f60d2a447c31556c23ea90ea31447ac557;p=elogind.git diff --git a/src/test/test-strv.c b/src/test/test-strv.c index de5cef0b1..7002b8b1c 100644 --- a/src/test/test-strv.c +++ b/src/test/test-strv.c @@ -283,31 +283,31 @@ static void test_strv_append(void) { } static void test_strv_foreach(void) { - _cleanup_strv_free_ char **a; - unsigned i = 0; - char **check; + _cleanup_strv_free_ char **a; + unsigned i = 0; + char **check; - a = strv_new("one", "two", "three", NULL); + a = strv_new("one", "two", "three", NULL); - assert_se(a); + assert_se(a); - STRV_FOREACH(check, a) { - assert_se(streq(*check, input_table_multiple[i++])); - } + STRV_FOREACH(check, a) { + assert_se(streq(*check, input_table_multiple[i++])); + } } static void test_strv_foreach_backwards(void) { - _cleanup_strv_free_ char **a; - unsigned i = 2; - char **check; + _cleanup_strv_free_ char **a; + unsigned i = 2; + char **check; - a = strv_new("one", "two", "three", NULL); + a = strv_new("one", "two", "three", NULL); - assert_se(a); + assert_se(a); - STRV_FOREACH_BACKWARDS(check, a) { - assert_se(streq(*check, input_table_multiple[i--])); - } + STRV_FOREACH_BACKWARDS(check, a) { + assert_se(streq(*check, input_table_multiple[i--])); + } } static void test_strv_foreach_pair(void) { @@ -324,6 +324,26 @@ static void test_strv_foreach_pair(void) { } } +static void test_strv_from_stdarg_alloca_one(const char **l, const char *first, ...) { + char **j; + unsigned i; + + j = strv_from_stdarg_alloca(first); + + for (i = 0;; i++) { + assert_se(streq_ptr(l[i], j[i])); + + if (!l[i]) + break; + } +} + +static void test_strv_from_stdarg_alloca(void) { + test_strv_from_stdarg_alloca_one((const char*[]) { "foo", "bar", NULL }, "foo", "bar", NULL); + test_strv_from_stdarg_alloca_one((const char*[]) { "foo", "bar", NULL }, "foo", "bar", NULL); + test_strv_from_stdarg_alloca_one((const char*[]) { "foo", NULL }, "foo", NULL); +} + int main(int argc, char *argv[]) { test_specifier_printf(); test_strv_foreach(); @@ -346,6 +366,7 @@ int main(int argc, char *argv[]) { test_strv_merge(); test_strv_merge_concat(); test_strv_append(); + test_strv_from_stdarg_alloca(); return 0; }