153a5a1b3Sopenharmony_ci#ifdef HAVE_CONFIG_H
253a5a1b3Sopenharmony_ci#include <config.h>
353a5a1b3Sopenharmony_ci#endif
453a5a1b3Sopenharmony_ci
553a5a1b3Sopenharmony_ci#include <stdio.h>
653a5a1b3Sopenharmony_ci#include <check.h>
753a5a1b3Sopenharmony_ci
853a5a1b3Sopenharmony_ci#include <pulse/xmalloc.h>
953a5a1b3Sopenharmony_ci
1053a5a1b3Sopenharmony_ci#include <pulsecore/strlist.h>
1153a5a1b3Sopenharmony_ci#include <pulsecore/core-util.h>
1253a5a1b3Sopenharmony_ci
1353a5a1b3Sopenharmony_ciSTART_TEST (strlist_test) {
1453a5a1b3Sopenharmony_ci    char *t, *u;
1553a5a1b3Sopenharmony_ci    pa_strlist *l = NULL;
1653a5a1b3Sopenharmony_ci
1753a5a1b3Sopenharmony_ci    l = pa_strlist_prepend(l, "e");
1853a5a1b3Sopenharmony_ci    l = pa_strlist_prepend(l, "d");
1953a5a1b3Sopenharmony_ci    l = pa_strlist_prepend(l, "c");
2053a5a1b3Sopenharmony_ci    l = pa_strlist_prepend(l, "b");
2153a5a1b3Sopenharmony_ci    l = pa_strlist_prepend(l, "a");
2253a5a1b3Sopenharmony_ci
2353a5a1b3Sopenharmony_ci    t = pa_strlist_to_string(l);
2453a5a1b3Sopenharmony_ci    pa_strlist_free(l);
2553a5a1b3Sopenharmony_ci
2653a5a1b3Sopenharmony_ci    fprintf(stderr, "1: %s\n", t);
2753a5a1b3Sopenharmony_ci    fail_unless(pa_streq(t, "a b c d e"));
2853a5a1b3Sopenharmony_ci
2953a5a1b3Sopenharmony_ci    l = pa_strlist_parse(t);
3053a5a1b3Sopenharmony_ci    pa_xfree(t);
3153a5a1b3Sopenharmony_ci
3253a5a1b3Sopenharmony_ci    t = pa_strlist_to_string(l);
3353a5a1b3Sopenharmony_ci    fprintf(stderr, "2: %s\n", t);
3453a5a1b3Sopenharmony_ci    fail_unless(pa_streq(t, "a b c d e"));
3553a5a1b3Sopenharmony_ci    pa_xfree(t);
3653a5a1b3Sopenharmony_ci
3753a5a1b3Sopenharmony_ci    l = pa_strlist_pop(l, &u);
3853a5a1b3Sopenharmony_ci    fprintf(stderr, "3: %s\n", u);
3953a5a1b3Sopenharmony_ci    fail_unless(pa_streq(u, "a"));
4053a5a1b3Sopenharmony_ci    pa_xfree(u);
4153a5a1b3Sopenharmony_ci
4253a5a1b3Sopenharmony_ci    l = pa_strlist_remove(l, "c");
4353a5a1b3Sopenharmony_ci
4453a5a1b3Sopenharmony_ci    t = pa_strlist_to_string(l);
4553a5a1b3Sopenharmony_ci    fprintf(stderr, "4: %s\n", t);
4653a5a1b3Sopenharmony_ci    fail_unless(pa_streq(t, "b d e"));
4753a5a1b3Sopenharmony_ci    pa_xfree(t);
4853a5a1b3Sopenharmony_ci
4953a5a1b3Sopenharmony_ci    pa_strlist_free(l);
5053a5a1b3Sopenharmony_ci}
5153a5a1b3Sopenharmony_ciEND_TEST
5253a5a1b3Sopenharmony_ci
5353a5a1b3Sopenharmony_ciint main(int argc, char *argv[]) {
5453a5a1b3Sopenharmony_ci    int failed = 0;
5553a5a1b3Sopenharmony_ci    Suite *s;
5653a5a1b3Sopenharmony_ci    TCase *tc;
5753a5a1b3Sopenharmony_ci    SRunner *sr;
5853a5a1b3Sopenharmony_ci
5953a5a1b3Sopenharmony_ci    s = suite_create("StrList");
6053a5a1b3Sopenharmony_ci    tc = tcase_create("strlist");
6153a5a1b3Sopenharmony_ci    tcase_add_test(tc, strlist_test);
6253a5a1b3Sopenharmony_ci    suite_add_tcase(s, tc);
6353a5a1b3Sopenharmony_ci
6453a5a1b3Sopenharmony_ci    sr = srunner_create(s);
6553a5a1b3Sopenharmony_ci    srunner_run_all(sr, CK_NORMAL);
6653a5a1b3Sopenharmony_ci    failed = srunner_ntests_failed(sr);
6753a5a1b3Sopenharmony_ci    srunner_free(sr);
6853a5a1b3Sopenharmony_ci
6953a5a1b3Sopenharmony_ci    return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
7053a5a1b3Sopenharmony_ci}
71