previous test was bad and did not actually exercise prepare_lighthouse.

made a slighlty better test, which is failing for the right reasons.
This commit is contained in:
Enno Rehling 2016-09-17 15:29:28 +02:00
parent 1ca67a57d2
commit c4dbb69681
2 changed files with 13 additions and 10 deletions

View file

@ -1316,9 +1316,10 @@ static void prepare_reports(void)
} }
for (u = r->units; u; u = u->next) { for (u = r->units; u; u = u->next) {
if (u->building && u->building->type == bt_lighthouse) { b = u->building;
if (b && b->type == bt_lighthouse) {
/* we are in a lighthouse. add the regions we can see from here! */ /* we are in a lighthouse. add the regions we can see from here! */
prepare_lighthouse(u->building, u->faction); prepare_lighthouse(b, u->faction);
} }
if (u_race(u) != get_race(RC_SPELL) || u->number == RS_FARVISION) { if (u_race(u) != get_race(RC_SPELL) || u->number == RS_FARVISION) {

View file

@ -458,7 +458,6 @@ void test_prepare_lighthouse(CuTest *tc) {
unit *u; unit *u;
region *r1, *r2; region *r1, *r2;
faction *f; faction *f;
report_context ctx;
const struct terrain_type *t_ocean, *t_plain; const struct terrain_type *t_ocean, *t_plain;
test_setup(); test_setup();
@ -467,23 +466,26 @@ void test_prepare_lighthouse(CuTest *tc) {
t_plain = test_create_terrain("plain", LAND_REGION); t_plain = test_create_terrain("plain", LAND_REGION);
btype = test_create_buildingtype("lighthouse"); btype = test_create_buildingtype("lighthouse");
btype->maxcapacity = 4; btype->maxcapacity = 4;
r1 = test_create_region(0, 0, 0); r1 = test_create_region(0, 0, t_plain);
r2 = test_create_region(0, 0, 0); r2 = test_create_region(1, 0, t_ocean);
b = test_create_building(r1, btype); b = test_create_building(r1, btype);
b->flags |= BLD_MAINTAINED;
b->size = 10; b->size = 10;
update_lighthouse(b); update_lighthouse(b);
u = test_create_unit(test_create_faction(0), r1); u = test_create_unit(test_create_faction(0), r1);
u->number = 4; u->number = 4;
u->building = b; u->building = b;
set_level(u, SK_PERCEPTION, 3);
CuAssertIntEquals(tc, 1, lighthouse_range(b, u->faction));
CuAssertPtrEquals(tc, b, inside_building(u)); CuAssertPtrEquals(tc, b, inside_building(u));
u = test_create_unit(f, r1); u = test_create_unit(f, r1);
u->building = b; u->building = b;
set_level(u, SK_PERCEPTION, 3);
CuAssertIntEquals(tc, 0, lighthouse_range(b, u->faction));
CuAssertPtrEquals(tc, NULL, inside_building(u)); CuAssertPtrEquals(tc, NULL, inside_building(u));
u->faction->seen = seen_init(); init_reports();
prepare_report(&ctx, f); CuAssertPtrNotNull(tc, find_seen(f->seen, r1));
CuAssertPtrEquals(tc, r1, ctx.first); CuAssertPtrEquals(tc, 0, find_seen(f->seen, r2));
CuAssertPtrEquals(tc, r2, ctx.last);
seen_done(f->seen);
test_cleanup(); test_cleanup();
} }