From 4be17f4bb99878ab4f07e1ef7b7be9d6ad2ba483 Mon Sep 17 00:00:00 2001
From: Tim Kaune <tim.kaune@gmx.de>
Date: Thu, 11 Apr 2024 14:49:50 +0200
Subject: [PATCH] Replace cleanup of internal variables with block() command

Update unit tests: Target mocks use environment variables now. Real
targets don't work in script mode and normal variables are blocked by
the block() command, now.
---
 src/cmake/LoadStaticSharedTargets.cmake       | 190 +++++++++---------
 tests/common-failures_test-case-01.cmake      |   4 +-
 tests/common-failures_test-case-02.cmake      |   4 +-
 tests/helpers/assertions.cmake                |  36 ++++
 ...equested-by-common-flag_test-case-01.cmake |   3 +-
 ...equested-by-common-flag_test-case-02.cmake |   2 +-
 ...equested-by-common-flag_test-case-04.cmake |   6 +-
 ...equested-by-common-flag_test-case-05.cmake |   5 +-
 ...equested-by-common-flag_test-case-06.cmake |   1 +
 ...equested-by-common-flag_test-case-07.cmake |   3 +-
 ...equested-by-common-flag_test-case-08.cmake |   2 +-
 ...equested-by-common-flag_test-case-10.cmake |   6 +-
 ...equested-by-common-flag_test-case-11.cmake |   5 +-
 ...equested-by-common-flag_test-case-12.cmake |   1 +
 ...-requested-by-component_test-case-01.cmake |   3 +-
 ...-requested-by-component_test-case-02.cmake |   2 +-
 ...-requested-by-component_test-case-03.cmake |   6 +-
 ...-requested-by-component_test-case-04.cmake |   4 +-
 ...-requested-by-component_test-case-05.cmake |   3 +-
 ...-requested-by-component_test-case-06.cmake |   2 +-
 ...-requested-by-component_test-case-07.cmake |   6 +-
 ...-requested-by-component_test-case-08.cmake |   4 +-
 ...quested-by-package-flag_test-case-01.cmake |   3 +-
 ...quested-by-package-flag_test-case-02.cmake |   2 +-
 ...quested-by-package-flag_test-case-03.cmake |   6 +-
 ...quested-by-package-flag_test-case-04.cmake |   4 +-
 ...quested-by-package-flag_test-case-05.cmake |   3 +-
 ...quested-by-package-flag_test-case-06.cmake |   2 +-
 ...quested-by-package-flag_test-case-07.cmake |   6 +-
 ...quested-by-package-flag_test-case-08.cmake |   4 +-
 tests/mocks/failure-target1.cmake             |   2 +-
 tests/mocks/failure-target2.cmake             |   2 +-
 tests/mocks/success-target1.cmake             |   2 +-
 tests/mocks/success-target2.cmake             |   2 +-
 34 files changed, 199 insertions(+), 137 deletions(-)

diff --git a/src/cmake/LoadStaticSharedTargets.cmake b/src/cmake/LoadStaticSharedTargets.cmake
index 1259c45..3b9effb 100644
--- a/src/cmake/LoadStaticSharedTargets.cmake
+++ b/src/cmake/LoadStaticSharedTargets.cmake
@@ -50,115 +50,119 @@ load_static_shared_targets(
 ]]
 
 macro(load_static_shared_targets)
