annotate src/lib-dict/test-dict.c @ 22652:09523ad05bef

director: Log whenever HOST-RESET-USERS is used
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 05 Nov 2017 22:53:23 +0200
parents 2e2563132d5f
children cb108f786fb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21390
2e2563132d5f Updated copyright notices to include the year 2017.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents: 19552
diff changeset
1 /* Copyright (c) 2010-2017 Dovecot authors, see the included COPYING file */
10637
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "lib.h"
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 #include "dict-private.h"
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 #include "test-common.h"
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 struct dict dict_driver_client;
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 struct dict dict_driver_file;
14808
b6df5871632a lib-dict: Added memcached backend using its binary protocol.
Timo Sirainen <tss@iki.fi>
parents: 14786
diff changeset
9 struct dict dict_driver_memcached;
14906
96a9a086c052 lib-dict: Added memcached_ascii backend.
Timo Sirainen <tss@iki.fi>
parents: 14808
diff changeset
10 struct dict dict_driver_memcached_ascii;
14786
211fbc872ed4 lib-dict: Added initial version of Redis support.
Timo Sirainen <tss@iki.fi>
parents: 14133
diff changeset
11 struct dict dict_driver_redis;
10637
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 static void test_dict_escape(void)
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 {
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 static const char *input[] = {
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 "", "",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 "foo", "foo",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 "foo\\", "foo\\\\",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 "foo\\bar", "foo\\\\bar",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 "\\bar", "\\\\bar",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 "foo/", "foo\\|",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22 "foo/bar", "foo\\|bar",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 "/bar", "\\|bar",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 "////", "\\|\\|\\|\\|",
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 "/", "\\|"
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26 };
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 unsigned int i;
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 test_begin("dict escape");
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 for (i = 0; i < N_ELEMENTS(input); i += 2) {
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 test_assert(strcmp(dict_escape_string(input[i]), input[i+1]) == 0);
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 test_assert(strcmp(dict_unescape_string(input[i+1]), input[i]) == 0);
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 }
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 test_assert(strcmp(dict_unescape_string("x\\"), "x") == 0);
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35 test_assert(strcmp(dict_unescape_string("\\"), "") == 0);
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 test_end();
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
37 }
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
39 int main(void)
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
40 {
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 static void (*test_functions[])(void) = {
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42 test_dict_escape,
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43 NULL
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 };
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45 return test_run(test_functions);
2cfe01556d6c lib-dict: Added dict_[un]escape_string().
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46 }