53 fail_unless(
arch != NULL,
"Searching for an existing arch name (large city) should work");
54 fail_unless(!strcmp(
arch->clone.name,
"large city"),
"Searching for an existing arch name shoud have returned us large city but returned %s",
arch->clone.name);
56 fail_unless(
arch != NULL,
"Searching for an existing arch name (Cloak of Magic Resistance) should work");
57 fail_unless(!strcmp(
arch->clone.name,
"Cloak of Magic Resistance"),
"Searching for an existing arch name shoud have returned us Cloak of Magic Resistance but returned %s",
arch->clone.name);
59 fail_unless(
arch == NULL,
"Searching for an inexistant arch name (Cloak of Magic Resistanc) should return NULL");
61 fail_unless(
arch == NULL,
"Searching for an inexistant arch name (some really non existant archetype) should return NULL");
63 fail_unless(
arch == NULL,
"Searching for empty arch name should return NULL");
65 fail_unless(
arch == NULL,
"Searching for NULL arch name should return NULL");
73 fail_unless(
arch != NULL,
"Searching for an existing arch name (large city) + type (66) should work");
74 fail_unless(
arch->clone.type == 66,
"Requested type 66 but got %d",
arch->clone.type);
75 fail_unless(!strcmp(
arch->clone.name,
"large city"),
"Searching for an existing arch name shoud have returned us large city but returned %s",
arch->clone.name);
77 fail_unless(
arch != NULL,
"Searching for an existing arch name (Cloak of Magic Resistance) + type (87) should work");
78 fail_unless(
arch->clone.type == 87,
"Requested type 87 but got %d",
arch->clone.type);
79 fail_unless(!strcmp(
arch->clone.name,
"Cloak of Magic Resistance"),
"Searching for an existing arch name shoud have returned us Cloak of Magic Resistance but returned %s",
arch->clone.name);
81 fail_unless(
arch == NULL,
"Searching for an inexistant arch name (Cloak of Magic Resistanc) should return NULL");
83 fail_unless(
arch == NULL,
"Searching for an existing arch name (Cloak of Magic Resistance) but with wrong type (88) should return NULL");
85 fail_unless(
arch == NULL,
"Searching for type with NULL name should return NULL");
94 fail_unless(
arch != NULL,
"Should be able to discover the alchemy skill");
95 fail_unless(!strcmp(
arch->name,
"skill_alchemy"),
"should have returned skill_alchemy but returned %s",
arch->name);
97 fail_unless(
arch != NULL,
"Should be able to discover the scroll of alchemy skill or something similar");
99 fail_unless(
arch != NULL,
"Should be able to discover something related to the 'one handed weapons' skill");
101 fail_unless(
arch == NULL,
"Asking for null skill should return null");
109 fail_unless(
arch != NULL,
"Should be able to find an arch of type SKILL, subtype SK_LITERACY");
110 fail_unless(
arch->clone.type ==
SKILL,
"Arch of type SKILL, subtype SK_LITERACY shoud have type %d but has type %d",
SKILL,
arch->clone.type);
111 fail_unless(
arch->clone.subtype ==
SK_LITERACY,
"Arch of type SKILL, subtype SK_LITERACY shoud have subtype %d but has subtype %d",
SK_LITERACY,
arch->clone.subtype);
113 fail_unless(
arch != NULL,
"Should be able to find an arch of type SKILL, no subtype");
114 fail_unless(
arch->clone.type ==
SKILL,
"arch of type SKILL, no subtype should have type %d but has %d",
SKILL,
arch->clone.type);
116 fail_unless(
arch != NULL,
"Should be able to find an arch of type unknown, SK_LITERACY");
117 fail_unless(
arch->clone.subtype ==
SK_LITERACY,
"arch of type unknown, subtype quest in progress shoud have subtype %d but has subtype %d",
SK_LITERACY,
arch->clone.subtype);
119 fail_unless(
arch != NULL,
"Should be able to find arch of type unknown, subtype unknown, despite this being useless");
121 fail_unless(
arch == NULL,
"Should be not able to find arch of inexistant type but got %p (%s)",
arch,
arch->name);
130 fail_unless(
ob != NULL,
"Should never return null");
132 fail_unless(!strncmp(
ob->name,
"writing pen", strlen(
ob->name)),
"Searching for writing pen should have returned something with same base name but returned '%s'",
ob->name);
134 fail_unless(
ob != NULL,
"Should never return null");
136 fail_unless(!strncmp(
ob->name,
"writing pen of hell raiser +3", strlen(
ob->name)),
"Searching for writing pen of hell raiser +3 should have returned something with same base name but returned %s",
ob->name);
138 fail_unless(
ob != NULL,
"Inexistent item shuold return a singularity");
141 fail_unless(
ob != NULL,
"Inexistent item shuold return a singularity");
150 fail_unless(
arch != NULL,
"init_archetype should have an 'empty_archetype' loaded");
157 fail_unless(
arch != NULL,
"get_archetype_struct should not return NULL");
158 fail_unless(
arch->name == NULL,
"arch->name of get_archetype_struct should be inited to NULL");
159 fail_unless(
arch->head == NULL,
"arch->head of get_archetype_struct should be inited to NULL");
160 fail_unless(
arch->more == NULL,
"arch->more of get_archetype_struct should be inited to NULL");
161 fail_unless(
arch->clone.other_arch == NULL,
"arch->clone.other_arch of get_archetype_struct should be inited to NULL");
162 fail_unless(
arch->clone.contr == NULL,
"arch->clone.contr of get_archetype_struct should be inited to NULL");
163 fail_unless(
arch->clone.next == NULL,
"arch->clone.next of get_archetype_struct should be inited to NULL");
164 fail_unless(
arch->clone.prev == NULL,
"arch->clone.prev of get_archetype_struct should be inited to NULL");
165 fail_unless(
arch->clone.active_next == NULL,
"arch->clone.active_next of get_archetype_struct should be inited to NULL");
166 fail_unless(
arch->clone.active_prev == NULL,
"arch->clone.active_prev of get_archetype_struct should be inited to NULL");
167 fail_unless(
arch->clone.below == NULL,
"arch->clone.below of get_archetype_struct should be inited to NULL");
168 fail_unless(
arch->clone.above == NULL,
"arch->clone.above of get_archetype_struct should be inited to NULL");
169 fail_unless(
arch->clone.inv == NULL,
"arch->clone.inv of get_archetype_struct should be inited to NULL");
170 fail_unless(
arch->clone.container == NULL,
"arch->clone.container of get_archetype_struct should be inited to NULL");
171 fail_unless(
arch->clone.env == NULL,
"arch->clone.env of get_archetype_struct should be inited to NULL");
172 fail_unless(
arch->clone.more == NULL,
"arch->clone.more of get_archetype_struct should be inited to NULL");
173 fail_unless(
arch->clone.head == NULL,
"arch->clone.head of get_archetype_struct should be inited to NULL");
174 fail_unless(
arch->clone.map == NULL,
"arch->clone.map of get_archetype_struct should be inited to NULL");
176 fail_unless(
arch->clone.name == NULL,
"arch->clone.name of get_archetype_struct should be inited to NULL");
177 fail_unless(
arch->clone.name_pl == NULL,
"arch->clone.name_pl of get_archetype_struct should be inited to NULL");
178 fail_unless(
arch->clone.title == NULL,
"arch->clone.title of get_archetype_struct should be inited to NULL");
179 fail_unless(
arch->clone.race == NULL,
"arch->clone.race of get_archetype_struct should be inited to NULL");
180 fail_unless(
arch->clone.slaying == NULL,
"arch->clone.slaying of get_archetype_struct should be inited to NULL");
181 fail_unless(
arch->clone.msg == NULL,
"arch->clone.msg of get_archetype_struct should be inited to NULL");
182 fail_unless(
arch->clone.skill == NULL,
"arch->clone.skill of get_archetype_struct should be inited to NULL");
183 fail_unless(
arch->clone.lore == NULL,
"arch->clone.lore of get_archetype_struct should be inited to NULL");
185 fail_unless(
arch->clone.current_weapon == NULL,
"arch->clone.current_weapon of get_archetype_struct should be inited to NULL");
186 fail_unless(
arch->clone.enemy == NULL,
"arch->clone.enemy of get_archetype_struct should be inited to NULL");
187 fail_unless(
arch->clone.attacked_by == NULL,
"arch->clone.attacked_by of get_archetype_struct should be inited to NULL");
188 fail_unless(
arch->clone.randomitems == NULL,
"arch->clone.randomitems of get_archetype_struct should be inited to NULL");
189 fail_unless(
arch->clone.chosen_skill == NULL,
"arch->clone.chosen_skill of get_archetype_struct should be inited to NULL");
190 fail_unless(
arch->clone.spellitem == NULL,
"arch->clone.spellitem of get_archetype_struct should be inited to NULL");
191 fail_unless(
arch->clone.spell == NULL,
"arch->clone.spell of get_archetype_struct should be inited to NULL");
192 fail_unless(
arch->clone.spellarg == NULL,
"arch->clone.spellarg of get_archetype_struct should be inited to NULL");
193 fail_unless(
arch->clone.arch ==
arch,
"arch->clone.arch of get_archetype_struct should be inited to arch");
194 fail_unless(
arch->clone.other_arch == NULL,
"arch->clone.other_arch of get_archetype_struct should be inited to NULL");
195 fail_unless(
arch->clone.custom_name == NULL,
"arch->clone.custom_name of get_archetype_struct should be inited to NULL");
196 fail_unless(
arch->clone.key_values == NULL,
"arch->clone.key_values of get_archetype_struct should be inited to NULL");
206 fail_unless(
obj != NULL,
"instanciating an arch should not return null");
214 fail_unless(
obj != NULL,
"create_singularity should not return null");
215 fail_unless(strstr(
obj->
name,
"XYZABCD") != NULL,
"create_singularity(\"XYZABCD\") should put XYZABCD somewhere in singularity name");
223 fail_unless(
obj != NULL,
"create_archetype(\"empty_archetype\") should not return null");
231 fail_unless(
arch != NULL,
"find_archetype(\"empty_archetype\") should not return null");
233 fail_unless(
arch != NULL,
"find_archetype(\"elvenboots\") should not return null");
235 fail_unless(
arch != NULL,
"find_archetype(\"AA1234567890\") should not return null");
245 fail_unless(
obj != NULL,
"Should be able to fully instanciate the dark_palace");
246 fail_unless(
obj->
head == NULL,
"The object is full, so we should have got it's head. So head should be null but was %p for object %p",
obj->
head,
obj);
247 fail_unless(
obj->
more != NULL,
"The object is full and multisquare, so more should not return null");
252 Suite *s = suite_create(
"arch");
253 TCase *tc_core = tcase_create(
"Core");
254 tcase_set_timeout(tc_core, 60);
259 suite_add_tcase(s, tc_core);
260 tcase_add_test(tc_core, test_find_archetype_by_object_name);
261 tcase_add_test(tc_core, test_find_archetype_by_object_type_name);
262 tcase_add_test(tc_core, test_get_archetype_by_skill_name);
263 tcase_add_test(tc_core, test_get_archetype_by_type_subtype);
264 tcase_add_test(tc_core, test_create_archetype_by_object_name);
265 tcase_add_test(tc_core, test_init_archetypes);
266 tcase_add_test(tc_core, test_get_archetype_struct);
267 tcase_add_test(tc_core, test_arch_to_object);
268 tcase_add_test(tc_core, test_create_singularity);
269 tcase_add_test(tc_core, test_create_archetype);
270 tcase_add_test(tc_core, test_find_archetype);
271 tcase_add_test(tc_core, test_object_create_arch);
279 SRunner *sr = srunner_create(s);
281 srunner_set_xml(sr, LOGDIR
"/unit/common/arch.xml");
282 srunner_set_log(sr, LOGDIR
"/unit/common/arch.out");
283 srunner_run_all(sr, CK_ENV);
284 nf = srunner_ntests_failed(sr);
286 return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;