-    set(${CMAKE_FIND_PACKAGE_NAME}_KNOWN_COMPS static shared)
-    set(${CMAKE_FIND_PACKAGE_NAME}_COMP_static NO)
-    set(${CMAKE_FIND_PACKAGE_NAME}_COMP_shared NO)
-
-    # Iterate the list of requested components given to `find_package()`
-    foreach (${CMAKE_FIND_PACKAGE_NAME}_COMP IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
-        # If it's a valid component, turn on the respective switch.
-        if (${CMAKE_FIND_PACKAGE_NAME}_COMP IN_LIST ${CMAKE_FIND_PACKAGE_NAME}_KNOWN_COMPS)
-            set(${CMAKE_FIND_PACKAGE_NAME}_COMP_${${CMAKE_FIND_PACKAGE_NAME}_COMP} YES)
-        # Else do error handling.
-        else ()
+    block (
+        SCOPE_FOR VARIABLES
+        PROPAGATE
+        ${CMAKE_FIND_PACKAGE_NAME}_FOUND
+        ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
+    )
+        set(${CMAKE_FIND_PACKAGE_NAME}_KNOWN_COMPS static shared)
+        set(${CMAKE_FIND_PACKAGE_NAME}_COMP_static NO)
+        set(${CMAKE_FIND_PACKAGE_NAME}_COMP_shared NO)
+
+        # Iterate the list of requested components given to `find_package()`
+        foreach (${CMAKE_FIND_PACKAGE_NAME}_COMP IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
+            # If it's a valid component, turn on the respective switch.
+            if (${CMAKE_FIND_PACKAGE_NAME}_COMP IN_LIST ${CMAKE_FIND_PACKAGE_NAME}_KNOWN_COMPS)
+                set(${CMAKE_FIND_PACKAGE_NAME}_COMP_${${CMAKE_FIND_PACKAGE_NAME}_COMP} YES)
+            # Else do error handling.
+            else ()
+                set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
+                    "${CMAKE_FIND_PACKAGE_NAME} does not recognize component `${${CMAKE_FIND_PACKAGE_NAME}_COMP}`.")
+                set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+                return()
+            endif ()
+        endforeach ()
+
+        # Components static and shared are mutually exclusive.
+        if (${CMAKE_FIND_PACKAGE_NAME}_COMP_static AND ${CMAKE_FIND_PACKAGE_NAME}_COMP_shared)
             set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
-                "${CMAKE_FIND_PACKAGE_NAME} does not recognize component `${${CMAKE_FIND_PACKAGE_NAME}_COMP}`.")
+                "${CMAKE_FIND_PACKAGE_NAME} `static` and `shared` components are mutually exclusive.")
             set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
             return()
         endif ()
