~ubuntu-branches/ubuntu/wily/libuser/wily

« back to all changes in this revision

Viewing changes to tests/config_test.c

  • Committer: Bazaar Package Importer
  • Author(s): Pierre Habouzit
  • Date: 2006-09-03 21:58:15 UTC
  • mto: (2.1.1 edgy) (1.1.5 upstream) (3.1.1 lenny)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20060903215815-rtvvfzhaer8ymyp4
Tags: upstream-0.54.6-2.1.dfsg.1
ImportĀ upstreamĀ versionĀ 0.54.6-2.1.dfsg.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#include "config.h"
20
20
#endif
21
21
#include <glib.h>
 
22
#include <stdarg.h>
22
23
#include <stdio.h>
23
24
#include <stdlib.h>
24
25
#include <string.h>
26
27
#undef NDEBUG
27
28
#include <assert.h>
28
29
 
29
 
int
30
 
main(void)
 
30
static struct lu_context *
 
31
start(const char *base, const char *file)
31
32
{
32
33
        struct lu_context *ctx;
33
34
        struct lu_error *error;
34
 
        GList *list;
35
 
        
 
35
 
 
36
        /* A memory leak, whatever. */
 
37
        putenv(g_strconcat("LIBUSER_CONF=", base, "/", file, NULL));
36
38
        error = NULL;
37
39
        ctx = lu_start(NULL, 0, NULL, NULL, lu_prompt_console_quiet, NULL,
38
40
                       &error);
39
41
        if (ctx == NULL) {
40
42
                fprintf(stderr, "Error initializing %s: %s.\n", PACKAGE,
41
43
                        lu_strerror(error));
42
 
                return 1;
43
 
        }
44
 
 
45
 
 
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);
 
44
                exit(1);
 
45
        }
 
46
        return ctx;
 
47
}
 
48
 
 
49
static void
 
50
verify_var(struct lu_context *ctx, const char *key, ...)
 
51
{
 
52
        GList *list;
 
53
        va_list ap;
 
54
        const char *val;
 
55
 
 
56
        list = lu_cfg_read(ctx, key, NULL);
 
57
        va_start(ap, key);
 
58
        while ((val = va_arg(ap, const char *)) != NULL) {
 
59
                assert(list != NULL && strcmp(list->data, val) == 0);
 
60
                list = list->next;
 
61
        }
 
62
        assert(list == NULL);
 
63
}
 
64
 
 
65
int
 
66
main(int argc, char *argv[])
 
67
{
 
68
        struct lu_context *ctx;
 
69
        GList *list;
 
70
 
 
71
        assert(argc == 2);
 
72
 
 
73
        ctx = start(argv[1], "libuser.conf");
 
74
 
 
75
        verify_var(ctx, "test/name", "value1", "value2", (const char *)NULL);
50
76
 
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);
54
80
 
55
 
        list = lu_cfg_read(ctx, "test/nonexistent", NULL);
56
 
        assert(g_list_length(list) == 0);
57
 
        
 
81
        verify_var(ctx, "test/nonexistent", (const char *)NULL);
 
82
 
58
83
        assert(strcmp(lu_cfg_read_single(ctx, "test/name", NULL), "value1")
59
84
               == 0);
60
85
        assert(strcmp(lu_cfg_read_single(ctx, "test/nonexistent", "default"),
61
86
                      "default") == 0);
62
87
        assert(lu_cfg_read_single(ctx, "test/nonexistent", NULL) == NULL);
63
 
        
 
88
 
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);
68
93
 
69
94
        list = lu_cfg_read_keys(ctx, "invalid");
70
95
        assert(g_list_length(list) == 0);
71
 
        
 
96
 
 
97
        lu_end(ctx);
 
98
 
 
99
        ctx = start(argv[1], "libuser_import.conf");
 
100
        verify_var(ctx, "groupdefaults/" LU_GIDNUMBER, "1234",
 
101
                   (const char *)NULL);
 
102
        verify_var(ctx, "defaults/mailspooldir", "/mail/dir/value",
 
103
                   (const char *)NULL);
 
