1
0
Эх сурвалжийг харах

test: increase code coverage

skypjack 7 сар өмнө
parent
commit
7dbb59adc9
1 өөрчлөгдсөн 114 нэмэгдсэн , 14 устгасан
  1. 114 14
      test/entt/process/process.cpp

+ 114 - 14
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<int> 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<test::empty> 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<int> process{};
 
@@ -129,25 +191,42 @@ TEST(Process, Fail) {
     ASSERT_FALSE(process.aborted_invoked);
 }
 
-TEST(Process, Data) {
-    test_process<test::empty> process{};
-    int value = 0;
+TEST(Process, AbortNoOverride) {
+    test_plain_process process{};
 
-    process.tick({});
-    process.tick({}, &value);
-    process.succeed();
-    process.tick({}, &value);
+    ASSERT_FALSE(process.alive());
+
+    process.tick(0u);
+
+    ASSERT_TRUE(process.alive());
+    ASSERT_FALSE(process.finished());
+    ASSERT_FALSE(process.rejected());
+
+    process.abort();
 
     ASSERT_FALSE(process.alive());
-    ASSERT_TRUE(process.finished());
-    ASSERT_FALSE(process.paused());
+    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.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<test::empty> 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<int> process{};