1 #include <assert.h>
2 #include <stdio.h>
3 #include <dict.h>
4 #include <string.h>
5
6 const int methods[3] = {
7 AURA_DICT_HASH,
8 AURA_DICT_LIST,
9 AURA_DICT_SORTED_LIST
10 };
11
12 const char *key = "key";
13
14 static struct aura_dict *
dict_create(int method)15 dict_create(int method)
16 {
17 struct aura_dict *d;
18 char *first, *second;
19
20 first = malloc(16);
21 second = malloc(16);
22
23 d = aura_dict_new(2, method);
24
25 snprintf(first, strlen("first") + 1, "%s", "first");
26 snprintf(second, strlen("second") + 1, "%s", "second");
27
28 aura_dict_store(d, key, strlen(key), first, strlen("first") + 1);
29 aura_dict_store(d, key, strlen(key), second, strlen("second") + 1);
30
31 return d;
32 }
33
34 int
main(void)35 main(void)
36 {
37 struct aura_dict *d;
38
39 for (int i = 1; i <= 3; i++) {
40 char *v;
41 size_t len = 0;
42
43 d = dict_create(i);
44
45 aura_dict_fetch(d, "key", strlen("key"), (void **)&v, &len);
46 if (!strcmp("second", v) == 0) {
47 fprintf(stderr,
48 "aura_dict_store did not handle duplicates\n");
49 return 1;
50 }
51 }
52
53 return 0;
54 }
55