Mercurial > molko
comparison tests/test-map.c @ 336:f5a5bbb77122
tests: switch to rexo
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 13 Oct 2021 20:56:07 +0200 |
parents | d01e83210ca2 |
children | 460c78706989 |
comparison
equal
deleted
inserted
replaced
335:68287c7bcdb5 | 336:f5a5bbb77122 |
---|---|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
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 #define GREATEST_USE_ABBREVS 0 | 19 #include <rexo.h> |
20 #include <greatest.h> | |
21 | 20 |
22 #include <core/core.h> | 21 #include <core/core.h> |
23 #include <core/error.h> | 22 #include <core/error.h> |
24 #include <core/panic.h> | 23 #include <core/panic.h> |
25 #include <core/sys.h> | 24 #include <core/sys.h> |
26 #include <core/window.h> | 25 #include <core/window.h> |
27 | 26 |
28 #include <rpg/map-file.h> | 27 #include <rpg/map-file.h> |
29 #include <rpg/map.h> | 28 #include <rpg/map.h> |
30 | 29 |
31 GREATEST_TEST | 30 RX_TEST_CASE(test, basics_sample) |
32 test_basics_sample(void) | |
33 { | 31 { |
34 struct map_file loader = {0}; | 32 struct map_file loader = {0}; |
35 struct map map = {0}; | 33 struct map map = {0}; |
36 | 34 |
37 GREATEST_ASSERT(map_file_open(&loader, &map, DIRECTORY "sample-map.map")); | 35 RX_INT_REQUIRE_EQUAL(map_file_open(&loader, &map, DIRECTORY "/maps/sample-map.map"), 0); |
38 GREATEST_ASSERT_STR_EQ("This is a test map", map.title); | 36 RX_STR_REQUIRE_EQUAL(map.title, "This is a test map"); |
39 GREATEST_ASSERT_EQ(4, map.columns); | 37 RX_UINT_REQUIRE_EQUAL(map.columns, 4U); |
40 GREATEST_ASSERT_EQ(2, map.rows); | 38 RX_UINT_REQUIRE_EQUAL(map.rows, 2U); |
41 | 39 |
42 GREATEST_ASSERT_EQ(0, map.layers[0].tiles[0]); | 40 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[0], 0U); |
43 GREATEST_ASSERT_EQ(1, map.layers[0].tiles[1]); | 41 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[1], 1U); |
44 GREATEST_ASSERT_EQ(2, map.layers[0].tiles[2]); | 42 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[2], 2U); |
45 GREATEST_ASSERT_EQ(3, map.layers[0].tiles[3]); | 43 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[3], 3U); |
46 GREATEST_ASSERT_EQ(4, map.layers[0].tiles[4]); | 44 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[4], 4U); |
47 GREATEST_ASSERT_EQ(5, map.layers[0].tiles[5]); | 45 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[5], 5U); |
48 GREATEST_ASSERT_EQ(6, map.layers[0].tiles[6]); | 46 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[6], 6U); |
49 GREATEST_ASSERT_EQ(7, map.layers[0].tiles[7]); | 47 RX_UINT_REQUIRE_EQUAL(map.layers[0].tiles[7], 7U); |
50 | 48 |
51 GREATEST_ASSERT_EQ(8, map.layers[1].tiles[0]); | 49 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[0], 8U); |
52 GREATEST_ASSERT_EQ(9, map.layers[1].tiles[1]); | 50 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[1], 9U); |
53 GREATEST_ASSERT_EQ(10, map.layers[1].tiles[2]); | 51 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[2], 10U); |
54 GREATEST_ASSERT_EQ(11, map.layers[1].tiles[3]); | 52 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[3], 11U); |
55 GREATEST_ASSERT_EQ(12, map.layers[1].tiles[4]); | 53 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[4], 12U); |
56 GREATEST_ASSERT_EQ(13, map.layers[1].tiles[5]); | 54 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[5], 13U); |
57 GREATEST_ASSERT_EQ(14, map.layers[1].tiles[6]); | 55 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[6], 14U); |
58 GREATEST_ASSERT_EQ(15, map.layers[1].tiles[7]); | 56 RX_UINT_REQUIRE_EQUAL(map.layers[1].tiles[7], 15U); |
59 | 57 |
60 GREATEST_ASSERT_EQ(64U, map.tileset->sprite->cellw); | 58 RX_UINT_REQUIRE_EQUAL(map.tileset->sprite->cellw, 64U); |
61 GREATEST_ASSERT_EQ(32U, map.tileset->sprite->cellh); | 59 RX_UINT_REQUIRE_EQUAL(map.tileset->sprite->cellh, 32U); |
62 | 60 |
63 GREATEST_ASSERT_EQ(4, map.tileset->tiledefsz); | 61 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefsz, 4); |
64 | 62 |
65 GREATEST_ASSERT_EQ(129, map.tileset->tiledefs[0].id); | 63 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[0].id, 129U); |
66 GREATEST_ASSERT_EQ(8, map.tileset->tiledefs[0].x); | 64 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[0].x, 8U); |
67 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[0].y); | 65 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[0].y, 0U); |
68 GREATEST_ASSERT_EQ(56, map.tileset->tiledefs[0].w); | 66 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[0].w, 56U); |
69 GREATEST_ASSERT_EQ(40, map.tileset->tiledefs[0].h); | 67 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[0].h, 40U); |
70 | 68 |
71 GREATEST_ASSERT_EQ(130, map.tileset->tiledefs[1].id); | 69 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[1].id, 130); |
72 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[1].x); | 70 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[1].x, 0); |
73 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[1].y); | 71 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[1].y, 0); |
74 GREATEST_ASSERT_EQ(62, map.tileset->tiledefs[1].w); | 72 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[1].w, 62); |
75 GREATEST_ASSERT_EQ(40, map.tileset->tiledefs[1].h); | 73 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[1].h, 40); |
76 | 74 |
77 GREATEST_ASSERT_EQ(132, map.tileset->tiledefs[2].id); | 75 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[2].id, 132U); |
78 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[2].x); | 76 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[2].x, 0U); |
79 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[2].y); | 77 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[2].y, 0U); |
80 GREATEST_ASSERT_EQ(64, map.tileset->tiledefs[2].w); | 78 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[2].w, 64U); |
81 GREATEST_ASSERT_EQ(40, map.tileset->tiledefs[2].h); | 79 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[2].h, 40U); |
82 | 80 |
83 GREATEST_ASSERT_EQ(133, map.tileset->tiledefs[3].id); | 81 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[3].id, 133U); |
84 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[3].x); | 82 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[3].x, 0U); |
85 GREATEST_ASSERT_EQ(0, map.tileset->tiledefs[3].y); | 83 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[3].y, 0U); |
86 GREATEST_ASSERT_EQ(58, map.tileset->tiledefs[3].w); | 84 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[3].w, 58U); |
87 GREATEST_ASSERT_EQ(40, map.tileset->tiledefs[3].h); | 85 RX_UINT_REQUIRE_EQUAL(map.tileset->tiledefs[3].h, 40U); |
88 | 86 |
89 map_finish(&map); | 87 map_finish(&map); |
90 map_file_finish(&loader); | 88 map_file_finish(&loader); |
91 | |
92 GREATEST_PASS(); | |
93 } | 89 } |
94 | 90 |
95 GREATEST_TEST | 91 RX_TEST_CASE(test, error_title) |
96 test_error_title(void) | |
97 { | 92 { |
98 struct map_file loader = {0}; | 93 struct map_file loader = {0}; |
99 struct map map = {0}; | 94 struct map map = {0}; |
100 | 95 |
101 GREATEST_ASSERT(!map_file_open(&loader, &map, DIRECTORY "error-title.map")); | 96 RX_INT_REQUIRE_EQUAL(map_file_open(&loader, &map, DIRECTORY "error-title.map"), -1); |
102 | 97 |
103 map_finish(&map); | 98 map_finish(&map); |
104 map_file_finish(&loader); | 99 map_file_finish(&loader); |
105 | |
106 GREATEST_PASS(); | |
107 } | 100 } |
108 | 101 |
109 GREATEST_TEST | 102 RX_TEST_CASE(test, error_columns) |
110 test_error_columns(void) | |
111 { | 103 { |
112 struct map_file loader = {0}; | 104 struct map_file loader = {0}; |
113 struct map map = {0}; | 105 struct map map = {0}; |
114 | 106 |
115 GREATEST_ASSERT(!map_file_open(&loader, &map, DIRECTORY "error-columns.map")); | 107 RX_INT_REQUIRE_EQUAL(map_file_open(&loader, &map, DIRECTORY "error-columns.map"), -1); |
116 | 108 |
117 map_finish(&map); | 109 map_finish(&map); |
118 map_file_finish(&loader); | 110 map_file_finish(&loader); |
119 | |
120 GREATEST_PASS(); | |
121 } | 111 } |
122 | 112 |
123 GREATEST_TEST | 113 RX_TEST_CASE(test, error_rows) |
124 test_error_rows(void) | |
125 { | 114 { |
126 struct map_file loader = {0}; | 115 struct map_file loader = {0}; |
127 struct map map = {0}; | 116 struct map map = {0}; |
128 | 117 |
129 GREATEST_ASSERT(!map_file_open(&loader, &map, DIRECTORY "error-rows.map")); | 118 RX_INT_REQUIRE_EQUAL(map_file_open(&loader, &map, DIRECTORY "error-rows.map"), -1); |
130 | 119 |
131 map_finish(&map); | 120 map_finish(&map); |
132 map_file_finish(&loader); | 121 map_file_finish(&loader); |
133 | |
134 GREATEST_PASS(); | |
135 } | 122 } |
136 | |
137 GREATEST_SUITE(suite_basics) | |
138 { | |
139 GREATEST_RUN_TEST(test_basics_sample); | |
140 } | |
141 | |
142 GREATEST_SUITE(suite_errors) | |
143 { | |
144 GREATEST_RUN_TEST(test_error_title); | |
145 GREATEST_RUN_TEST(test_error_columns); | |
146 GREATEST_RUN_TEST(test_error_rows); | |
147 } | |
148 | |
149 GREATEST_MAIN_DEFS(); | |
150 | 123 |
151 int | 124 int |
152 main(int argc, char **argv) | 125 main(int argc, char **argv) |
153 { | 126 { |
154 GREATEST_MAIN_BEGIN(); | |
155 | |
156 /* | 127 /* |
157 * This test opens graphical images and therefore need to initialize a | 128 * This test opens graphical images and therefore need to initialize a |
158 * window and all of the API. As tests sometime run on headless machine | 129 * window and all of the API. As tests sometime run on headless machine |
159 * we will skip if it fails to initialize. | 130 * we will skip if it fails to initialize. |
160 */ | 131 */ |
161 | 132 |
162 if (core_init("fr.malikania", "test") == 0 && window_open("test-map", 100, 100)) { | 133 if (core_init("fr.malikania", "test") < 0 || window_open("test-map", 100, 100) < 0) |
163 GREATEST_RUN_SUITE(suite_basics); | 134 return 1; |
164 GREATEST_RUN_SUITE(suite_errors); | |
165 } | |
166 | 135 |
167 GREATEST_MAIN_END(); | 136 return rx_main(0, NULL, argc, (const char **)argv) == RX_SUCCESS ? 0 : 1; |
168 | |
169 return 0; | |
170 } | 137 } |