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 }