disable the missing_message replacement used in so many tests. fix some tests so they don't need it.

This commit is contained in:
Enno Rehling 2018-01-12 21:15:21 +01:00
parent 9dbe1d65b2
commit 98678d9fb2
7 changed files with 29 additions and 11 deletions

View file

@ -726,6 +726,7 @@ message *cinfo_simple(const void *obj, objtype_t typ, const struct curse * c,
UNUSED_ARG(obj); UNUSED_ARG(obj);
msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no); msg = msg_message(mkname("curseinfo", c->type->cname), "id", c->no);
/* TODO: this is never NULL, because of the missing_message logic (used in many tests) */
if (msg == NULL) { if (msg == NULL) {
log_error("There is no curseinfo for %s.\n", c->type->cname); log_error("There is no curseinfo for %s.\n", c->type->cname);
} }

View file

@ -161,12 +161,14 @@ message *msg_message(const char *name, const char *sig, ...)
if (!mtype) { if (!mtype) {
log_warning("trying to create message of unknown type \"%s\"\n", name); log_warning("trying to create message of unknown type \"%s\"\n", name);
#if 0
if (strcmp(name, "missing_message") != 0) { if (strcmp(name, "missing_message") != 0) {
if (!mt_find("missing_message")) { if (!mt_find("missing_message")) {
mt_register(mt_new_va("missing_message", "name:string", 0)); mt_register(mt_new_va("missing_message", "name:string", 0));
} }
return msg_message("missing_message", "name", name); return msg_message("missing_message", "name", name);
} }
#endif
return NULL; return NULL;
} }

View file

@ -255,9 +255,9 @@ static void test_force_leave_buildings(CuTest *tc) {
region *r; region *r;
unit *u1, *u2, *u3; unit *u1, *u2, *u3;
building * b; building * b;
message *msg;
test_setup(); test_setup();
mt_register(mt_new_va("force_leave_building", "unit:unit", "owner:unit", "building:building", NULL));
r = test_create_region(0, 0, test_create_terrain("plain", LAND_REGION)); r = test_create_region(0, 0, test_create_terrain("plain", LAND_REGION));
u1 = test_create_unit(test_create_faction(NULL), r); u1 = test_create_unit(test_create_faction(NULL), r);
u2 = test_create_unit(u1->faction, r); u2 = test_create_unit(u1->faction, r);
@ -271,8 +271,7 @@ static void test_force_leave_buildings(CuTest *tc) {
CuAssertPtrEquals_Msg(tc, "owner should not be forced to leave", b, u1->building); CuAssertPtrEquals_Msg(tc, "owner should not be forced to leave", b, u1->building);
CuAssertPtrEquals_Msg(tc, "same faction should not be forced to leave", b, u2->building); CuAssertPtrEquals_Msg(tc, "same faction should not be forced to leave", b, u2->building);
CuAssertPtrEquals_Msg(tc, "non-allies should be forced to leave", NULL, u3->building); CuAssertPtrEquals_Msg(tc, "non-allies should be forced to leave", NULL, u3->building);
msg = test_get_last_message(u3->faction->msgs); CuAssertPtrNotNull(tc, test_find_messagetype(u3->faction->msgs, "force_leave_building"));
CuAssertStrEquals(tc, "force_leave_building", test_get_messagetype(msg));
u_set_building(u3, b); u_set_building(u3, b);
al = ally_add(&u1->faction->allies, u3->faction); al = ally_add(&u1->faction->allies, u3->faction);
@ -286,9 +285,9 @@ static void test_force_leave_ships(CuTest *tc) {
region *r; region *r;
unit *u1, *u2; unit *u1, *u2;
ship *sh; ship *sh;
message *msg;
test_setup(); test_setup();
mt_register(mt_new_va("force_leave_ship", "unit:unit", "owner:unit", "ship:ship", NULL));
r = test_create_region(0, 0, test_create_terrain("plain", LAND_REGION)); r = test_create_region(0, 0, test_create_terrain("plain", LAND_REGION));
u1 = test_create_unit(test_create_faction(NULL), r); u1 = test_create_unit(test_create_faction(NULL), r);
u2 = test_create_unit(test_create_faction(NULL), r); u2 = test_create_unit(test_create_faction(NULL), r);
@ -298,8 +297,7 @@ static void test_force_leave_ships(CuTest *tc) {
ship_set_owner(u1); ship_set_owner(u1);
force_leave(r, NULL); force_leave(r, NULL);
CuAssertPtrEquals_Msg(tc, "non-allies should be forced to leave", NULL, u2->ship); CuAssertPtrEquals_Msg(tc, "non-allies should be forced to leave", NULL, u2->ship);
msg = test_get_last_message(u2->faction->msgs); CuAssertPtrNotNull(tc, test_find_messagetype(u2->faction->msgs, "force_leave_ship"));
CuAssertStrEquals(tc, "force_leave_ship", test_get_messagetype(msg));
test_teardown(); test_teardown();
} }
@ -1590,9 +1588,9 @@ static void test_demon_hunger(CuTest * tc)
race *rc; race *rc;
faction *f; faction *f;
unit *u; unit *u;
message* msg;
test_setup(); test_setup();
mt_register(mt_new_va("malnourish", "unit:unit", "region:region", NULL));
init_resources(); init_resources();
r = test_create_region(0, 0, 0); r = test_create_region(0, 0, 0);
rc = test_create_race("demon"); rc = test_create_race("demon");
@ -1617,8 +1615,7 @@ static void test_demon_hunger(CuTest * tc)
get_food(r); get_food(r);
CuAssertIntEquals(tc, 10, i_get(u->items, rtype->itype)); CuAssertIntEquals(tc, 10, i_get(u->items, rtype->itype));
msg = test_get_last_message(u->faction->msgs); CuAssertPtrNotNull(tc, test_find_messagetype(f->msgs, "malnourish"));
CuAssertStrEquals(tc, "malnourish", test_get_messagetype(msg));
test_teardown(); test_teardown();
} }

