1# add_qml_test(path component_name [NO_ADD_TEST] [NO_TARGETS]
2# [TARGETS target1 [target2 [...]]]
3# [IMPORT_PATHS import_path1 [import_path2 [...]]
4# [PROPERTIES prop1 value1 [prop2 value2 [...]]])
6# NO_ADD_TEST will prevent adding the test to the "test" target
7# NO_TARGETS will prevent adding the test to any targets
8# TARGETS lists the targets the test should be added to
9# IMPORT_PATHS will pass those paths to qmltestrunner as "-import" arguments
10# PROPERTIES will be set on the target and test target. See CMake's set_target_properties()
12# To change/set a default value for the whole test suite, prior to calling add_qml_test, set:
13# qmltest_DEFAULT_NO_ADD_TEST (default: FALSE)
14# qmltest_DEFAULT_TARGETS
15# qmltest_DEFAULT_IMPORT_PATHS
16# qmltest_DEFAULT_PROPERTIES
18find_program(qmltestrunner_exe qmltestrunner)
20if(NOT qmltestrunner_exe)
21 msg(FATAL_ERROR "Could not locate qmltestrunner.")
24macro(add_qml_test SUBPATH COMPONENT_NAME)
25 set(options NO_ADD_TEST NO_TARGETS)
26 set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
28 cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
30 set(qmltest_TARGET test${COMPONENT_NAME})
31 set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
33 set(qmltestrunner_imports "")
34 if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "")
35 foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS})
36 list(APPEND qmltestrunner_imports "-import")
37 list(APPEND qmltestrunner_imports ${IMPORT_PATH})
38 endforeach(IMPORT_PATH)
39 elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "")
40 foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS})
41 list(APPEND qmltestrunner_imports "-import")
42 list(APPEND qmltestrunner_imports ${IMPORT_PATH})
43 endforeach(IMPORT_PATH)
47 env ${qmltest_ENVIRONMENT}
48 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
49 ${qmltestrunner_imports}
50 -o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
54 add_custom_target(${qmltest_TARGET} ${qmltest_command})
56 if(NOT "${qmltest_PROPERTIES}" STREQUAL "")
57 set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
58 elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
59 set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
62 if("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
63 add_test(${qmltest_TARGET} ${qmltest_command})
65 if(NOT "${qmltest_UNPARSED_ARGUMENTS}" STREQUAL "")
66 set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
67 elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
68 set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
70 endif("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
72 if("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
73 if(NOT "${qmltest_TARGETS}" STREQUAL "")
74 foreach(TARGET ${qmltest_TARGETS})
75 add_dependencies(${TARGET} ${qmltest_TARGET})
77 elseif(NOT "${qmltest_DEFAULT_TARGETS}" STREQUAL "")
78 foreach(TARGET ${qmltest_DEFAULT_TARGETS})
79 add_dependencies(${TARGET} ${qmltest_TARGET})
82 endif("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list