Warning, /frameworks/extra-cmake-modules/tests/ECMAddTests/multi_tests/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.5)
0002 project(ECMAddTests)
0003
0004 set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
0005 set(CMAKE_MODULE_PATH "${ECM_MODULE_DIR}")
0006
0007 add_library(testhelper STATIC ../testhelper.cpp)
0008 target_include_directories(testhelper PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
0009
0010 # Link to QtCore for WinMain on Windows
0011 include(QtVersionOption)
0012 find_package(Qt${QT_MAJOR_VERSION}Core REQUIRED)
0013 target_link_libraries(testhelper PUBLIC Qt${QT_MAJOR_VERSION}::Core)
0014
0015 enable_testing()
0016
0017 include(ECMAddTests)
0018 include(../../test_helpers.cmake)
0019
0020 # clean up to avoid false-positives from check_files.cmake
0021 file(REMOVE
0022 "${CMAKE_CURRENT_BINARY_DIR}/test1.txt"
0023 "${CMAKE_CURRENT_BINARY_DIR}/test2.txt"
0024 "${CMAKE_CURRENT_BINARY_DIR}/test3.txt"
0025 "${CMAKE_CURRENT_BINARY_DIR}/test4.txt"
0026 "${CMAKE_CURRENT_BINARY_DIR}/test5.txt"
0027 "${CMAKE_CURRENT_BINARY_DIR}/test6.txt"
0028 "${CMAKE_CURRENT_BINARY_DIR}/test7.txt"
0029 "${CMAKE_CURRENT_BINARY_DIR}/test8.txt"
0030 "${CMAKE_CURRENT_BINARY_DIR}/test9.txt"
0031 )
0032 file(REMOVE_RECURSE
0033 "${CMAKE_CURRENT_BINARY_DIR}/test1011_dir"
0034 )
0035
0036 set(exp_target_names "test1;test2;test3")
0037 set(exp_test_names "test1;test2;test3")
0038 ecm_add_tests(
0039 test1.cpp
0040 test2.cpp
0041 test3.cpp
0042 LINK_LIBRARIES testhelper
0043 TARGET_NAMES_VAR target_names
0044 TEST_NAMES_VAR test_names
0045 )
0046 assert_vars_setequal(target_names exp_target_names)
0047 assert_vars_setequal(test_names exp_test_names)
0048 # check targets exist
0049 get_property(_dummy TARGET test1 PROPERTY TYPE)
0050 get_property(_dummy TARGET test2 PROPERTY TYPE)
0051 get_property(_dummy TARGET test3 PROPERTY TYPE)
0052 # check tests exists
0053 get_property(_dummy TEST test1 PROPERTY TIMEOUT)
0054 get_property(_dummy TEST test2 PROPERTY TIMEOUT)
0055 get_property(_dummy TEST test3 PROPERTY TIMEOUT)
0056 get_property(_is_win32 TARGET test1 PROPERTY WIN32_EXECUTABLE)
0057 if (_is_win32)
0058 message(FATAL_ERROR "test1 is a WIN32 executable when it should not be")
0059 endif()
0060 get_property(_is_bundle TARGET test1 PROPERTY MACOSX_BUNDLE)
0061 if (_is_bundle)
0062 message(FATAL_ERROR "test1 is an OS/X bundle when it should not be")
0063 endif()
0064 get_property(_is_win32 TARGET test2 PROPERTY WIN32_EXECUTABLE)
0065 if (_is_win32)
0066 message(FATAL_ERROR "test2 is a WIN32 executable when it should not be")
0067 endif()
0068 get_property(_is_bundle TARGET test2 PROPERTY MACOSX_BUNDLE)
0069 if (_is_bundle)
0070 message(FATAL_ERROR "test2 is an OS/X bundle when it should not be")
0071 endif()
0072
0073
0074 ecm_add_tests(
0075 test4.cpp
0076 test5.cpp
0077 LINK_LIBRARIES testhelper
0078 NAME_PREFIX pref_
0079 )
0080 get_property(_dummy TARGET test4 PROPERTY TYPE)
0081 get_property(_dummy TARGET test5 PROPERTY TYPE)
0082 get_property(_dummy TEST pref_test4 PROPERTY TIMEOUT)
0083 get_property(_dummy TEST pref_test5 PROPERTY TIMEOUT)
0084 get_property(_is_win32 TARGET test4 PROPERTY WIN32_EXECUTABLE)
0085 if (_is_win32)
0086 message(FATAL_ERROR "test4 is a WIN32 executable when it should not be")
0087 endif()
0088 get_property(_is_bundle TARGET test4 PROPERTY MACOSX_BUNDLE)
0089 if (_is_bundle)
0090 message(FATAL_ERROR "test4 is an OS/X bundle when it should not be")
0091 endif()
0092 get_property(_is_win32 TARGET test5 PROPERTY WIN32_EXECUTABLE)
0093 if (_is_win32)
0094 message(FATAL_ERROR "test5 is a WIN32 executable when it should not be")
0095 endif()
0096 get_property(_is_bundle TARGET test5 PROPERTY MACOSX_BUNDLE)
0097 if (_is_bundle)
0098 message(FATAL_ERROR "test5 is an OS/X bundle when it should not be")
0099 endif()
0100
0101
0102 ecm_add_tests(
0103 test6.cpp
0104 test7.cpp
0105 LINK_LIBRARIES testhelper
0106 GUI
0107 )
0108 get_property(_dummy TARGET test6 PROPERTY TYPE)
0109 get_property(_dummy TARGET test7 PROPERTY TYPE)
0110 get_property(_dummy TEST test6 PROPERTY TIMEOUT)
0111 get_property(_dummy TEST test7 PROPERTY TIMEOUT)
0112 get_property(_is_win32 TARGET test6 PROPERTY WIN32_EXECUTABLE)
0113 if (NOT _is_win32)
0114 message(FATAL_ERROR "test6 is not a WIN32 executable when it should be")
0115 endif()
0116 get_property(_is_bundle TARGET test6 PROPERTY MACOSX_BUNDLE)
0117 if (NOT _is_bundle)
0118 message(FATAL_ERROR "test6 is not an OS/X bundle when it should be")
0119 endif()
0120 get_property(_is_win32 TARGET test7 PROPERTY WIN32_EXECUTABLE)
0121 if (NOT _is_win32)
0122 message(FATAL_ERROR "test7 is not a WIN32 executable when it should be")
0123 endif()
0124 get_property(_is_bundle TARGET test7 PROPERTY MACOSX_BUNDLE)
0125 if (NOT _is_bundle)
0126 message(FATAL_ERROR "test7 is not an OS/X bundle when it should be")
0127 endif()
0128
0129
0130 set(exp_target_names "test8;test9")
0131 set(exp_test_names "p_test8;p_test9")
0132 ecm_add_tests(
0133 test8.cpp
0134 test9.cpp
0135 LINK_LIBRARIES testhelper
0136 NAME_PREFIX p_
0137 GUI
0138 TARGET_NAMES_VAR target_names
0139 TEST_NAMES_VAR test_names
0140 )
0141 assert_vars_setequal(target_names exp_target_names)
0142 assert_vars_setequal(test_names exp_test_names)
0143 get_property(_dummy TARGET test8 PROPERTY TYPE)
0144 get_property(_dummy TARGET test9 PROPERTY TYPE)
0145 get_property(_dummy TEST p_test8 PROPERTY TIMEOUT)
0146 get_property(_dummy TEST p_test9 PROPERTY TIMEOUT)
0147 get_property(_is_win32 TARGET test8 PROPERTY WIN32_EXECUTABLE)
0148 if (NOT _is_win32)
0149 message(FATAL_ERROR "test8 is not a WIN32 executable when it should be")
0150 endif()
0151 get_property(_is_bundle TARGET test8 PROPERTY MACOSX_BUNDLE)
0152 if (NOT _is_bundle)
0153 message(FATAL_ERROR "test8 is not an OS/X bundle when it should be")
0154 endif()
0155 get_property(_is_win32 TARGET test9 PROPERTY WIN32_EXECUTABLE)
0156 if (NOT _is_win32)
0157 message(FATAL_ERROR "test9 is not a WIN32 executable when it should be")
0158 endif()
0159 get_property(_is_bundle TARGET test9 PROPERTY MACOSX_BUNDLE)
0160 if (NOT _is_bundle)
0161 message(FATAL_ERROR "test9 is not an OS/X bundle when it should be")
0162 endif()
0163
0164
0165 set(exp_workingdir "${CMAKE_CURRENT_BINARY_DIR}/test1011_dir")
0166 file(MAKE_DIRECTORY "${exp_workingdir}") # cmake does not create that for us, will complain otherwise
0167 ecm_add_tests(
0168 test10.cpp
0169 test11.cpp
0170 LINK_LIBRARIES testhelper
0171 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test1011_dir"
0172 )
0173 get_property(_dummy TARGET test10 PROPERTY TYPE)
0174 get_property(_dummy TARGET test11 PROPERTY TYPE)
0175 get_property(_dummy TEST test10 PROPERTY TIMEOUT)
0176 get_property(_dummy TEST test11 PROPERTY TIMEOUT)
0177 get_property(_working_dir TEST test10 PROPERTY WORKING_DIRECTORY)
0178 assert_vars_setequal(_working_dir exp_workingdir)
0179 get_property(_working_dir TEST test11 PROPERTY WORKING_DIRECTORY)
0180 assert_vars_setequal(_working_dir exp_workingdir)
0181 get_property(_is_win32 TARGET test10 PROPERTY WIN32_EXECUTABLE)
0182 if (_is_win32)
0183 message(FATAL_ERROR "test10 is a WIN32 executable when it should not be")
0184 endif()
0185 get_property(_is_bundle TARGET test10 PROPERTY MACOSX_BUNDLE)
0186 if (_is_bundle)
0187 message(FATAL_ERROR "test10 is an OS/X bundle when it should not be")
0188 endif()
0189 get_property(_is_win32 TARGET test11 PROPERTY WIN32_EXECUTABLE)
0190 if (_is_win32)
0191 message(FATAL_ERROR "test11 is a WIN32 executable when it should not be")
0192 endif()
0193 get_property(_is_bundle TARGET test11 PROPERTY MACOSX_BUNDLE)
0194 if (_is_bundle)
0195 message(FATAL_ERROR "test11 is an OS/X bundle when it should not be")
0196 endif()