From c4dbb696814ab192f57ce624203f01150d09150f Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 17 Sep 2016 15:29:28 +0200 Subject: [PATCH] previous test was bad and did not actually exercise prepare_lighthouse. made a slighlty better test, which is failing for the right reasons. --- src/reports.c | 5 +++-- src/reports.test.c | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/reports.c b/src/reports.c index ec2e002f5..183d6ce6c 100644 --- a/src/reports.c +++ b/src/reports.c @@ -1316,9 +1316,10 @@ static void prepare_reports(void) } 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! */ - prepare_lighthouse(u->building, u->faction); + prepare_lighthouse(b, u->faction); } if (u_race(u) != get_race(RC_SPELL) || u->number == RS_FARVISION) { diff --git a/src/reports.test.c b/src/reports.test.c index 71bd7dd80..14b3c7314 100644 --- a/src/reports.test.c +++ b/src/reports.test.c @@ -458,7 +458,6 @@ void test_prepare_lighthouse(CuTest *tc) { unit *u; region *r1, *r2; faction *f; - report_context ctx; const struct terrain_type *t_ocean, *t_plain; test_setup(); @@ -467,23 +466,26 @@ void test_prepare_lighthouse(CuTest *tc) { t_plain = test_create_terrain("plain", LAND_REGION); btype = test_create_buildingtype("lighthouse"); btype->maxcapacity = 4; - r1 = test_create_region(0, 0, 0); - r2 = test_create_region(0, 0, 0); + r1 = test_create_region(0, 0, t_plain); + r2 = test_create_region(1, 0, t_ocean); b = test_create_building(r1, btype); + b->flags |= BLD_MAINTAINED; b->size = 10; update_lighthouse(b); u = test_create_unit(test_create_faction(0), r1); u->number = 4; u->building = b; + set_level(u, SK_PERCEPTION, 3); + CuAssertIntEquals(tc, 1, lighthouse_range(b, u->faction)); CuAssertPtrEquals(tc, b, inside_building(u)); u = test_create_unit(f, r1); u->building = b; + set_level(u, SK_PERCEPTION, 3); + CuAssertIntEquals(tc, 0, lighthouse_range(b, u->faction)); CuAssertPtrEquals(tc, NULL, inside_building(u)); - u->faction->seen = seen_init(); - prepare_report(&ctx, f); - CuAssertPtrEquals(tc, r1, ctx.first); - CuAssertPtrEquals(tc, r2, ctx.last); - seen_done(f->seen); + init_reports(); + CuAssertPtrNotNull(tc, find_seen(f->seen, r1)); + CuAssertPtrEquals(tc, 0, find_seen(f->seen, r2)); test_cleanup(); }