27
28
#include <assert.h>
30
static struct lu_context *
31
start(const char *base, const char *file)
32
33
struct lu_context *ctx;
33
34
struct lu_error *error;
36
/* A memory leak, whatever. */
37
putenv(g_strconcat("LIBUSER_CONF=", base, "/", file, NULL));
37
39
ctx = lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL,
40
42
fprintf(stderr, "Error initializing %s: %s.\n", PACKAGE,
41
43
lu_strerror(error));
46
list = lu_cfg_read(ctx, "test/name", NULL);
47
assert(g_list_length(list) == 2);
48
assert(strcmp(list->data, "value1") == 0);
49
assert(strcmp(list->next->data, "value2") == 0);
50
verify_var(struct lu_context *ctx, const char *key, ...)
56
list = lu_cfg_read(ctx, key, NULL);
58
while ((val = va_arg(ap, const char *)) != NULL) {
59
assert(list != NULL && strcmp(list->data, val) == 0);
66
main(int argc, char *argv[])
68
struct lu_context *ctx;
73
ctx = start(argv[1], "libuser.conf");
75
verify_var(ctx, "test/name", "value1", "value2", (const char *)NULL);
51
77
list = lu_cfg_read(ctx, "test/nonexistent", "default");
52
78
assert(g_list_length(list) == 1);
53
79
assert(strcmp(list->data, "default") == 0);
55
list = lu_cfg_read(ctx, "test/nonexistent", NULL);
56
assert(g_list_length(list) == 0);
81
verify_var(ctx, "test/nonexistent", (const char *)NULL);
58
83
assert(strcmp(lu_cfg_read_single(ctx, "test/name", NULL), "value1")
60
85
assert(strcmp(lu_cfg_read_single(ctx, "test/nonexistent", "default"),
62
87
assert(lu_cfg_read_single(ctx, "test/nonexistent", NULL) == NULL);
64
89
list = lu_cfg_read_keys(ctx, "test");
65
90
assert(g_list_length(list) == 2);
66
91
assert(strcmp(list->data, "name") == 0);
69
94
list = lu_cfg_read_keys(ctx, "invalid");
70
95
assert(g_list_length(list) == 0);
99
ctx = start(argv[1], "libuser_import.conf");
100
verify_var(ctx, "groupdefaults/" LU_GIDNUMBER, "1234",
102
verify_var(ctx, "defaults/mailspooldir", "/mail/dir/value",
104
verify_var(ctx, "defaults/crypt_style", "md5", (const char *)NULL);
105
verify_var(ctx, "userdefaults/" LU_SHADOWMAX, "1235",
107
verify_var(ctx, "userdefaults/" LU_SHADOWMIN, "1236",
109
verify_var(ctx, "userdefaults/" LU_SHADOWWARNING, "1237",
111
verify_var(ctx, "userdefaults/" LU_UIDNUMBER, "1239",
113
/* From (echo $(($(date -d 'may 1 1980 0:0' +%s) / 24 / 3600))) */
114
verify_var(ctx, "userdefaults/" LU_SHADOWEXPIRE, "3773",
116
verify_var(ctx, "userdefaults/" LU_GIDNUMBER, "4322",
118
verify_var(ctx, "userdefaults/" LU_SHADOWINACTIVE, "4323",
120
verify_var(ctx, "userdefaults/" LU_LOGINSHELL, "/login/shell",
122
verify_var(ctx, "defaults/skeleton", "/skeleton/path",
126
ctx = start(argv[1], "libuser_override.conf");
127
verify_var(ctx, "groupdefaults/LU_GIDNUMBER", "4242",
129
verify_var(ctx, "groupdefaults/" LU_GIDNUMBER, (const char *)NULL);
130
verify_var(ctx, "defaults/mailspooldir", "/overridden/mailspooldir",
132
verify_var(ctx, "defaults/crypt_style", "des", (const char *)NULL);
133
verify_var(ctx, "userdefaults/LU_SHADOWMAX", "4243",
135
verify_var(ctx, "userdefaults/" LU_SHADOWMAX, (const char *)NULL);
136
verify_var(ctx, "userdefaults/" LU_SHADOWMIN, "4244",
138
verify_var(ctx, "userdefaults/LU_SHADOWWARNING", "4245",
140
verify_var(ctx, "userdefaults/" LU_SHADOWWARNING, (const char *)NULL);
141
verify_var(ctx, "userdefaults/" LU_UIDNUMBER, "4246",
143
verify_var(ctx, "userdefaults/LU_SHADOWEXPIRE", "4247",
145
verify_var(ctx, "userdefaults/" LU_SHADOWEXPIRE, (const char *)NULL);
146
verify_var(ctx, "userdefaults/LU_GIDNUMBER", "4248",
148
verify_var(ctx, "userdefaults/" LU_GIDNUMBER, (const char *)NULL);
149
verify_var(ctx, "userdefaults/" LU_SHADOWINACTIVE, "4249",
151
verify_var(ctx, "userdefaults/LU_LOGINSHELL", "/overridden/shell",
153
verify_var(ctx, "userdefaults/" LU_LOGINSHELL, (const char *)NULL);
154
verify_var(ctx, "defaults/skeleton", "/overridden/skeleton",