on xenial help sign in
Refactor library and import path handling
commitfb42f0063fd455c5bc49294980a7f6de2f38ab84 authorMichał Sawicz <michal.sawicz@canonical.com> dateFri 1 May 2015, 12:23 (11 years ago) parent9c00c39
2 files changed+59−27
tests/CMakeLists.txt+55−24 tests/plugins/LightDM/CMakeLists.txt+4−3
tests/CMakeLists.txt+55−24
@@ -22,29 +22,60 @@ add_subdirectory(uqmlscene)
2222add_executable(qmlscene ALIAS uqmlscene)
2323import_executables(dbus-test-runner)
2424
25−# Base/default values
26−set(base_environment
27− UNITY_TESTING=1
28− LANGUAGE=C
29− LC_ALL=C.UTF-8
30−)
31−
32−set(import_paths
25+set(UNITY_IMPORT_PATHS
3326 ${CMAKE_BINARY_DIR}/tests/mocks
3427 ${CMAKE_BINARY_DIR}/tests/utils/modules
3528 ${CMAKE_BINARY_DIR}/plugins
3629)
30+set(UNITY_IMPORT_PATHS ${UNITY_IMPORT_PATHS} CACHE INTERNAL "")
31+
32+macro(unity8_parse_arguments)
33+ cmake_parse_arguments(U8TEST
34+ "${QMLTEST_OPTIONS};QMENUMODEL;LIGHTDM"
35+ "${QMLTEST_SINGLE}"
36+ "${QMLTEST_MULTI}"
37+ ${ARGN}
38+ )
39+
40+ set(ld_paths)
41+ if(U8TEST_LIGHTDM)
42+ list(APPEND ld_paths
43+ ${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics
44+ ${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
45+ )
46+ endif()
47+
48+ if(U8TEST_QMENUMODEL)
49+ list(APPEND ld_paths ${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel)
50+ endif()
51+
52+ if(ld_paths)
53+ string(REPLACE ";" ":" ld_library_path "${ld_paths}")
54+ set(ld_library_path LD_LIBRARY_PATH=${ld_library_path})
55+ endif()
56+
57+ set(U8TEST_ARGN "${ARGN}")
58+ list(REMOVE_ITEM U8TEST_ARGN QMENUMODEL LIGHTDM)
59+
60+ set(environment
61+ UNITY_TESTING=1
62+ LANGUAGE=C
63+ LC_ALL=C.UTF-8
64+ ${ld_library_path}
65+ )
66+endmacro()
3767
3868
3969# add a non-graphical unit test
4070# see QmlTest.cmake for additional options
4171function(add_unity8_unittest COMPONENT_NAME TARGET)
42− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
72+ unity8_parse_arguments(${ARGN})
4373 add_executable_test(${COMPONENT_NAME} ${TARGET}
4474 ADD_TEST
75+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
4576 TARGETS unittests
46− ${ARGN}
47− ENVIRONMENT ${base_environment}
77+ ${U8TEST_ARGN}
78+ ENVIRONMENT ${environment}
4879 QT_QPA_PLATFORM=minimal
4980 ${U8TEST_ENVIRONMENT}
5081 )
@@ -52,24 +83,25 @@ endfunction()
5283
5384# add a graphical unit test
5485function(add_unity8_uitest COMPONENT_NAME TARGET)
55− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
86+ unity8_parse_arguments(${ARGN})
5687 add_executable_test(${COMPONENT_NAME} ${TARGET}
88+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
5789 TARGETS uitests
58− ${ARGN}
59− ENVIRONMENT ${base_environment}
90+ ${U8TEST_ARGN}
91+ ENVIRONMENT ${environment}
6092 ${U8TEST_ENVIRONMENT}
6193 )
6294endfunction()
6395
6496# add a non-graphical qml unit test
6597function(add_unity8_qmlunittest PATH COMPONENT_NAME)
66− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
98+ unity8_parse_arguments(${ARGN})
6799 add_qml_unittest(${PATH} ${COMPONENT_NAME}
68100 ADD_TEST
69− IMPORT_PATHS ${import_paths}
101+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
70102 TARGET unittests
71− ${ARGN}
72− ENVIRONMENT ${base_environment}
103+ ${U8TEST_ARGN}
104+ ENVIRONMENT ${environment}
73105 QT_QPA_PLATFORM=minimal
74106 ${U8TEST_ENVIRONMENT}
75107 )
@@ -77,20 +109,19 @@ endfunction()
77109
78110# add a graphical qml test
79111function(add_unity8_qmltest PATH COMPONENT_NAME)
80− cmake_parse_arguments(U8TEST "${QMLTEST_OPTIONS}" "${QMLTESTS_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
112+ unity8_parse_arguments(${ARGN})
81113 add_qml_test(${PATH} ${COMPONENT_NAME}
82− IMPORT_PATHS ${import_paths}
114+ IMPORT_PATHS ${UNITY_IMPORT_PATHS}
83115 TARGETS uitests
84− ${ARGN}
85− ENVIRONMENT ${base_environment}
86− LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm:${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel
116+ ${U8TEST_ARGN}
117+ ENVIRONMENT ${environment}
87118 ${U8TEST_ENVIRONMENT}
88119 )
89120endfunction()
90121
91122# add a graphical qml benchmark
92123function(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})
94125endfunction()
95126
96127
tests/plugins/LightDM/CMakeLists.txt+4−3
@@ -31,11 +31,12 @@ add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
3131add_unity8_uitest(GreeterDBus dbus-test-runner
3232 ARG_PREFIX "--parameter"
3333 ARGS --task $<TARGET_FILE:GreeterDBusTestExec>
34− ENVIRONMENT LD_LIBRARY_PATH="${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm"
35− IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks
3634 DEPENDS MockLightDM
35+ IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks
36+ LIGHTDM
3737 )
3838add_unity8_uitest(GreeterUsers GreeterUsersModelTestExec
39− ENVIRONMENT LD_LIBRARY_PATH="${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm" LIBLIGHTDM_MOCK_MODE=full
39+ ENVIRONMENT LIBLIGHTDM_MOCK_MODE=full
4040 DEPENDS MockLightDM
41+ LIGHTDM
4142 )