From 55dfd556457460542ba38871f68e71e0909d0699 Mon Sep 17 00:00:00 2001 From: Serhii Snitsaruk Date: Sat, 10 Feb 2024 20:14:49 +0100 Subject: [PATCH] BTRunLimit: Update unit tests --- tests/test_run_limit.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/test_run_limit.h b/tests/test_run_limit.h index b5d4a2c..2d76468 100644 --- a/tests/test_run_limit.h +++ b/tests/test_run_limit.h @@ -40,26 +40,40 @@ TEST_CASE("[Modules][LimboAI] BTRunLimit") { SUBCASE("When the child task succeeds") { task->ret_status = BTTask::SUCCESS; + + lim->set_count_policy(BTRunLimit::COUNT_FAILED); CHECK(lim->execute(0.01666) == BTTask::SUCCESS); CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::SUCCESS, 2, 2, 2); // * task executed + + lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL); + CHECK(lim->execute(0.01666) == BTTask::SUCCESS); + CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::SUCCESS, 3, 3, 3); // * task executed } SUBCASE("When the child task fails") { task->ret_status = BTTask::FAILURE; + + lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL); CHECK(lim->execute(0.01666) == BTTask::FAILURE); CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::FAILURE, 2, 2, 2); // * task executed + + lim->set_count_policy(BTRunLimit::COUNT_FAILED); + CHECK(lim->execute(0.01666) == BTTask::FAILURE); + CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::FAILURE, 3, 3, 3); // * task executed } task->ret_status = BTTask::SUCCESS; + lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL); CHECK(lim->execute(0.01666) == BTTask::FAILURE); - CHECK_ENTRIES_TICKS_EXITS(task, 2, 2, 2); // * task not executed + CHECK_ENTRIES_TICKS_EXITS(task, 3, 3, 3); // * task not executed CHECK(lim->execute(0.01666) == BTTask::FAILURE); - CHECK_ENTRIES_TICKS_EXITS(task, 2, 2, 2); // * task not executed + CHECK_ENTRIES_TICKS_EXITS(task, 3, 3, 3); // * task not executed } SUBCASE("When the child task takes more than one tick to finish") { lim->set_run_limit(2); + lim->set_count_policy(BTRunLimit::COUNT_ALL); task->ret_status = BTTask::RUNNING; CHECK(lim->execute(0.01666) == BTTask::RUNNING);