View file

@ -279,6 +279,10 @@ void setup_drift (struct drift_fixture *fix) {
set_level(fix->u, SK_SAILING, fix->st_boat->sumskill); set_level(fix->u, SK_SAILING, fix->st_boat->sumskill);
u_set_ship(fix->u, fix->sh = test_create_ship(fix->u->region, fix->st_boat)); u_set_ship(fix->u, fix->sh = test_create_ship(fix->u->region, fix->st_boat));
assert(fix->sh); assert(fix->sh);
mt_register(mt_new_va("ship_drift", "ship:ship", "dir:int", 0));
mt_register(mt_new_va("shipsink", "ship:ship", 0));
mt_register(mt_new_va("massive_overload", "ship:ship", 0));
} }
static void test_ship_no_overload(CuTest *tc) { static void test_ship_no_overload(CuTest *tc) {

View file

@ -84,6 +84,9 @@ static void test_sabotage_self(CuTest *tc) {
order *ord; order *ord;
test_setup(); test_setup();
mt_register(mt_new_va("sink_msg", "ship:ship", "region:region", 0));
mt_register(mt_new_va("sink_lost_msg", "unit:unit", "region:region", "dead:int", 0));
mt_register(mt_new_va("sink_saved_msg", "unit:unit", "region:region", 0));
r = test_create_region(0, 0, 0); r = test_create_region(0, 0, 0);
assert(r); assert(r);
u = test_create_unit(test_create_faction(NULL), r); u = test_create_unit(test_create_faction(NULL), r);
@ -94,6 +97,7 @@ static void test_sabotage_self(CuTest *tc) {
assert(ord); assert(ord);
CuAssertIntEquals(tc, 0, sabotage_cmd(u, ord)); CuAssertIntEquals(tc, 0, sabotage_cmd(u, ord));
CuAssertPtrEquals(tc, 0, r->ships); CuAssertPtrEquals(tc, 0, r->ships);
CuAssertPtrNotNull(tc, test_find_messagetype(u->faction->msgs, "sink_msg"));
free_order(ord); free_order(ord);
test_teardown(); test_teardown();
} }
@ -106,6 +110,11 @@ static void test_sabotage_other_fail(CuTest *tc) {
message *msg; message *msg;
test_setup(); test_setup();
mt_register(mt_new_va("destroy_ship_0", "unit:unit", "ship:ship", 0));
mt_register(mt_new_va("destroy_ship_1", "unit:unit", "ship:ship", 0));
mt_register(mt_new_va("destroy_ship_2", "unit:unit", "ship:ship", 0));
mt_register(mt_new_va("destroy_ship_3", "ship:ship", 0));
mt_register(mt_new_va("destroy_ship_4", "ship:ship", 0));
r = test_create_region(0, 0, 0); r = test_create_region(0, 0, 0);
assert(r); assert(r);
u = test_create_unit(test_create_faction(NULL), r); u = test_create_unit(test_create_faction(NULL), r);
@ -189,6 +198,9 @@ static void test_sabotage_other_success(CuTest *tc) {
order *ord; order *ord;
test_setup(); test_setup();
mt_register(mt_new_va("sink_msg", "ship:ship", "region:region", 0));
mt_register(mt_new_va("sink_lost_msg", "unit:unit", "region:region", "dead:int", 0));
mt_register(mt_new_va("sink_saved_msg", "unit:unit", "region:region", 0));
r = test_create_region(0, 0, 0); r = test_create_region(0, 0, 0);
assert(r); assert(r);
u = test_create_unit(test_create_faction(NULL), r); u = test_create_unit(test_create_faction(NULL), r);

View file

@ -625,6 +625,8 @@ static void test_teach_message(CuTest *tc) {
teaching_info *teach; teaching_info *teach;
test_setup(); test_setup();
mt_register(mt_new_va("teach_teacher", "teacher:unit", "student:unit", "skill:int", "level:int", 0));
mt_register(mt_new_va("teach_student", "teacher:unit", "student:unit", "skill:int", 0));
init_resources(); init_resources();
u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0)); u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0));
scale_number(u, 20); scale_number(u, 20);

View file

@ -243,7 +243,7 @@ void msg_free(message * msg)
void msg_release(struct message *msg) void msg_release(struct message *msg)
{ {
assert(msg->refcount > 0); assert(msg && msg->refcount > 0);
if (--msg->refcount > 0) if (--msg->refcount > 0)
return; return;
msg_free(msg); msg_free(msg);
@ -251,7 +251,7 @@ void msg_release(struct message *msg)
struct message *msg_addref(struct message *msg) struct message *msg_addref(struct message *msg)
{ {
assert(msg->refcount > 0); assert(msg && msg->refcount > 0);
++msg->refcount; ++msg->refcount;
return msg; return msg;
} }