59
59
endmacro(add_manual_qml_test)
61
macro(add_qml_benchmark SUBPATH COMPONENT_NAME ITERATIONS)
62
add_qml_test_internal(${SUBPATH} ${COMPONENT_NAME} ${ITERATIONS} ${ARGN})
63
endmacro(add_qml_benchmark)
65
61
macro(add_qml_test SUBPATH COMPONENT_NAME)
66
add_qml_test_internal(${SUBPATH} ${COMPONENT_NAME} 0 ${ARGN})
67
endmacro(add_qml_test)
69
macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
70
62
set(options NO_ADD_TEST NO_TARGETS)
71
63
set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
73
65
cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
75
67
set(qmltest_TARGET test${COMPONENT_NAME})
76
set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
77
68
set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
79
70
set(qmltestrunner_imports "")
89
80
endforeach(IMPORT_PATH)
92
string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_lower)
93
if(cmake_generator_lower STREQUAL "unix makefiles")
94
set(function_ARGS $(FUNCTION))
99
if (${ITERATIONS} GREATER 0)
100
set(ITERATIONS_STRING "-iterations" ${ITERATIONS})
102
set(ITERATIONS_STRING "")
105
83
set(qmltest_command
106
84
env ${qmltest_ENVIRONMENT}
107
85
${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
108
86
${qmltestrunner_imports}
110
-o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
114
find_program(DPKG dpkg-architecture)
116
exec_program(${DPKG} ARGS "-qDEB_BUILD_MULTIARCH" OUTPUT_VARIABLE ARCH_TRIPLET )
117
set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
119
set(qmltest_xvfb_command
120
env ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH}
121
xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
122
${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
123
${qmltestrunner_imports}
124
-o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
129
add_qmltest_target(${qmltest_TARGET} "${qmltest_command}" TRUE ${qmltest_NO_ADD_TEST})
130
add_qmltest_target(${qmltest_xvfb_TARGET} "${qmltest_xvfb_command}" ${qmltest_NO_TARGETS} TRUE)
131
add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN})
132
endmacro(add_qml_test_internal)
134
macro(add_binary_qml_test CLASS_NAME LD_PATH DEPS)
136
LD_LIBRARY_PATH=${LD_PATH}
137
${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
138
-o ${CMAKE_BINARY_DIR}/${CLASSNAME}Test.xml,xunitxml
141
add_qmltest_target(test${CLASS_NAME} "${testCommand}" FALSE TRUE)
142
add_dependencies(test${CLASS_NAME} ${CLASS_NAME}TestExec ${DEPS})
144
find_program( HAVE_GCC gcc )
145
if (NOT ${HAVE_GCC} STREQUAL "")
146
exec_program( gcc ARGS "-dumpmachine" OUTPUT_VARIABLE ARCH_TRIPLET )
147
set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
151
LD_LIBRARY_PATH=${LD_PATH}
152
xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
153
${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
154
-o ${CMAKE_BINARY_DIR}/${CLASS_NAME}Test.xml,xunitxml
157
add_qmltest_target(xvfbtest${CLASS_NAME} "${xvfbtestCommand}" FALSE TRUE)
158
add_dependencies(qmluitests xvfbtest${CLASS_NAME})
159
endmacro(add_binary_qml_test)
161
macro(add_qmltest_target qmltest_TARGET qmltest_command qmltest_NO_TARGETS qmltest_NO_ADD_TEST)
87
-o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
162
90
add_custom_target(${qmltest_TARGET} ${qmltest_command})
164
92
if(NOT "${qmltest_PROPERTIES}" STREQUAL "")