Mercurial > molko
comparison tests/test-save-quest.c @ 336:f5a5bbb77122
tests: switch to rexo
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 13 Oct 2021 20:56:07 +0200 |
parents | e0657709fbe3 |
children | 460c78706989 |
comparison
equal
deleted
inserted
replaced
335:68287c7bcdb5 | 336:f5a5bbb77122 |
---|---|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
17 */ | 17 */ |
18 | 18 |
19 #include <stdio.h> | 19 #include <stdio.h> |
20 | 20 |
21 #define GREATEST_USE_ABBREVS 0 | 21 #include <rexo.h> |
22 #include <greatest.h> | |
23 | 22 |
24 #include <core/util.h> | 23 #include <core/util.h> |
25 | 24 |
26 #include <rpg/quest.h> | 25 #include <rpg/quest.h> |
27 #include <rpg/save.h> | 26 #include <rpg/save.h> |
28 | 27 |
29 static struct save db; | 28 RX_SET_UP(setup) |
29 { | |
30 if (save_open_path(RX_DATA, "quest.db", SAVE_MODE_WRITE) < 0) | |
31 return RX_ERROR; | |
30 | 32 |
31 static void | 33 return RX_SUCCESS; |
32 clean(void *data) | 34 } |
35 | |
36 RX_TEAR_DOWN(teardown) | |
33 { | 37 { |
34 (void)data; | 38 save_finish(RX_DATA); |
35 | |
36 save_finish(&db); | |
37 remove("quest.db"); | 39 remove("quest.db"); |
38 } | 40 } |
39 | 41 |
40 static void | 42 RX_FIXTURE(basics_fixture, struct save, .set_up = setup, .tear_down = teardown); |
41 setup(void *data) | |
42 { | |
43 (void)data; | |
44 | 43 |
45 if (save_open_path(&db, "quest.db", SAVE_MODE_WRITE) < 0) | 44 RX_TEST_CASE(basics, load, .fixture = basics_fixture) |
46 exit(1); | |
47 } | |
48 | |
49 GREATEST_TEST | |
50 basics_load(void) | |
51 { | 45 { |
52 struct quest_step steps[] = { | 46 struct quest_step steps[] = { |
53 { | 47 { |
54 .name = "0001.01-kill-ten-moko", | 48 .name = "0001.01-kill-ten-moko", |
55 .description = "Kill 10 mokos de las llanuras.", | 49 .description = "Kill 10 mokos de las llanuras.", |
65 .name = "0001-getting-started", | 59 .name = "0001-getting-started", |
66 .description = "Initial quest for adventurer.", | 60 .description = "Initial quest for adventurer.", |
67 .steps = steps, | 61 .steps = steps, |
68 .stepsz = UTIL_SIZE(steps) | 62 .stepsz = UTIL_SIZE(steps) |
69 }; | 63 }; |
64 struct save *save = RX_DATA; | |
70 | 65 |
71 GREATEST_ASSERT_EQ(quest_save(&quest, &db), 0); | 66 RX_INT_REQUIRE_EQUAL(quest_save(&quest, save), 0); |
72 | 67 |
73 /* Reset to inspect. */ | 68 /* Reset to inspect. */ |
74 steps[0].percent = steps[1].percent = 0; | 69 steps[0].percent = steps[1].percent = 0; |
75 GREATEST_ASSERT_EQ(quest_load(&quest, &db), 0); | 70 RX_INT_REQUIRE_EQUAL(quest_load(&quest, save), 0); |
76 GREATEST_ASSERT_EQ(steps[0].percent, 100); | 71 RX_INT_REQUIRE_EQUAL(steps[0].percent, 100); |
77 GREATEST_ASSERT_EQ(steps[1].percent, 50); | 72 RX_INT_REQUIRE_EQUAL(steps[1].percent, 50); |
78 | |
79 GREATEST_PASS(); | |
80 } | 73 } |
81 | |
82 GREATEST_SUITE(suite_basics) | |
83 { | |
84 GREATEST_SET_SETUP_CB(setup, NULL); | |
85 GREATEST_SET_TEARDOWN_CB(clean, NULL); | |
86 GREATEST_RUN_TEST(basics_load); | |
87 } | |
88 | |
89 GREATEST_MAIN_DEFS(); | |
90 | 74 |
91 int | 75 int |
92 main(int argc, char **argv) | 76 main(int argc, char **argv) |
93 { | 77 { |
94 GREATEST_MAIN_BEGIN(); | 78 return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1; |
95 GREATEST_RUN_SUITE(suite_basics); | |
96 GREATEST_MAIN_END(); | |
97 } | 79 } |