-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.c
96 lines (79 loc) · 3.98 KB
/
test.c
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
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include "filedict.h"
#define breakpoint() raise(SIGTRAP)
#define error_check() do { if (filedict.error) { printf("Line %i error: %s\n", __LINE__, filedict.error); filedict_deinit(&filedict); return 1; } } while (0)
#define error_check2() do { if (filedict2.error) { printf("Line %i error: %s\n", __LINE__, filedict2.error); filedict_deinit(&filedict2); return 1; } } while (0)
int main() {
filedict_t filedict, filedict2;
filedict_init(&filedict);
filedict_init(&filedict2);
int status;
error_check();
error_check2();
filedict_open_new(&filedict, "test.data");
error_check();
filedict_insert(&filedict, "mykey", "myvalue");
error_check();
filedict_open(&filedict2, "test.data");
error_check2();
printf("--------- INSERTING MANY KEYS --------\n");
filedict_insert(&filedict, "key2", "key2value1");
filedict_insert(&filedict, "key2", "key2value2");
filedict_insert(&filedict, "key2", "key2value3");
filedict_insert(&filedict, "key2", "key2value4");
filedict_insert(&filedict, "key2", "key2value5");
filedict_insert(&filedict, "key2", "key2value6");
filedict_insert(&filedict, "key2", "key2value7");
filedict_insert(&filedict, "key2", "key2value8");
filedict_insert(&filedict, "key2", "key2value9");
filedict_insert(&filedict, "key2", "key2value10");
filedict_insert(&filedict, "key2", "key2value11");
filedict_insert(&filedict, "key2", "key2value12");
filedict_insert(&filedict, "key2", "key2value13");
filedict_insert(&filedict, "key2", "key2value14");
filedict_insert(&filedict, "key2", "key2value15");
filedict_insert(&filedict, "key2", "here is a really long one. lets get crazy. push it to the limit. pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it 1.");
error_check();
filedict_insert(&filedict, "key2", "here is a really long one. lets get crazy. push it to the limit. pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it 2.");
filedict_insert(&filedict, "key2", "here is a really long one. lets get crazy. push it to the limit. pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it pump it 3.");
filedict_insert(&filedict, "key2", "this is it, right? pushes you over the limit. the LIMIT. 限界オーバー! IT IS OVER FOR YOU!!!!!.");
error_check();
filedict_insert_unique(&filedict, "key2", "key2value15");
filedict_insert_unique(&filedict, "key2", "key2value15");
filedict_insert_unique(&filedict, "key2", "key2value16");
error_check();
filedict_insert(&filedict, "mykey", "myvalue2");
error_check();
printf("------------- READING \"key2\" ---------------\n");
filedict_read_t read = filedict_get(&filedict, "key2");
int success = 1;
while (success) {
printf("Read %s\n", read.value);
success = filedict_get_next(&read);
}
filedict_deinit(&filedict);
printf("-------- reading from filedict2 \"key2\" ---------\n");
read = filedict_get(&filedict2, "key2");
success = 1;
while (success) {
printf("Read %s\n", read.value);
success = filedict_get_next(&read);
}
filedict_deinit(&filedict);
filedict_deinit(&filedict2);
printf("-------- making test2.data to merge into test.data ---------\n");
filedict_init(&filedict);
filedict_open_new(&filedict, "test2.data");
filedict_insert(&filedict, "from-test2.data", "merged value 1");
filedict_insert(&filedict, "from-test2.data", "merged value 2");
filedict_insert(&filedict, "another test2 key", "another test2 value");
filedict_insert(&filedict, "key2", "sneaking in a value from test.2data!!");
filedict_deinit(&filedict);
printf("-------- running `merge test.data test2.data` ---------\n");
status = system("./merge test.data test2.data");
printf("merge exited with status code %i\n", status);
printf("\nEverything went well?\n");
return 0;
}