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 }