Mercurial > paster
annotate tests/test-database.c @ 58:9bf7f28fd08a
make: fix paster permissions
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 12 Apr 2021 13:02:39 +0200 |
parents | ef9f7f40abd1 |
children | fba88439ec0a |
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() {}"), |
52 | 73 .duration = PASTE_DURATION_HOUR, |
34
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() {}"); |
52 | 88 GREATEST_ASSERT_EQ(pastes[0].duration, PASTE_DURATION_HOUR); |
34
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() {}"), |
52 | 104 .duration = PASTE_DURATION_HOUR, |
34
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 = { |
52 | 124 .duration = PASTE_DURATION_HOUR, |
34
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])); |
52 | 156 GREATEST_ASSERT_EQ(pastes[i].duration, PASTE_DURATION_HOUR); |
34
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 = { |
52 | 170 .duration = PASTE_DURATION_HOUR, |
34
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])); |
52 | 202 GREATEST_ASSERT_EQ(pastes[i].duration, PASTE_DURATION_HOUR); |
34
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() {}"), |
52 | 228 .duration = PASTE_DURATION_HOUR, |
34
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 |
42
62361336c415
pasterd: return false when we don't find a paste
David Demelier <markand@malikania.fr>
parents:
38
diff
changeset
|
252 GREATEST_ASSERT(!database_get(&new, "unknown")); |
38
48834441dc86
pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
253 GREATEST_ASSERT(!new.id); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
254 GREATEST_ASSERT(!new.title); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 GREATEST_ASSERT(!new.author); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 GREATEST_ASSERT(!new.language); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 GREATEST_ASSERT(!new.code); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 GREATEST_PASS(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
259 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
260 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
261 GREATEST_SUITE(get) |
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_SET_SETUP_CB(setup, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
264 GREATEST_SET_TEARDOWN_CB(finish, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
265 GREATEST_RUN_TEST(get_basic); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
266 GREATEST_RUN_TEST(get_nonexistent); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
267 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
269 GREATEST_TEST |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
270 search_basic(void) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
271 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
272 struct paste searched[3] = { 0 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
273 struct paste originals[] = { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
274 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
275 .title = estrdup("This is in C"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 .author = estrdup("markand"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
277 .language = estrdup("cpp"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
278 .code = estrdup("int main(void) {}"), |
52 | 279 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
280 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
281 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 .title = estrdup("This is in shell"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 .author = estrdup("markand"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
285 .language = estrdup("shell"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
286 .code = estrdup("f() {}"), |
52 | 287 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 .title = estrdup("This is in python"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
292 .author = estrdup("NiReaS"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
293 .language = estrdup("python"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 .code = estrdup("f: pass"), |
52 | 295 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
296 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
297 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
298 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
299 size_t max = 3; |
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 for (int i = 0; i < 3; ++i) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
302 if (!database_insert(&originals[i])) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
303 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
304 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
305 /* |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
306 * Search: |
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 * title = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
309 * author = markand, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
310 * language = cpp |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
311 */ |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
312 if (!database_search(searched, &max, NULL, "markand", "cpp")) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
313 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
314 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
315 GREATEST_ASSERT_EQ(max, 1); |
38
48834441dc86
pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
316 GREATEST_ASSERT(searched[0].id); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
317 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
|
318 GREATEST_ASSERT_STR_EQ(searched[0].author, "markand"); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
319 GREATEST_ASSERT_STR_EQ(searched[0].language, "cpp"); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 GREATEST_ASSERT_STR_EQ(searched[0].code, "int main(void) {}"); |
52 | 321 GREATEST_ASSERT_EQ(searched[0].duration, PASTE_DURATION_HOUR); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
322 GREATEST_ASSERT(searched[0].visible); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
323 GREATEST_PASS(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
324 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
325 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
326 GREATEST_TEST |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
327 search_notfound(void) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
328 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
329 struct paste searched = { 0 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
330 struct paste original = { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
331 .title = estrdup("This is in C"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
332 .author = estrdup("markand"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 .language = estrdup("cpp"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
334 .code = estrdup("int main(void) {}"), |
52 | 335 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
337 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
338 size_t max = 1; |
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 if (!database_insert(&original)) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
341 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
342 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
343 /* |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
344 * Search: |
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 * title = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
347 * author = jean, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
348 * language = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
349 */ |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
350 if (!database_search(&searched, &max, NULL, "jean", NULL)) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
351 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
352 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
353 GREATEST_ASSERT_EQ(max, 0); |
38
48834441dc86
pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
354 GREATEST_ASSERT(!searched.id); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
355 GREATEST_ASSERT(!searched.title); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
356 GREATEST_ASSERT(!searched.author); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
357 GREATEST_ASSERT(!searched.language); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
358 GREATEST_ASSERT(!searched.code); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
359 GREATEST_PASS(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
360 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
361 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
362 GREATEST_TEST |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
363 search_private(void) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
364 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
365 struct paste searched = { 0 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
366 struct paste original = { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
367 .title = estrdup("This is secret"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
368 .author = estrdup("anonymous"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
369 .language = estrdup("nohighlight"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
370 .code = estrdup("I love you, honey"), |
52 | 371 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
372 .visible = false |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
373 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
374 size_t max = 1; |
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 if (!database_insert(&original)) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
377 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
378 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
379 /* |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
380 * Search: |
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 * title = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
383 * author = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
384 * language = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
385 */ |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
386 if (!database_search(&searched, &max, NULL, NULL, NULL)) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
387 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
388 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
389 GREATEST_ASSERT_EQ(max, 0); |
38
48834441dc86
pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
390 GREATEST_ASSERT(!searched.id); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
391 GREATEST_ASSERT(!searched.title); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
392 GREATEST_ASSERT(!searched.author); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
393 GREATEST_ASSERT(!searched.language); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
394 GREATEST_ASSERT(!searched.code); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
395 GREATEST_PASS(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
396 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
397 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
398 GREATEST_SUITE(search) |
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_SET_SETUP_CB(setup, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
401 GREATEST_SET_TEARDOWN_CB(finish, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
402 GREATEST_RUN_TEST(search_basic); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
403 GREATEST_RUN_TEST(search_notfound); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
404 GREATEST_RUN_TEST(search_private); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
405 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
406 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
407 GREATEST_TEST |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
408 clear_run(void) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
409 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
410 struct paste searched = { 0 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
411 struct paste originals[] = { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
412 /* Will be deleted */ |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
413 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
414 .title = estrdup("This is in C"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
415 .author = estrdup("markand"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
416 .language = estrdup("cpp"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
417 .code = estrdup("int main(void) {}"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
418 .duration = 1, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
419 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
420 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
421 /* Will be deleted */ |
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 .title = estrdup("This is in shell"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
424 .author = estrdup("markand"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
425 .language = estrdup("shell"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
426 .code = estrdup("f() {}"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
427 .duration = 1, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
428 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
429 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
430 /* Will be kept */ |
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 .title = estrdup("This is in python"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
433 .author = estrdup("NiReaS"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
434 .language = estrdup("python"), |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
435 .code = estrdup("f: pass"), |
52 | 436 .duration = PASTE_DURATION_HOUR, |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
437 .visible = true |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
438 }, |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
439 }; |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
440 size_t max = 1; |
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 for (int i = 0; i < 3; ++i) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
443 if (!database_insert(&originals[i])) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
444 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
445 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
446 /* 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
|
447 sleep(2); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
448 database_clear(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
449 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
450 /* |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
451 * Search: |
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 * title = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
454 * author = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
455 * language = <any> |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
456 */ |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
457 if (!database_search(&searched, &max, NULL, NULL, NULL)) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
458 GREATEST_FAIL(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
459 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
460 GREATEST_ASSERT_EQ(max, 1); |
38
48834441dc86
pasterd: generate smaller identifiers, closes #2480 @1h
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
461 GREATEST_ASSERT(searched.id); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
462 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
|
463 GREATEST_ASSERT_STR_EQ(searched.author, "NiReaS"); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
464 GREATEST_ASSERT_STR_EQ(searched.language, "python"); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
465 GREATEST_ASSERT_STR_EQ(searched.code, "f: pass"); |
52 | 466 GREATEST_ASSERT_EQ(searched.duration, PASTE_DURATION_HOUR); |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
467 GREATEST_ASSERT(searched.visible); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
468 GREATEST_PASS(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
469 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
470 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
471 GREATEST_SUITE(clear) |
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_SET_SETUP_CB(setup, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
474 GREATEST_SET_TEARDOWN_CB(finish, NULL); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
475 GREATEST_RUN_TEST(clear_run); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
476 } |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
477 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
478 GREATEST_MAIN_DEFS(); |
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 int |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
481 main(int argc, char **argv) |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
482 { |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
483 GREATEST_MAIN_BEGIN(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
484 GREATEST_RUN_SUITE(recents); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
485 GREATEST_RUN_SUITE(get); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
486 GREATEST_RUN_SUITE(search); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
487 GREATEST_RUN_SUITE(clear); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
488 GREATEST_MAIN_END(); |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
489 } |