aboutsummaryrefslogtreecommitdiffstats
path: root/tests/check_set.c
blob: 5df63270d18cb10a55e221a345872fb9d001e1fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <stdlib.h>
#include <glib.h>
#include <gmodule.h>
#include <check.h>
#include <string.h>
#include "set.h"
#include "testsuite.h"

START_TEST(test_set_add)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "default", NULL, data);
	fail_unless(s == t);
	fail_unless(t->data == data);
	fail_unless(strcmp(t->def, "default") == 0);
END_TEST

START_TEST(test_set_add_existing)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "default", NULL, data);
	t = set_add(&s, "name", "newdefault", NULL, data);
	fail_unless(s == t);
	fail_unless(strcmp(t->def, "newdefault") == 0);
END_TEST

START_TEST(test_set_find_unknown)
	set_t *s = NULL;
	fail_unless (set_find(&s, "foo") == NULL);
END_TEST

START_TEST(test_set_find)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "default", NULL, data);
	fail_unless(s == t);
	fail_unless(set_find(&s, "name") == t);
END_TEST

START_TEST(test_set_get_str_default)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "default", NULL, data);
	fail_unless(s == t);
	fail_unless(strcmp(set_getstr(&s, "name"), "default") == 0);
END_TEST

START_TEST(test_set_get_bool_default)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "true", NULL, data);
	fail_unless(s == t);
	fail_unless(set_getbool(&s, "name"));
END_TEST

START_TEST(test_set_get_bool_integer)
	void *data = "data";
	set_t *s = NULL, *t;
	t = set_add(&s, "name", "3", NULL, data);
	fail_unless(s == t);
	fail_unless(set_getbool(&s, "name") == 3);
END_TEST

START_TEST(test_set_get_bool_unknown)
	set_t *s = NULL;
	fail_unless(set_getbool(&s, "name") == 0);
END_TEST

START_TEST(test_set_get_str_value)
	void *data = "data";
	set_t *s = NULL;
	set_add(&s, "name", "default", NULL, data);
	set_setstr(&s, "name", "foo");
	fail_unless(strcmp(set_getstr(&s, "name"), "foo") == 0);
END_TEST

START_TEST(test_set_get_str_unknown)
	set_t *s = NULL;
	fail_unless(set_getstr(&s, "name") == NULL);
END_TEST

START_TEST(test_setint)
	void *data = "data";
	set_t *s = NULL;
	set_add(&s, "name", "10", NULL, data);
	set_setint(&s, "name", 3);
	fail_unless(set_getint(&s, "name") == 3);
END_TEST

START_TEST(test_setstr)
	void *data = "data";
	set_t *s = NULL;
	set_add(&s, "name", "foo", NULL, data);
	set_setstr(&s, "name", "bloe");
	fail_unless(strcmp(set_getstr(&s, "name"), "bloe") == 0);
END_TEST

START_TEST(test_set_get_int_unknown)
	set_t *s = NULL;
	fail_unless(set_getint(&s, "foo") == 0);
END_TEST

Suite *set_suite (void)
{
	Suite *s = suite_create("Set");
	TCase *tc_core = tcase_create("Core");
	suite_add_tcase (s, tc_core);
	tcase_add_test (tc_core, test_set_add);
	tcase_add_test (tc_core, test_set_add_existing);
	tcase_add_test (tc_core, test_set_find_unknown);
	tcase_add_test (tc_core, test_set_find);
	tcase_add_test (tc_core, test_set_get_str_default);
	tcase_add_test (tc_core, test_set_get_str_value);
	tcase_add_test (tc_core, test_set_get_str_unknown);
	tcase_add_test (tc_core, test_set_get_bool_default);
	tcase_add_test (tc_core, test_set_get_bool_integer);
	tcase_add_test (tc_core, test_set_get_bool_unknown);
	tcase_add_test (tc_core, test_set_get_int_unknown);
	tcase_add_test (tc_core, test_setint);
	tcase_add_test (tc_core, test_setstr);
	return s;
}