diff options
Diffstat (limited to 'tests/ECMQmlModuleTest/check.cmake.in')
-rw-r--r-- | tests/ECMQmlModuleTest/check.cmake.in | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/ECMQmlModuleTest/check.cmake.in b/tests/ECMQmlModuleTest/check.cmake.in new file mode 100644 index 00000000..af64a120 --- /dev/null +++ b/tests/ECMQmlModuleTest/check.cmake.in @@ -0,0 +1,64 @@ +# +# SPDX-FileCopyrightText: 2021 Arjen Hiemstra <ahiemstra@heimr.nl> +# +# SPDX-License-Identifier: BSD-3-Clause + +set(SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") +set(INSTALL_DIR "@CMAKE_INSTALL_PREFIX@/test") +set(SHARED "@BUILD_SHARED_LIBS@") +set(QML_ONLY "@QML_ONLY@") +set(DEPENDS "@DEPENDS@") + +function(check_file_exists file) + if (NOT EXISTS ${file}) + message(FATAL_ERROR "File \"${file}\" does not exist") + endif() +endfunction() + +function (check_file_contents) + cmake_parse_arguments(ARGS "" "GENERATED;EXPECTED" "" ${ARGN}) + + if (NOT EXISTS "${ARGS_GENERATED}") + message(FATAL_ERROR "${ARGS_GENERATED} was not generated") + endif() + file(READ "${ARGS_GENERATED}" generated_contents) + if (NOT EXISTS "${ARGS_EXPECTED}") + message(FATAL_ERROR "Original ${ARGS_EXPECTED} was not found") + endif() + file(READ "${ARGS_EXPECTED}" original_contents) + if (NOT "${generated_contents}" STREQUAL "${original_contents}") + message(FATAL_ERROR "${generated_file} contains '${generated_contents}' instead of '${original_contents}'") + endif() +endfunction() + +if (SHARED) + check_file_contents( + GENERATED "${INSTALL_DIR}/Test/QmlModule.qml" + EXPECTED "${SOURCE_DIR}/QmlModule.qml" + ) + + if (NOT QML_ONLY AND NOT DEPENDS) + check_file_exists("${INSTALL_DIR}/Test/libTestModule.so") + + check_file_contents( + GENERATED "${INSTALL_DIR}/Test/qmldir" + EXPECTED "${SOURCE_DIR}/qmldir_expected_full" + ) + endif() + + if (QML_ONLY AND NOT DEPENDS) + check_file_contents( + GENERATED "${INSTALL_DIR}/Test/qmldir" + EXPECTED "${SOURCE_DIR}/qmldir_expected_qmlonly" + ) + endif() + + if (DEPENDS) + check_file_contents( + GENERATED "${INSTALL_DIR}/Test/qmldir" + EXPECTED "${SOURCE_DIR}/qmldir_expected_depends" + ) + endif() +else() + check_file_exists("${INSTALL_DIR}/Test/libTestModule.a") +endif() |