blob: 296f8d8d7cc032b08bcf925b65f04bcb4b83e070 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
cmake_minimum_required(VERSION 3.16)
if(BUILD_TESTS)
find_package(Qt${QT_MAJOR_VERSION}Test 6.0 REQUIRED)
endif()
add_subdirectory(libminimal)
if(NOT DEFINED MINIMAL_TESTS)
add_subdirectory(libsample)
add_subdirectory(libsmart)
add_subdirectory(libother)
endif()
if(WIN32 OR DEFINED AVOID_PROTECTED_HACK)
message(STATUS "Tests will be generated avoiding the protected hack!")
set(GENERATOR_EXTRA_FLAGS --avoid-protected-hack)
else()
message(STATUS "Tests will be generated using the protected hack!")
set(GENERATOR_EXTRA_FLAGS )
endif()
add_subdirectory(minimalbinding)
if(NOT DEFINED MINIMAL_TESTS)
add_subdirectory(samplebinding)
add_subdirectory(smartbinding)
add_subdirectory(otherbinding)
endif()
if(DEFINED MINIMAL_TESTS)
file(GLOB TEST_FILES minimalbinding/*_test.py)
else()
file(GLOB TEST_FILES minimalbinding/*_test.py
samplebinding/*_test.py
otherbinding/*_test.py
smartbinding/*_test.py
shibokenmodule/*_test.py)
endif()
list(SORT TEST_FILES)
set(test_blacklist "")
if(SHIBOKEN_IS_CROSS_BUILD)
# PYTHON_EXECUTABLE will be empty when cross-building.
message(WARNING
"Running tests when cross-compiling is not supported because it would require running "
"a target python interpreter which might have a different architecture than the host."
)
else()
find_package(PythonInterp REQUIRED)
endif()
if(NOT CTEST_TESTING_TIMEOUT)
set(CTEST_TESTING_TIMEOUT 60)
endif()
get_filename_component(BUILD_DIR "${libminimal_BINARY_DIR}" DIRECTORY)
get_filename_component(BUILD_DIR "${BUILD_DIR}" DIRECTORY)
get_filename_component(BUILD_DIR "${BUILD_DIR}" DIRECTORY)
foreach(test_file ${TEST_FILES})
string(REGEX MATCH "/([^/]+)(binding|module)/([^/]+)_test.py" tmp ${test_file})
set(test_name "${CMAKE_MATCH_1}_${CMAKE_MATCH_3}")
list(FIND test_blacklist ${test_name} expect_fail)
add_test(${test_name} ${PYTHON_EXECUTABLE} ${test_file})
set_tests_properties(${test_name} PROPERTIES ENVIRONMENT "BUILD_DIR=${BUILD_DIR}")
set_tests_properties(${test_name} PROPERTIES TIMEOUT ${CTEST_TESTING_TIMEOUT})
if (${expect_fail} GREATER -1)
set_tests_properties(${test_name} PROPERTIES WILL_FAIL TRUE)
endif()
endforeach()
# dumpcodemodel depends on apiextractor which is not cross-built.
if(SHIBOKEN_BUILD_TOOLS)
add_subdirectory(dumpcodemodel)
endif()
# FIXME Skipped until add an option to choose the generator
# add_subdirectory(test_generator)
if (NOT APIEXTRACTOR_DOCSTRINGS_DISABLED)
add_subdirectory(qtxmltosphinxtest)
endif()
|