-    endforeach ()
-
-    # Components static and shared are mutually exclusive.
-    if (${CMAKE_FIND_PACKAGE_NAME}_COMP_static AND ${CMAKE_FIND_PACKAGE_NAME}_COMP_shared)
-        set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
-            "${CMAKE_FIND_PACKAGE_NAME} `static` and `shared` components are mutually exclusive.")
-        set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
-        return()
-    endif ()
-
-    # Parse static and shared targets from argument list.
-    set(${CMAKE_FIND_PACKAGE_NAME}_ARGUMENT_KEYWORDS STATIC_TARGETS SHARED_TARGETS)
-    cmake_parse_arguments(${CMAKE_FIND_PACKAGE_NAME} "" "" "${${CMAKE_FIND_PACKAGE_NAME}_ARGUMENT_KEYWORDS}" ${ARGN})
-    # We now have ${CMAKE_FIND_PACKAGE_NAME}_STATIC_TARGETS and
-    # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_TARGETS variables created for us.
-
-    # Static component requested
-    if (${CMAKE_FIND_PACKAGE_NAME}_COMP_static)
-        _load_static_shared_targets_load_targets(STATIC)
-    # Shared component requested
-    elseif (${CMAKE_FIND_PACKAGE_NAME}_COMP_shared)
-        _load_static_shared_targets_load_targets(SHARED)
-    # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS cache variable set to ON
-    elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS AND ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS)
-        _load_static_shared_targets_load_targets(SHARED)
-    # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS cache variable set to OFF
-    elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS AND NOT ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS)
-        _load_static_shared_targets_load_targets(STATIC)
-    # BUILD_SHARED_LIBS variable set to ON
-    elseif (BUILD_SHARED_LIBS)
-        # If shared targets are installed, include them.
-        # Otherwise at least load the static targets
-        _load_static_shared_targets_load_targets(SHARED ALTERNATIVE STATIC)
-    # BUILD_SHARED_LIBS variable set to OFF
-    else ()
-        # If static targets are installed, include them.
-        # Otherwise at least load the shared targets
-        _load_static_shared_targets_load_targets(STATIC ALTERNATIVE SHARED)
-    endif ()
-
-    unset(${CMAKE_FIND_PACKAGE_NAME}_KNOWN_COMPS)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_COMP_static)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_COMP_shared)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_ARGUMENT_KEYWORDS)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_STATIC_TARGETS)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_SHARED_TARGETS)
+
+        # Parse static and shared targets from argument list.
+        set(${CMAKE_FIND_PACKAGE_NAME}_ARGUMENT_KEYWORDS STATIC_TARGETS SHARED_TARGETS)
+        cmake_parse_arguments(${CMAKE_FIND_PACKAGE_NAME} "" "" "${${CMAKE_FIND_PACKAGE_NAME}_ARGUMENT_KEYWORDS}" ${ARGN})
+        # We now have ${CMAKE_FIND_PACKAGE_NAME}_STATIC_TARGETS and
+        # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_TARGETS variables created for us.
+
+        # Static component requested
+        if (${CMAKE_FIND_PACKAGE_NAME}_COMP_static)
+            _load_static_shared_targets_load_targets(STATIC)
+        # Shared component requested
+        elseif (${CMAKE_FIND_PACKAGE_NAME}_COMP_shared)
+            _load_static_shared_targets_load_targets(SHARED)
+        # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS cache variable set to ON
+        elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS AND ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS)
+            _load_static_shared_targets_load_targets(SHARED)
+        # ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS cache variable set to OFF
+        elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS AND NOT ${CMAKE_FIND_PACKAGE_NAME}_SHARED_LIBS)
+            _load_static_shared_targets_load_targets(STATIC)
+        # BUILD_SHARED_LIBS variable set to ON
+        elseif (BUILD_SHARED_LIBS)
+            # If shared targets are installed, include them.
+            # Otherwise at least load the static targets
+            _load_static_shared_targets_load_targets(SHARED ALTERNATIVE STATIC)
+        # BUILD_SHARED_LIBS variable set to OFF
+        else ()
+            # If static targets are installed, include them.
+            # Otherwise at least load the shared targets
+            _load_static_shared_targets_load_targets(STATIC ALTERNATIVE SHARED)
+        endif ()
+    endblock ()
 endmacro()
 
 # Macro to check, if the target files for the requested type are all installed.
 # If so, include them. Otherwise, try alternative type, if given. Do error
 # handling, if not.
 macro(_load_static_shared_targets_load_targets TYPE)
