1 #include <stdlib.h>
2 #include <glib.h>
3 #include <gmodule.h>
4 #include <check.h>
5 #include <string.h>
6 #include "set.h"
7 #include "testsuite.h"
8 
9 START_TEST(test_set_add)
10 void *data = "data";
11 set_t *s = NULL, *t;
12 t = set_add(&s, "name", "default", NULL, data);
13 fail_unless(s == t);
14 fail_unless(t->data == data);
15 fail_unless(strcmp(t->def, "default") == 0);
16 END_TEST
17 
18 START_TEST(test_set_add_existing)
19 void *data = "data";
20 set_t *s = NULL, *t;
21 t = set_add(&s, "name", "default", NULL, data);
22 t = set_add(&s, "name", "newdefault", NULL, data);
23 fail_unless(s == t);
24 fail_unless(strcmp(t->def, "newdefault") == 0);
25 END_TEST
26 
27 START_TEST(test_set_find_unknown)
28 set_t * s = NULL;
29 fail_unless(set_find(&s, "foo") == NULL);
30 END_TEST
31 
32 START_TEST(test_set_find)
33 void *data = "data";
34 set_t *s = NULL, *t;
35 t = set_add(&s, "name", "default", NULL, data);
36 fail_unless(s == t);
37 fail_unless(set_find(&s, "name") == t);
38 END_TEST
39 
40 START_TEST(test_set_get_str_default)
41 void *data = "data";
42 set_t *s = NULL, *t;
43 t = set_add(&s, "name", "default", NULL, data);
44 fail_unless(s == t);
45 fail_unless(strcmp(set_getstr(&s, "name"), "default") == 0);
46 END_TEST
47 
48 START_TEST(test_set_get_bool_default)
49 void *data = "data";
50 set_t *s = NULL, *t;
51 t = set_add(&s, "name", "true", NULL, data);
52 fail_unless(s == t);
53 fail_unless(set_getbool(&s, "name"));
54 END_TEST
55 
56 START_TEST(test_set_get_bool_integer)
57 void *data = "data";
58 set_t *s = NULL, *t;
59 t = set_add(&s, "name", "3", NULL, data);
60 fail_unless(s == t);
61 fail_unless(set_getbool(&s, "name") == 3);
62 END_TEST
63 
64 START_TEST(test_set_get_bool_unknown)
65 set_t * s = NULL;
66 fail_unless(set_getbool(&s, "name") == 0);
67 END_TEST
68 
69 START_TEST(test_set_get_str_value)
70 void *data = "data";
71 set_t *s = NULL;
72 set_add(&s, "name", "default", NULL, data);
73 set_setstr(&s, "name", "foo");
74 fail_unless(strcmp(set_getstr(&s, "name"), "foo") == 0);
75 END_TEST
76 
77 START_TEST(test_set_get_str_unknown)
78 set_t * s = NULL;
79 fail_unless(set_getstr(&s, "name") == NULL);
80 END_TEST
81 
82 START_TEST(test_setint)
83 void *data = "data";
84 set_t *s = NULL;
85 set_add(&s, "name", "10", NULL, data);
86 set_setint(&s, "name", 3);
87 fail_unless(set_getint(&s, "name") == 3);
88 END_TEST
89 
90 START_TEST(test_setstr)
91 void *data = "data";
92 set_t *s = NULL;
93 set_add(&s, "name", "foo", NULL, data);
94 set_setstr(&s, "name", "bloe");
95 fail_unless(strcmp(set_getstr(&s, "name"), "bloe") == 0);
96 END_TEST
97 
98 START_TEST(test_set_get_int_unknown)
99 set_t * s = NULL;
100 fail_unless(set_getint(&s, "foo") == 0);
101 END_TEST
102 
set_suite(void)103 Suite *set_suite(void)
104 {
105 	Suite *s = suite_create("Set");
106 	TCase *tc_core = tcase_create("Core");
107 
108 	suite_add_tcase(s, tc_core);
109 	tcase_add_test(tc_core, test_set_add);
110 	tcase_add_test(tc_core, test_set_add_existing);
111 	tcase_add_test(tc_core, test_set_find_unknown);
112 	tcase_add_test(tc_core, test_set_find);
113 	tcase_add_test(tc_core, test_set_get_str_default);
114 	tcase_add_test(tc_core, test_set_get_str_value);
115 	tcase_add_test(tc_core, test_set_get_str_unknown);
116 	tcase_add_test(tc_core, test_set_get_bool_default);
117 	tcase_add_test(tc_core, test_set_get_bool_integer);
118 	tcase_add_test(tc_core, test_set_get_bool_unknown);
119 	tcase_add_test(tc_core, test_set_get_int_unknown);
120 	tcase_add_test(tc_core, test_setint);
121 	tcase_add_test(tc_core, test_setstr);
122 	return s;
123 }
124