Mercurial > paster
annotate tests/test-database.c @ 39:5e39e116c38d 0.2.0
misc: update before 0.2.0
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 13 Feb 2020 12:04:00 +0100 |
parents | 48834441dc86 |
children | 62361336c415 |
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 } |