From 7dbb59adc979c9a537eec0aeaaa678ba045c5896 Mon Sep 17 00:00:00 2001 From: skypjack Date: Wed, 30 Jul 2025 12:04:57 +0200 Subject: [PATCH] test: increase code coverage --- test/entt/process/process.cpp | 130 ++++++++++++++++++++++++++++++---- 1 file changed, 115 insertions(+), 15 deletions(-) diff --git a/test/entt/process/process.cpp b/test/entt/process/process.cpp index ac0259ade..947ca2c4b 100644 --- a/test/entt/process/process.cpp +++ b/test/entt/process/process.cpp @@ -36,6 +36,20 @@ public: bool aborted_invoked{}; }; +class test_no_update_process: public entt::process { + void aborted() override { + aborted_invoked = true; + } + +public: + bool aborted_invoked{}; +}; + +class test_plain_process: public entt::process { + using delta_type = typename entt::process::delta_type; + void update(const delta_type, void *) override {} +}; + TEST(Process, Basics) { test_process process{}; @@ -91,7 +105,31 @@ TEST(Process, Basics) { ASSERT_TRUE(process.rejected()); } -TEST(Process, Succeeded) { +TEST(Process, SucceedNoOverride) { + test_plain_process process{}; + + ASSERT_FALSE(process.alive()); + + process.tick(0u); + + ASSERT_TRUE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_FALSE(process.rejected()); + + process.succeed(); + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_FALSE(process.rejected()); + + process.tick(0u); + + ASSERT_FALSE(process.alive()); + ASSERT_TRUE(process.finished()); + ASSERT_FALSE(process.rejected()); +} + +TEST(Process, Succeed) { test_process process{}; process.tick({}); @@ -110,6 +148,30 @@ TEST(Process, Succeeded) { ASSERT_FALSE(process.aborted_invoked); } +TEST(Process, FailNoOverride) { + test_plain_process process{}; + + ASSERT_FALSE(process.alive()); + + process.tick(0u); + + ASSERT_TRUE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_FALSE(process.rejected()); + + process.fail(); + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_FALSE(process.rejected()); + + process.tick(0u); + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_TRUE(process.rejected()); +} + TEST(Process, Fail) { test_process process{}; @@ -129,25 +191,42 @@ TEST(Process, Fail) { ASSERT_FALSE(process.aborted_invoked); } -TEST(Process, Data) { - test_process process{}; - int value = 0; - - process.tick({}); - process.tick({}, &value); - process.succeed(); - process.tick({}, &value); +TEST(Process, AbortNoOverride) { + test_plain_process process{}; ASSERT_FALSE(process.alive()); - ASSERT_TRUE(process.finished()); - ASSERT_FALSE(process.paused()); + + process.tick(0u); + + ASSERT_TRUE(process.alive()); + ASSERT_FALSE(process.finished()); ASSERT_FALSE(process.rejected()); - ASSERT_EQ(value, 1); - ASSERT_TRUE(process.update_invoked); - ASSERT_TRUE(process.succeeded_invoked); - ASSERT_FALSE(process.failed_invoked); + process.abort(); + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_FALSE(process.rejected()); + + process.tick(0u); + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.finished()); + ASSERT_TRUE(process.rejected()); +} + +TEST(Process, NoUpdateAbort) { + test_no_update_process process{}; + + ASSERT_FALSE(process.alive()); + ASSERT_FALSE(process.rejected()); ASSERT_FALSE(process.aborted_invoked); + + process.tick(0u); + + ASSERT_FALSE(process.alive()); + ASSERT_TRUE(process.rejected()); + ASSERT_TRUE(process.aborted_invoked); } TEST(Process, AbortNextTick) { @@ -186,6 +265,27 @@ TEST(Process, AbortImmediately) { ASSERT_TRUE(process.aborted_invoked); } +TEST(Process, Data) { + test_process process{}; + int value = 0; + + process.tick({}); + process.tick({}, &value); + process.succeed(); + process.tick({}, &value); + + ASSERT_FALSE(process.alive()); + ASSERT_TRUE(process.finished()); + ASSERT_FALSE(process.paused()); + ASSERT_FALSE(process.rejected()); + + ASSERT_EQ(value, 1); + ASSERT_TRUE(process.update_invoked); + ASSERT_TRUE(process.succeeded_invoked); + ASSERT_FALSE(process.failed_invoked); + ASSERT_FALSE(process.aborted_invoked); +} + TEST(Process, ThenPeek) { test_process process{};