-    cmake_parse_arguments(${CMAKE_FIND_PACKAGE_NAME} "" "ALTERNATIVE" "" ${ARGN})
-    # We now have ${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE variable created for us.
-
-    set(${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND TRUE)
-
-    foreach (
-        ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET
-        IN LISTS
-        ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGETS
+    block (
+        SCOPE_FOR VARIABLES
+        PROPAGATE
+        ${CMAKE_FIND_PACKAGE_NAME}_FOUND
+        ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
     )
-        # Check, if any of the targets for the requested TYPE does not exist
-        if (NOT EXISTS "${${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET}")
-            set(${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND FALSE)
-            break ()
-        endif ()
-    endforeach ()
+        cmake_parse_arguments(${CMAKE_FIND_PACKAGE_NAME} "" "ALTERNATIVE" "" ${ARGN})
+        # We now have the ${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE variable created for us.
+
+        set(${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND TRUE)
 
-    # If TYPE targets are all installed, include them.
-    if (${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND)
         foreach (
             ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET
             IN LISTS
             ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGETS
         )
-            # We know they all exist.
-            include("${${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET}")
+            # Check, if any of the targets for the requested TYPE does not exist
+            if (NOT EXISTS "${${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET}")
+                set(${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND FALSE)
+                break ()
+            endif ()
         endforeach ()
-    # Otherwise at least load the ALTERNATIVE targets, if given
-    elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE)
-        message(WARNING
-            "Requested `${TYPE}` targets for package ${CMAKE_FIND_PACKAGE_NAME} were not found. "
-            "Trying alternative `${${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE}` targets."
-        )
-        _load_static_shared_targets_load_targets(${${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE})
-    else ()
-        set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
-            "${CMAKE_FIND_PACKAGE_NAME} `${TYPE}` libraries were requested but not found.")
-        set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
-        return()
-    endif ()
-
-    unset(${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND)
-    unset(${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE)
+
+        # If TYPE targets are all installed, include them.
+        if (${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_FOUND)
+            foreach (
+                ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET
+                IN LISTS
+                ${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGETS
+            )
+                # We know they all exist.
+                include("${${CMAKE_FIND_PACKAGE_NAME}_${TYPE}_TARGET}")
+            endforeach ()
+        # Otherwise at least load the ALTERNATIVE targets, if given
+        elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE)
+            message(WARNING
+                "Requested `${TYPE}` targets for package ${CMAKE_FIND_PACKAGE_NAME} were not found. "
+                "Trying alternative `${${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE}` targets."
+            )
+            _load_static_shared_targets_load_targets(${${CMAKE_FIND_PACKAGE_NAME}_ALTERNATIVE})
+        else ()
+            set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
+                "${CMAKE_FIND_PACKAGE_NAME} `${TYPE}` libraries were requested but not found.")
+            set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+            return()
+        endif ()
+    endblock ()
 endmacro()
diff --git a/tests/common-failures_test-case-01.cmake b/tests/common-failures_test-case-01.cmake
index 57e5f64..e2a599f 100644
--- a/tests/common-failures_test-case-01.cmake
+++ b/tests/common-failures_test-case-01.cmake
@@ -46,5 +46,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} does not recognize component `unknown`."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/common-failures_test-case-02.cmake b/tests/common-failures_test-case-02.cmake
index b94ba34..fe04ea6 100644
--- a/tests/common-failures_test-case-02.cmake
+++ b/tests/common-failures_test-case-02.cmake
@@ -46,5 +46,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `static` and `shared` components are mutually exclusive."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/helpers/assertions.cmake b/tests/helpers/assertions.cmake
index 42fdb29..593123c 100644
--- a/tests/helpers/assertions.cmake
+++ b/tests/helpers/assertions.cmake
@@ -99,6 +99,42 @@ macro(CHECK_DEFINED VAR_NAME)
     endif ()
 endmacro()
 
+macro(SET_TARGET_MOCK TARGET_NAME)
+    set(ENV{${TARGET_NAME}} TRUE)
+endmacro()
+
+macro(REQUIRE_TARGET_UNDEFINED TARGET_NAME)
+    if (DEFINED ENV{${TARGET_NAME}})
+        message(FATAL_ERROR "${TARGET_NAME} is DEFINED!")
+    else ()
+        message(STATUS "${TARGET_NAME} is NOT DEFINED.")
+    endif ()
+endmacro()
+
+macro(CHECK_TARGET_UNDEFINED TARGET_NAME)
+    if (DEFINED ENV{${TARGET_NAME}})
+        message(SEND_ERROR "${TARGET_NAME} is DEFINED!")
+    else ()
+        message(STATUS "${TARGET_NAME} is NOT DEFINED.")
+    endif ()
+endmacro()
+
+macro(REQUIRE_TARGET_DEFINED TARGET_NAME)
+    if (NOT DEFINED ENV{${TARGET_NAME}})
+        message(FATAL_ERROR "${TARGET_NAME} is NOT DEFINED!")
+    else ()
+        message(STATUS "${TARGET_NAME} is DEFINED.")
+    endif ()
+endmacro()
+
+macro(CHECK_TARGET_DEFINED TARGET_NAME)
+    if (NOT DEFINED ENV{${TARGET_NAME}})
+        message(SEND_ERROR "${TARGET_NAME} is NOT DEFINED!")
+    else ()
+        message(STATUS "${TARGET_NAME} is DEFINED.")
+    endif ()
+endmacro()
+
 macro(REQUIRE_STREQUAL VAR_NAME VALUE)
     if (NOT ${VAR_NAME} STREQUAL "${VALUE}")
         message(FATAL_ERROR "${VAR_NAME} with value `${${VAR_NAME}}` is NOT STREQUAL to `${VALUE}`!")
diff --git a/tests/include-requested-by-common-flag_test-case-01.cmake b/tests/include-requested-by-common-flag_test-case-01.cmake
index 4041d69..45b072f 100644
--- a/tests/include-requested-by-common-flag_test-case-01.cmake
+++ b/tests/include-requested-by-common-flag_test-case-01.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-common-flag_test-case-02.cmake b/tests/include-requested-by-common-flag_test-case-02.cmake
index fc29210..a764fc0 100644
--- a/tests/include-requested-by-common-flag_test-case-02.cmake
+++ b/tests/include-requested-by-common-flag_test-case-02.cmake
@@ -38,4 +38,4 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-common-flag_test-case-04.cmake b/tests/include-requested-by-common-flag_test-case-04.cmake
index e6d5de0..b741b23 100644
--- a/tests/include-requested-by-common-flag_test-case-04.cmake
+++ b/tests/include-requested-by-common-flag_test-case-04.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-common-flag_test-case-05.cmake b/tests/include-requested-by-common-flag_test-case-05.cmake
index 51bb9c2..26699be 100644
--- a/tests/include-requested-by-common-flag_test-case-05.cmake
+++ b/tests/include-requested-by-common-flag_test-case-05.cmake
@@ -40,5 +40,6 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-common-flag_test-case-06.cmake b/tests/include-requested-by-common-flag_test-case-06.cmake
index 9b9517b..76d3355 100644
--- a/tests/include-requested-by-common-flag_test-case-06.cmake
+++ b/tests/include-requested-by-common-flag_test-case-06.cmake
@@ -45,3 +45,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `STATIC` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-common-flag_test-case-07.cmake b/tests/include-requested-by-common-flag_test-case-07.cmake
index fe237c3..8a3f19f 100644
--- a/tests/include-requested-by-common-flag_test-case-07.cmake
+++ b/tests/include-requested-by-common-flag_test-case-07.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-common-flag_test-case-08.cmake b/tests/include-requested-by-common-flag_test-case-08.cmake
index 480db26..f5a8e55 100644
--- a/tests/include-requested-by-common-flag_test-case-08.cmake
+++ b/tests/include-requested-by-common-flag_test-case-08.cmake
@@ -38,4 +38,4 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-common-flag_test-case-10.cmake b/tests/include-requested-by-common-flag_test-case-10.cmake
index 3f86dc6..6496963 100644
--- a/tests/include-requested-by-common-flag_test-case-10.cmake
+++ b/tests/include-requested-by-common-flag_test-case-10.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-common-flag_test-case-11.cmake b/tests/include-requested-by-common-flag_test-case-11.cmake
index f9a8082..d1b4332 100644
--- a/tests/include-requested-by-common-flag_test-case-11.cmake
+++ b/tests/include-requested-by-common-flag_test-case-11.cmake
@@ -40,5 +40,6 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-common-flag_test-case-12.cmake b/tests/include-requested-by-common-flag_test-case-12.cmake
index 219e93d..a6d98c7 100644
--- a/tests/include-requested-by-common-flag_test-case-12.cmake
+++ b/tests/include-requested-by-common-flag_test-case-12.cmake
@@ -45,3 +45,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `SHARED` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-component_test-case-01.cmake b/tests/include-requested-by-component_test-case-01.cmake
index 9116f45..027ef99 100644
--- a/tests/include-requested-by-component_test-case-01.cmake
+++ b/tests/include-requested-by-component_test-case-01.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-component_test-case-02.cmake b/tests/include-requested-by-component_test-case-02.cmake
index 2ca2f9f..314e7e6 100644
--- a/tests/include-requested-by-component_test-case-02.cmake
+++ b/tests/include-requested-by-component_test-case-02.cmake
@@ -43,4 +43,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `SHARED` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-component_test-case-03.cmake b/tests/include-requested-by-component_test-case-03.cmake
index 98a460a..4f49622 100644
--- a/tests/include-requested-by-component_test-case-03.cmake
+++ b/tests/include-requested-by-component_test-case-03.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-component_test-case-04.cmake b/tests/include-requested-by-component_test-case-04.cmake
index 8f53a6e..2ec94ff 100644
--- a/tests/include-requested-by-component_test-case-04.cmake
+++ b/tests/include-requested-by-component_test-case-04.cmake
@@ -45,5 +45,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `SHARED` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/include-requested-by-component_test-case-05.cmake b/tests/include-requested-by-component_test-case-05.cmake
index 366209b..4c83ca2 100644
--- a/tests/include-requested-by-component_test-case-05.cmake
+++ b/tests/include-requested-by-component_test-case-05.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-component_test-case-06.cmake b/tests/include-requested-by-component_test-case-06.cmake
index 3ca2796..961c96b 100644
--- a/tests/include-requested-by-component_test-case-06.cmake
+++ b/tests/include-requested-by-component_test-case-06.cmake
@@ -43,4 +43,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `STATIC` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-component_test-case-07.cmake b/tests/include-requested-by-component_test-case-07.cmake
index edf29dd..ef01040 100644
--- a/tests/include-requested-by-component_test-case-07.cmake
+++ b/tests/include-requested-by-component_test-case-07.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-component_test-case-08.cmake b/tests/include-requested-by-component_test-case-08.cmake
index e8e2c08..7ac60b1 100644
--- a/tests/include-requested-by-component_test-case-08.cmake
+++ b/tests/include-requested-by-component_test-case-08.cmake
@@ -45,5 +45,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `STATIC` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/include-requested-by-package-flag_test-case-01.cmake b/tests/include-requested-by-package-flag_test-case-01.cmake
index ab6a593..b297212 100644
--- a/tests/include-requested-by-package-flag_test-case-01.cmake
+++ b/tests/include-requested-by-package-flag_test-case-01.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-package-flag_test-case-02.cmake b/tests/include-requested-by-package-flag_test-case-02.cmake
index 3a88c47..a1a125f 100644
--- a/tests/include-requested-by-package-flag_test-case-02.cmake
+++ b/tests/include-requested-by-package-flag_test-case-02.cmake
@@ -43,4 +43,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `SHARED` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-package-flag_test-case-03.cmake b/tests/include-requested-by-package-flag_test-case-03.cmake
index 9a5f21e..a2393c3 100644
--- a/tests/include-requested-by-package-flag_test-case-03.cmake
+++ b/tests/include-requested-by-package-flag_test-case-03.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-package-flag_test-case-04.cmake b/tests/include-requested-by-package-flag_test-case-04.cmake
index bcdf0ae..ac29bb9 100644
--- a/tests/include-requested-by-package-flag_test-case-04.cmake
+++ b/tests/include-requested-by-package-flag_test-case-04.cmake
@@ -45,5 +45,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `SHARED` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/include-requested-by-package-flag_test-case-05.cmake b/tests/include-requested-by-package-flag_test-case-05.cmake
index a090d92..a659a72 100644
--- a/tests/include-requested-by-package-flag_test-case-05.cmake
+++ b/tests/include-requested-by-package-flag_test-case-05.cmake
@@ -38,4 +38,5 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
diff --git a/tests/include-requested-by-package-flag_test-case-06.cmake b/tests/include-requested-by-package-flag_test-case-06.cmake
index 4f6edcb..fec8ea6 100644
--- a/tests/include-requested-by-package-flag_test-case-06.cmake
+++ b/tests/include-requested-by-package-flag_test-case-06.cmake
@@ -43,4 +43,4 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `STATIC` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
diff --git a/tests/include-requested-by-package-flag_test-case-07.cmake b/tests/include-requested-by-package-flag_test-case-07.cmake
index 299fcf6..66f713a 100644
--- a/tests/include-requested-by-package-flag_test-case-07.cmake
+++ b/tests/include-requested-by-package-flag_test-case-07.cmake
@@ -40,5 +40,7 @@ set(
 
 include("./helpers/testee_macro_wrapper.cmake")
 
-REQUIRE_TRUTHY(TEST_TARGET_1)
-REQUIRE_TRUTHY(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_1)
+REQUIRE_TARGET_DEFINED(SUCCESS_TARGET_2)
diff --git a/tests/include-requested-by-package-flag_test-case-08.cmake b/tests/include-requested-by-package-flag_test-case-08.cmake
index 58cd886..0615f36 100644
--- a/tests/include-requested-by-package-flag_test-case-08.cmake
+++ b/tests/include-requested-by-package-flag_test-case-08.cmake
@@ -45,5 +45,5 @@ CHECK_STREQUAL(
     "${CMAKE_FIND_PACKAGE_NAME} `STATIC` libraries were requested but not found."
 )
 REQUIRE_FALSY(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
-REQUIRE_UNDEFINED(TEST_TARGET_1)
-REQUIRE_UNDEFINED(TEST_TARGET_2)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_1)
+REQUIRE_TARGET_UNDEFINED(FAILURE_TARGET_2)
diff --git a/tests/mocks/failure-target1.cmake b/tests/mocks/failure-target1.cmake
index 28063d6..7336aa2 100644
--- a/tests/mocks/failure-target1.cmake
+++ b/tests/mocks/failure-target1.cmake
@@ -1,2 +1,2 @@
 message(STATUS "Wrong target included.")
-set(TEST_TARGET_1 FALSE)
+SET_TARGET_MOCK(FAILURE_TARGET_1)
diff --git a/tests/mocks/failure-target2.cmake b/tests/mocks/failure-target2.cmake
index e8c271e..c685de7 100644
--- a/tests/mocks/failure-target2.cmake
+++ b/tests/mocks/failure-target2.cmake
@@ -1,2 +1,2 @@
 message(STATUS "Wrong target included.")
-set(TEST_TARGET_2 FALSE)
+SET_TARGET_MOCK(FAILURE_TARGET_2)
diff --git a/tests/mocks/success-target1.cmake b/tests/mocks/success-target1.cmake
index 8de8ffb..cbad17c 100644
--- a/tests/mocks/success-target1.cmake
+++ b/tests/mocks/success-target1.cmake
@@ -1,2 +1,2 @@
 message(STATUS "Correct target successfully included.")
-set(TEST_TARGET_1 TRUE)
+SET_TARGET_MOCK(SUCCESS_TARGET_1)
diff --git a/tests/mocks/success-target2.cmake b/tests/mocks/success-target2.cmake
index dbbe242..36847f9 100644
--- a/tests/mocks/success-target2.cmake
+++ b/tests/mocks/success-target2.cmake
@@ -1,2 +1,2 @@
 message(STATUS "Correct target successfully included.")
-set(TEST_TARGET_2 TRUE)
+SET_TARGET_MOCK(SUCCESS_TARGET_2)
-- 
GitLab