1#ifdef HAVE_CONFIG_H
2#include <config.h>
3#endif
4
5#include <stdio.h>
6#include <check.h>
7
8#include <pulse/xmalloc.h>
9
10#include <pulsecore/strlist.h>
11#include <pulsecore/core-util.h>
12
13START_TEST (strlist_test) {
14    char *t, *u;
15    pa_strlist *l = NULL;
16
17    l = pa_strlist_prepend(l, "e");
18    l = pa_strlist_prepend(l, "d");
19    l = pa_strlist_prepend(l, "c");
20    l = pa_strlist_prepend(l, "b");
21    l = pa_strlist_prepend(l, "a");
22
23    t = pa_strlist_to_string(l);
24    pa_strlist_free(l);
25
26    fprintf(stderr, "1: %s\n", t);
27    fail_unless(pa_streq(t, "a b c d e"));
28
29    l = pa_strlist_parse(t);
30    pa_xfree(t);
31
32    t = pa_strlist_to_string(l);
33    fprintf(stderr, "2: %s\n", t);
34    fail_unless(pa_streq(t, "a b c d e"));
35    pa_xfree(t);
36
37    l = pa_strlist_pop(l, &u);
38    fprintf(stderr, "3: %s\n", u);
39    fail_unless(pa_streq(u, "a"));
40    pa_xfree(u);
41
42    l = pa_strlist_remove(l, "c");
43
44    t = pa_strlist_to_string(l);
45    fprintf(stderr, "4: %s\n", t);
46    fail_unless(pa_streq(t, "b d e"));
47    pa_xfree(t);
48
49    pa_strlist_free(l);
50}
51END_TEST
52
53int main(int argc, char *argv[]) {
54    int failed = 0;
55    Suite *s;
56    TCase *tc;
57    SRunner *sr;
58
59    s = suite_create("StrList");
60    tc = tcase_create("strlist");
61    tcase_add_test(tc, strlist_test);
62    suite_add_tcase(s, tc);
63
64    sr = srunner_create(s);
65    srunner_run_all(sr, CK_NORMAL);
66    failed = srunner_ntests_failed(sr);
67    srunner_free(sr);
68
69    return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
70}
71