annotate tests/test-database.c @ 41:c3b127966241

misc: added signature for changeset 047f9a6bbff1
author David Demelier <markand@malikania.fr>
date Thu, 13 Feb 2020 12:05:00 +0100
parents 48834441dc86
children 62361336c415
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-database.c -- test database functions
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <stdio.h>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <unistd.h>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #define GREATEST_USE_ABBREVS 0
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <greatest.h>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include "database.h"
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #include "paste.h"
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include "util.h"
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 #define TEST_DATABASE "test.db"
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 static void
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 setup(void *data)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 remove(TEST_DATABASE);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 if (!database_open(TEST_DATABASE))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 die("abort: could not open database");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 (void)data;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 static void
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 finish(void *data)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 database_finish();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
46
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 (void)data;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 recents_empty(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 struct paste pastes[10];
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 size_t max = 10;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 if (!database_recents(pastes, &max))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 GREATEST_ASSERT_EQ(max, 0);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 recents_one(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 struct paste pastes[10];
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 size_t max = 10;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 struct paste one = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 .title = estrdup("test 1"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 .author = estrdup("unit test"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 .code = estrdup("int main() {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 if (!database_insert(&one))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 if (!database_recents(pastes, &max))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 GREATEST_ASSERT_EQ(max, 1);
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
83 GREATEST_ASSERT(pastes[0].id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 GREATEST_ASSERT_STR_EQ(pastes[0].title, "test 1");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 GREATEST_ASSERT_STR_EQ(pastes[0].author, "unit test");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 GREATEST_ASSERT_STR_EQ(pastes[0].language, "cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 GREATEST_ASSERT_STR_EQ(pastes[0].code, "int main() {}");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 GREATEST_ASSERT_EQ(pastes[0].duration, PASTE_HOUR);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 GREATEST_ASSERT(pastes[0].visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 recents_hidden(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 struct paste pastes[10];
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 size_t max = 10;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 struct paste one = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 .title = estrdup("test 1"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 .author = estrdup("unit test"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 .code = estrdup("int main() {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 .visible = false
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 if (!database_insert(&one))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 if (!database_recents(pastes, &max))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 GREATEST_ASSERT_EQ(max, 0);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
116
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 recents_many(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 static const int expected[] = { 2, 1, 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 struct paste pastes[3];
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 size_t max = 3;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 struct paste pastie = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 for (int i = 0; i < 3; ++i) {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 pastie.title = estrdup(bprintf("test %d", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 pastie.author = estrdup(bprintf("unit test %d", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 pastie.language = estrdup("cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 pastie.code = estrdup(bprintf("int main() { return %d; }", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
133
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 if (!database_insert(&pastie))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 /* Sleep a little bit to avoid same timestamp. */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 sleep(2);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 if (!database_recents(pastes, &max))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 GREATEST_ASSERT_EQ(max, 3U);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 for (int i = 0; i < 3; ++i) {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 /* Selected in most recents first. */
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
148 GREATEST_ASSERT(pastes[i].id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 GREATEST_ASSERT_STR_EQ(pastes[i].title,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 bprintf("test %d", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 GREATEST_ASSERT_STR_EQ(pastes[i].author,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 bprintf("unit test %d", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 GREATEST_ASSERT_STR_EQ(pastes[i].language, "cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 GREATEST_ASSERT_STR_EQ(pastes[i].code,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 bprintf("int main() { return %d; }", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 GREATEST_ASSERT_EQ(pastes[i].duration, PASTE_HOUR);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 GREATEST_ASSERT(pastes[i].visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
162
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 recents_limits(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 static const int expected[] = { 19, 18, 17 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 struct paste pastes[3];
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 size_t max = 3;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 struct paste pastie = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
173
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 for (int i = 0; i < 20; ++i) {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 pastie.title = estrdup(bprintf("test %d", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 pastie.author = estrdup(bprintf("unit test %d", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 pastie.language = estrdup("cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 pastie.code = estrdup(bprintf("int main() { return %d; }", i));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
179
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 if (!database_insert(&pastie))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 /* Sleep a little bit to avoid same timestamp. */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 sleep(2);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 if (!database_recents(pastes, &max))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 GREATEST_ASSERT_EQ(max, 3U);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
191
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 for (int i = 0; i < 3; ++i) {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 /* Selected in most recents first. */
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
194 GREATEST_ASSERT(pastes[i].id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 GREATEST_ASSERT_STR_EQ(pastes[i].title,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 bprintf("test %d", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 GREATEST_ASSERT_STR_EQ(pastes[i].author,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 bprintf("unit test %d", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 GREATEST_ASSERT_STR_EQ(pastes[i].language, "cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 GREATEST_ASSERT_STR_EQ(pastes[i].code,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 bprintf("int main() { return %d; }", expected[i]));
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 GREATEST_ASSERT_EQ(pastes[i].duration, PASTE_HOUR);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 GREATEST_ASSERT(pastes[i].visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
208
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 GREATEST_SUITE(recents)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 GREATEST_SET_SETUP_CB(setup, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 GREATEST_SET_TEARDOWN_CB(finish, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 GREATEST_RUN_TEST(recents_empty);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 GREATEST_RUN_TEST(recents_one);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 GREATEST_RUN_TEST(recents_hidden);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 GREATEST_RUN_TEST(recents_many);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 GREATEST_RUN_TEST(recents_limits);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
219
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 get_basic(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 struct paste original = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 .title = estrdup("test 1"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 .author = estrdup("unit test"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 .code = estrdup("int main() {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 .visible = false
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 struct paste new = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 if (!database_insert(&original))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 GREATEST_FAIL();
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
235 if (!database_get(&new, original.id))
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
238 GREATEST_ASSERT_STR_EQ(new.id, original.id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 GREATEST_ASSERT_STR_EQ(new.title, original.title);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 GREATEST_ASSERT_STR_EQ(new.author, original.author);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 GREATEST_ASSERT_STR_EQ(new.language, original.language);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 GREATEST_ASSERT_STR_EQ(new.code, original.code);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 GREATEST_ASSERT_EQ(new.visible, original.visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
246
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 get_nonexistent(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 struct paste new = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
251
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 if (!database_get(&new, "unknown"))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
254
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
255 GREATEST_ASSERT(!new.id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 GREATEST_ASSERT(!new.title);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 GREATEST_ASSERT(!new.author);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 GREATEST_ASSERT(!new.language);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 GREATEST_ASSERT(!new.code);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
262
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 GREATEST_SUITE(get)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 GREATEST_SET_SETUP_CB(setup, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 GREATEST_SET_TEARDOWN_CB(finish, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 GREATEST_RUN_TEST(get_basic);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 GREATEST_RUN_TEST(get_nonexistent);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
269 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
270
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 search_basic(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 struct paste searched[3] = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 struct paste originals[] = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
277 .title = estrdup("This is in C"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 .author = estrdup("markand"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 .code = estrdup("int main(void) {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 .title = estrdup("This is in shell"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
286 .author = estrdup("markand"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 .language = estrdup("shell"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 .code = estrdup("f() {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
290 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 .title = estrdup("This is in python"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 .author = estrdup("NiReaS"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 .language = estrdup("python"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 .code = estrdup("f: pass"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 size_t max = 3;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
302
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 for (int i = 0; i < 3; ++i)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 if (!database_insert(&originals[i]))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
306
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 /*
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 * Search:
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 * title = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 * author = markand,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 * language = cpp
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 if (!database_search(searched, &max, NULL, "markand", "cpp"))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
316
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 GREATEST_ASSERT_EQ(max, 1);
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
318 GREATEST_ASSERT(searched[0].id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
319 GREATEST_ASSERT_STR_EQ(searched[0].title, "This is in C");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 GREATEST_ASSERT_STR_EQ(searched[0].author, "markand");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 GREATEST_ASSERT_STR_EQ(searched[0].language, "cpp");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 GREATEST_ASSERT_STR_EQ(searched[0].code, "int main(void) {}");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 GREATEST_ASSERT_EQ(searched[0].duration, PASTE_HOUR);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 GREATEST_ASSERT(searched[0].visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
327
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
328 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
329 search_notfound(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 struct paste searched = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
332 struct paste original = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
333 .title = estrdup("This is in C"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 .author = estrdup("markand"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 .code = estrdup("int main(void) {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 size_t max = 1;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
341
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 if (!database_insert(&original))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
344
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
345 /*
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 * Search:
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
347 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 * title = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 * author = jean,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 * language = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 if (!database_search(&searched, &max, NULL, "jean", NULL))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
354
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 GREATEST_ASSERT_EQ(max, 0);
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
356 GREATEST_ASSERT(!searched.id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
357 GREATEST_ASSERT(!searched.title);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
358 GREATEST_ASSERT(!searched.author);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
359 GREATEST_ASSERT(!searched.language);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
360 GREATEST_ASSERT(!searched.code);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
361 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
362 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
363
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
364 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
365 search_private(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
366 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
367 struct paste searched = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 struct paste original = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
369 .title = estrdup("This is secret"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
370 .author = estrdup("anonymous"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
371 .language = estrdup("nohighlight"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
372 .code = estrdup("I love you, honey"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
373 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
374 .visible = false
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
375 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
376 size_t max = 1;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
377
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
378 if (!database_insert(&original))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
379 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
380
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
381 /*
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
382 * Search:
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
383 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
384 * title = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
385 * author = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
386 * language = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
387 */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
388 if (!database_search(&searched, &max, NULL, NULL, NULL))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
389 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
390
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
391 GREATEST_ASSERT_EQ(max, 0);
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
392 GREATEST_ASSERT(!searched.id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
393 GREATEST_ASSERT(!searched.title);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
394 GREATEST_ASSERT(!searched.author);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
395 GREATEST_ASSERT(!searched.language);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
396 GREATEST_ASSERT(!searched.code);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
397 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
398 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
399
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
400 GREATEST_SUITE(search)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
401 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
402 GREATEST_SET_SETUP_CB(setup, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
403 GREATEST_SET_TEARDOWN_CB(finish, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
404 GREATEST_RUN_TEST(search_basic);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
405 GREATEST_RUN_TEST(search_notfound);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
406 GREATEST_RUN_TEST(search_private);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
407 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
408
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
409 GREATEST_TEST
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
410 clear_run(void)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
411 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
412 struct paste searched = { 0 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
413 struct paste originals[] = {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
414 /* Will be deleted */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
415 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
416 .title = estrdup("This is in C"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
417 .author = estrdup("markand"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
418 .language = estrdup("cpp"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
419 .code = estrdup("int main(void) {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
420 .duration = 1,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
421 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
422 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
423 /* Will be deleted */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
424 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
425 .title = estrdup("This is in shell"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
426 .author = estrdup("markand"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
427 .language = estrdup("shell"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
428 .code = estrdup("f() {}"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
429 .duration = 1,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
430 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
431 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
432 /* Will be kept */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
433 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
434 .title = estrdup("This is in python"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
435 .author = estrdup("NiReaS"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
436 .language = estrdup("python"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
437 .code = estrdup("f: pass"),
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
438 .duration = PASTE_HOUR,
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
439 .visible = true
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
440 },
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
441 };
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
442 size_t max = 1;
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
443
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
444 for (int i = 0; i < 3; ++i)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
445 if (!database_insert(&originals[i]))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
446 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
447
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
448 /* Sleep 2 seconds to exceed the lifetime of C and shell pastes. */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
449 sleep(2);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
450 database_clear();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
451
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
452 /*
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
453 * Search:
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
454 *
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
455 * title = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
456 * author = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
457 * language = <any>
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
458 */
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
459 if (!database_search(&searched, &max, NULL, NULL, NULL))
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
460 GREATEST_FAIL();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
461
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
462 GREATEST_ASSERT_EQ(max, 1);
38
48834441dc86 pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents: 34
diff changeset
463 GREATEST_ASSERT(searched.id);
34
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
464 GREATEST_ASSERT_STR_EQ(searched.title, "This is in python");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
465 GREATEST_ASSERT_STR_EQ(searched.author, "NiReaS");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
466 GREATEST_ASSERT_STR_EQ(searched.language, "python");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
467 GREATEST_ASSERT_STR_EQ(searched.code, "f: pass");
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
468 GREATEST_ASSERT_EQ(searched.duration, PASTE_HOUR);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
469 GREATEST_ASSERT(searched.visible);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
470 GREATEST_PASS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
471 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
472
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
473 GREATEST_SUITE(clear)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
474 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
475 GREATEST_SET_SETUP_CB(setup, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
476 GREATEST_SET_TEARDOWN_CB(finish, NULL);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
477 GREATEST_RUN_TEST(clear_run);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
478 }
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
479
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
480 GREATEST_MAIN_DEFS();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
481
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
482 int
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
483 main(int argc, char **argv)
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
484 {
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
485 GREATEST_MAIN_BEGIN();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
486 GREATEST_RUN_SUITE(recents);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
487 GREATEST_RUN_SUITE(get);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
488 GREATEST_RUN_SUITE(search);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
489 GREATEST_RUN_SUITE(clear);
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
490 GREATEST_MAIN_END();
030efbd7340f tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
491 }