104
        verify_var(ctx, "defaults/crypt_style", "md5", (const char *)NULL);
 
105
        verify_var(ctx, "userdefaults/" LU_SHADOWMAX, "1235",
 
106
                   (const char *)NULL);
 
107
        verify_var(ctx, "userdefaults/" LU_SHADOWMIN, "1236",
 
108
                   (const char *)NULL);
 
109
        verify_var(ctx, "userdefaults/" LU_SHADOWWARNING, "1237",
 
110
                   (const char *)NULL);
 
111
        verify_var(ctx, "userdefaults/" LU_UIDNUMBER, "1239",
 
112
                   (const char *)NULL);
 
113
        /* From (echo $(($(date -d 'may 1 1980 0:0' +%s) / 24 / 3600))) */
 
114
        verify_var(ctx, "userdefaults/" LU_SHADOWEXPIRE, "3773",
 
115
                   (const char *)NULL);
 
116
        verify_var(ctx, "userdefaults/" LU_GIDNUMBER, "4322",
 
117
                   (const char *)NULL);
 
118
        verify_var(ctx, "userdefaults/" LU_SHADOWINACTIVE, "4323",
 
119
                   (const char *)NULL);
 
120
        verify_var(ctx, "userdefaults/" LU_LOGINSHELL, "/login/shell",
 
121
                   (const char *)NULL);
 
122
        verify_var(ctx, "defaults/skeleton", "/skeleton/path",
 
123
                   (const char *)NULL);
 
124
        lu_end(ctx);
 
125
 
 
126
        ctx = start(argv[1], "libuser_override.conf");
 
127
        verify_var(ctx, "groupdefaults/LU_GIDNUMBER", "4242",
 
128
                   (const char *)NULL);
 
129
        verify_var(ctx, "groupdefaults/" LU_GIDNUMBER, (const char *)NULL);
 
130
        verify_var(ctx, "defaults/mailspooldir", "/overridden/mailspooldir",
 
131
                   (const char *)NULL);
 
132
        verify_var(ctx, "defaults/crypt_style", "des", (const char *)NULL);
 
133
        verify_var(ctx, "userdefaults/LU_SHADOWMAX", "4243",
 
134
                   (const char *)NULL);
 
135
        verify_var(ctx, "userdefaults/" LU_SHADOWMAX, (const char *)NULL);
 
136
        verify_var(ctx, "userdefaults/" LU_SHADOWMIN, "4244",
 
137
                   (const char *)NULL);
 
138
        verify_var(ctx, "userdefaults/LU_SHADOWWARNING", "4245",
 
139
                   (const char *)NULL);
 
140
        verify_var(ctx, "userdefaults/" LU_SHADOWWARNING, (const char *)NULL);
 
141
        verify_var(ctx, "userdefaults/" LU_UIDNUMBER, "4246",
 
142
                   (const char *)NULL);
 
143
        verify_var(ctx, "userdefaults/LU_SHADOWEXPIRE", "4247",
 
144
                   (const char *)NULL);
 
145
        verify_var(ctx, "userdefaults/" LU_SHADOWEXPIRE, (const char *)NULL);
 
146
        verify_var(ctx, "userdefaults/LU_GIDNUMBER", "4248",
 
147
                   (const char *)NULL);
 
148
        verify_var(ctx, "userdefaults/" LU_GIDNUMBER, (const char *)NULL);
 
149
        verify_var(ctx, "userdefaults/" LU_SHADOWINACTIVE, "4249",
 
150
                   (const char *)NULL);
 
151
        verify_var(ctx, "userdefaults/LU_LOGINSHELL", "/overridden/shell",
 
152
                   (const char *)NULL);
 
153
        verify_var(ctx, "userdefaults/" LU_LOGINSHELL, (const char *)NULL);
 
154
        verify_var(ctx, "defaults/skeleton", "/overridden/skeleton",
 
155
                   (const char *)NULL);
72
156
        lu_end(ctx);
73
157
 
74
158
        return 0;