52 fail_unless(
list.items == first,
"First not inserted in first place");
55 fail_unless(
list.items == new_first,
"First not replaced");
56 fail_unless(new_first->
next == first,
"List not correctly linked");
59 fail_unless(first->
next == second,
"Second not inserted at end");
60 fail_unless(second->
next == NULL,
"Second should be the last");
63 fail_unless(first->
next == between,
"Between should be after first");
64 fail_unless(between->
next == second,
"Between should be before second");
67 fail_unless(
list.items == other_first,
"Other first should be first item");
68 fail_unless(other_first->
next == new_first,
"Other first should be before new first");
82 fail_unless(
list.items == second,
"first not removed");
84 fail_unless(second->
next == fourth,
"third not removed");
86 fail_unless(fourth->
next == NULL,
"fifth not removed");
91 object *
inv =
op->inv;
92 while ((*items) != NULL) {
93 fail_unless(
inv != NULL,
"missing item %s", *items);
94 fail_unless(strcmp(
inv->name, *items) == 0,
"got %s instead of %s",
inv->name, *items);
100 printf(
" => unexpected inv %s\n",
inv->name);
103 fail_unless(
inv != NULL,
"got extra inv");
110 const char *items[] = {
"kobold's heart", NULL};
113 fail_unless(
list,
"missing list 'ape_parts'");
115 fail_unless(k,
"missing kobold");
123 const char *items[] = {
134 fail_unless(
list,
"missing list 'c_knight'");
136 fail_unless(k,
"missing kobold");
144 object *
inv =
op->inv;
145 fail_unless(
inv,
"missing inv");
146 fail_unless(
inv->below == NULL,
"unexpected below");
147 while (first != last) {
148 if (strcmp(*first,
inv->arch->name) == 0) {
158 "rune_medium_fireball",
159 "rune_burning_hands",
171 "rune_summon_air_elemental",
173 "rune_large_icestorm",
174 "rune_large_fireball",
175 "rune_ball_lightning",
177 "rune_summon_earth_elemental",
178 "rune_summon_fire_elemental",
179 "rune_summon_water_elemental",
187 fail_unless(
list,
"missing list");
188 for (
int i = 0; i < 1000; i++) {
198 for (
int i = 0; i < 1000; i++) {
205 fail_unless(nastier > 0,
"should get a nastier trap");
212 fail_unless(
list,
"missing list");
215 memset(&
t, 0,
sizeof(
t));
218 t.list_magic_value =
value;
219 t.list_magic_adjustment = adjustment;
221 memset(&tl, 0,
sizeof(tl));
226 for (
int i = 0; (i < 1000) && (nastier == 0); i++) {
237 fail_unless(nastier > 0,
"should get a nastier trap");
252 memset(&
t, 0,
sizeof(
t));
255 fail_unless(
t.item,
"missing dagger");
258 memset(&tl, 0,
sizeof(tl));
269 fail_unless(k->
inv,
"nothing generated");
270 fail_unless(k->
inv->
artifact == p,
"artifact not generated");
276 fail_unless(k->
inv == NULL,
"something was generated");
282 fail_unless(k->
inv == NULL,
"something was generated");
287 Suite *s = suite_create(
"treasure");
288 TCase *tc_core = tcase_create(
"Core");
293 suite_add_tcase(s, tc_core);
294 tcase_add_test(tc_core, test_add_treasure_in_list);
295 tcase_add_test(tc_core, test_treasure_remove_item);
296 tcase_add_test(tc_core, test_create_treasure_one);
297 tcase_add_test(tc_core, test_create_treasure_all);
298 tcase_add_test(tc_core, test_magic_limit);
299 tcase_add_test(tc_core, test_magic_set);
300 tcase_add_test(tc_core, test_magic_adjustment);
301 tcase_add_test(tc_core, test_artifact_valid);
302 tcase_add_test(tc_core, test_artifact_invalid);
303 tcase_add_test(tc_core, test_artifact_not_existing);
311 SRunner *sr = srunner_create(s);
315 srunner_set_fork_status(sr, CK_NOFORK);
317 srunner_set_xml(sr, LOGDIR
"/unit/common/treasure.xml");
318 srunner_set_log(sr, LOGDIR
"/unit/common/treasure.out");
319 srunner_run_all(sr, CK_ENV);
320 nf = srunner_ntests_failed(sr);
322 return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;