From 0fcc1b8d29ceff97e19dbd033011baf703b12be3 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Thu, 20 May 2021 22:04:50 +0200 Subject: [PATCH] fix compilation, add tests for upkeep --- src/kernel/unit.test.c | 19 +++++++++++++++++++ src/orderfile.c | 2 +- src/upkeep.test.c | 21 +++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/kernel/unit.test.c b/src/kernel/unit.test.c index e77c51ea2..4c1987806 100644 --- a/src/kernel/unit.test.c +++ b/src/kernel/unit.test.c @@ -681,6 +681,24 @@ static void test_get_modifier_cursed(CuTest *tc) { test_teardown(); } +static void test_maintenance_cost(CuTest *tc) { + unit *u; + race *rc; + test_setup(); + CuAssertIntEquals(tc, 10, maintenance_cost(NULL)); + u = test_create_unit(test_create_faction(), test_create_plain(0, 0)); + CuAssertIntEquals(tc, 10, maintenance_cost(u)); + u->number = 4; + CuAssertIntEquals(tc, 40, maintenance_cost(u)); + rc = test_create_race("smurf"); + rc->maintenance = 15; + u_setrace(u, rc); + CuAssertIntEquals(tc, 60, maintenance_cost(u)); + u->faction->flags |= FFL_PAUSED; + CuAssertIntEquals(tc, 0, maintenance_cost(u)); + test_teardown(); +} + static void test_gift_items(CuTest *tc) { unit *u, *u1, *u2; region *r; @@ -770,5 +788,6 @@ CuSuite *get_unit_suite(void) SUITE_ADD_TEST(suite, test_get_modifier); SUITE_ADD_TEST(suite, test_get_modifier_cursed); SUITE_ADD_TEST(suite, test_gift_items); + SUITE_ADD_TEST(suite, test_maintenance_cost); return suite; } diff --git a/src/orderfile.c b/src/orderfile.c index f03c9a2b1..582d1fc56 100644 --- a/src/orderfile.c +++ b/src/orderfile.c @@ -66,7 +66,7 @@ static void handle_faction(void *userData, int no, const char *password) { if (checkpasswd(f, password)) { state->f = f; f->lastorders = turn; - freset(f, FFL_PAUSED); + f->flags &= ~(FFL_PAUSED); } else { log_debug("invalid password for faction %s", itoa36(no)); diff --git a/src/upkeep.test.c b/src/upkeep.test.c index 92cc5f71c..7020f2195 100644 --- a/src/upkeep.test.c +++ b/src/upkeep.test.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -137,6 +138,25 @@ void test_upkeep_from_friend(CuTest * tc) test_teardown(); } +void test_lifestyle(CuTest *tc) +{ + unit *u; + race *rc; + + test_setup(); + u = test_create_unit(test_create_faction(), test_create_plain(0, 0)); + CuAssertIntEquals(tc, 10, lifestyle(u)); + u->number = 2; + CuAssertIntEquals(tc, 20, lifestyle(u)); + rc = test_create_race("smurf"); + rc->maintenance = 15; + u_setrace(u, rc); + CuAssertIntEquals(tc, 30, lifestyle(u)); + u->faction->flags |= FFL_PAUSED; + CuAssertIntEquals(tc, 0, lifestyle(u)); + test_teardown(); +} + void test_upkeep_free(CuTest * tc) { region *r; @@ -168,5 +188,6 @@ CuSuite *get_upkeep_suite(void) SUITE_ADD_TEST(suite, test_upkeep_from_friend); SUITE_ADD_TEST(suite, test_upkeep_hunger_damage); SUITE_ADD_TEST(suite, test_upkeep_free); + SUITE_ADD_TEST(suite, test_lifestyle); return suite; }