@@ -22,29 +22,60 @@ add_subdirectory(uqmlscene)
22add_executable(qmlscene ALIAS uqmlscene)
22add_executable(qmlscene ALIAS uqmlscene)
23import_executables(dbus-test-runner)
23import_executables(dbus-test-runner)
25−# Base/default values
25+set(UNITY_IMPORT_PATHS
33 ${CMAKE_BINARY_DIR}/tests/mocks
26 ${CMAKE_BINARY_DIR}/tests/mocks
34 ${CMAKE_BINARY_DIR}/tests/utils/modules
27 ${CMAKE_BINARY_DIR}/tests/utils/modules
35 ${CMAKE_BINARY_DIR}/plugins
28 ${CMAKE_BINARY_DIR}/plugins
30+set(UNITY_IMPORT_PATHS ${UNITY_IMPORT_PATHS} CACHE INTERNAL "")
32+macro(unity8_parse_arguments)
33+ cmake_parse_arguments(U8TEST
34+ "${QMLTEST_OPTIONS};QMENUMODEL;LIGHTDM"
43+ ${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics
44+ ${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
48+ if(U8TEST_QMENUMODEL)
49+ list(APPEND ld_paths ${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel)
53+ string(REPLACE ";" ":" ld_library_path "${ld_paths}")
54+ set(ld_library_path LD_LIBRARY_PATH=${ld_library_path})
57+ set(U8TEST_ARGN "${ARGN}")
58+ list(REMOVE_ITEM U8TEST_ARGN QMENUMODEL LIGHTDM)
39# add a non-graphical unit test
69# add a non-graphical unit test
40# see QmlTest.cmake for additional options
70# see QmlTest.cmake for additional options
41function(add_unity8_unittest COMPONENT_NAME TARGET)
71function(add_unity8_unittest COMPONENT_NAME TARGET)
42− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
72+ unity8_parse_arguments(${ARGN})
43 add_executable_test(${COMPONENT_NAME} ${TARGET}
73 add_executable_test(${COMPONENT_NAME} ${TARGET}
75+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
45 TARGETS unittests
76 TARGETS unittests
46− ${ARGN}
77+ ${U8TEST_ARGN}
47− ENVIRONMENT ${base_environment}
78+ ENVIRONMENT ${environment}
48 QT_QPA_PLATFORM=minimal
79 QT_QPA_PLATFORM=minimal
49 ${U8TEST_ENVIRONMENT}
80 ${U8TEST_ENVIRONMENT}
@@ -52,24 +83,25 @@ endfunction()
53# add a graphical unit test
84# add a graphical unit test
54function(add_unity8_uitest COMPONENT_NAME TARGET)
85function(add_unity8_uitest COMPONENT_NAME TARGET)
55− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
86+ unity8_parse_arguments(${ARGN})
56 add_executable_test(${COMPONENT_NAME} ${TARGET}
87 add_executable_test(${COMPONENT_NAME} ${TARGET}
88+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
57 TARGETS uitests
89 TARGETS uitests
58− ${ARGN}
90+ ${U8TEST_ARGN}
59− ENVIRONMENT ${base_environment}
91+ ENVIRONMENT ${environment}
60 ${U8TEST_ENVIRONMENT}
92 ${U8TEST_ENVIRONMENT}
62endfunction()
94endfunction()
64# add a non-graphical qml unit test
96# add a non-graphical qml unit test
65function(add_unity8_qmlunittest PATH COMPONENT_NAME)
97function(add_unity8_qmlunittest PATH COMPONENT_NAME)
66− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
98+ unity8_parse_arguments(${ARGN})
67 add_qml_unittest(${PATH} ${COMPONENT_NAME}
99 add_qml_unittest(${PATH} ${COMPONENT_NAME}
69− IMPORT_PATHS ${import_paths}
101+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
70 TARGET unittests
102 TARGET unittests
71− ${ARGN}
103+ ${U8TEST_ARGN}
72− ENVIRONMENT ${base_environment}
104+ ENVIRONMENT ${environment}
73 QT_QPA_PLATFORM=minimal
105 QT_QPA_PLATFORM=minimal
74 ${U8TEST_ENVIRONMENT}
106 ${U8TEST_ENVIRONMENT}
@@ -77,20 +109,19 @@ endfunction()
78# add a graphical qml test
110# add a graphical qml test
79function(add_unity8_qmltest PATH COMPONENT_NAME)
111function(add_unity8_qmltest PATH COMPONENT_NAME)
80− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
112+ unity8_parse_arguments(${ARGN})
81 add_qml_test(${PATH} ${COMPONENT_NAME}
113 add_qml_test(${PATH} ${COMPONENT_NAME}
82− IMPORT_PATHS ${import_paths}
114+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
83 TARGETS uitests
115 TARGETS uitests
84− ${ARGN}
116+ ${U8TEST_ARGN}
85− ENVIRONMENT ${base_environment}
117+ ENVIRONMENT ${environment}
86− LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm:${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel
87 ${U8TEST_ENVIRONMENT}
118 ${U8TEST_ENVIRONMENT}
89endfunction()
120endfunction()
91# add a graphical qml benchmark
122# add a graphical qml benchmark
92function(add_unity8_qmlbenchmark PATH COMPONENT_NAME ITERATIONS)
123function(add_unity8_qmlbenchmark PATH COMPONENT_NAME ITERATIONS)
93− add_unity8_qmltest(${PATH} ${COMPONENT_NAME} ${ARGN} ITERATIONS ${ITERATIONS})
124+ add_unity8_qmltest(${PATH} ${COMPONENT_NAME} ITERATIONS ${ITERATIONS} ${ARGN})
94endfunction()
125endfunction()