diff options
author | Frederic Marec <frederic.marec@iot.bzh> | 2019-07-12 11:03:41 +0200 |
---|---|---|
committer | Frederic Marec <frederic.marec@iot.bzh> | 2019-07-12 16:57:41 +0200 |
commit | d9af8879183501b5cec2fb3209dfe0f0a03ac3d1 (patch) | |
tree | 71fdc1a9ef70784c1dd5c576f3fab60235326761 /src/cmake | |
parent | 5a26df78726408a9df55725af40c0a731021b687 (diff) |
Add automatic test tree creation
Add test tree template
Add test path variable
Add test-tree target
Bug-AGL: SPEC-2040
Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
Change-Id: I836d6e7653b600e92c7a0de065a41054ea06005e
Diffstat (limited to 'src/cmake')
-rw-r--r-- | src/cmake/cmake.d/02-variables.cmake | 4 | ||||
-rw-r--r-- | src/cmake/cmake.d/04-extra_targets.cmake | 65 |
2 files changed, 69 insertions, 0 deletions
diff --git a/src/cmake/cmake.d/02-variables.cmake b/src/cmake/cmake.d/02-variables.cmake index be22d72..5c54db3 100644 --- a/src/cmake/cmake.d/02-variables.cmake +++ b/src/cmake/cmake.d/02-variables.cmake @@ -188,6 +188,10 @@ set(PROJECT_AGL_AUTOBUILD_DIR ${CMAKE_SOURCE_DIR}/autobuild/agl set(PROJECT_LINUX_AUTOBUILD_DIR ${CMAKE_SOURCE_DIR}/autobuild/linux CACHE PATH "Subpath to a directory where are stored autobuild script") +# Path to test template +set(PROJECT_TEST_DIR ${CMAKE_SOURCE_DIR}/test + CACHE PATH "Subpath to a directory where are stored test tree") + if(OSRELEASE MATCHES "debian" AND NOT DEFINED ENV{SDKTARGETSYSROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) # build deb spec file from template set(PACKAGING_DEB_OUTPUT_DSC ${PROJECT_PKG_ENTRY_POINT}/${NPKG_PROJECT_NAME}.dsc) diff --git a/src/cmake/cmake.d/04-extra_targets.cmake b/src/cmake/cmake.d/04-extra_targets.cmake index 1cde843..40cd610 100644 --- a/src/cmake/cmake.d/04-extra_targets.cmake +++ b/src/cmake/cmake.d/04-extra_targets.cmake @@ -67,3 +67,68 @@ add_custom_command(OUTPUT ${PROJECT_AGL_AUTOBUILD_DIR}/autobuild ${PROJECT_LINUX add_custom_target(autobuild ALL DEPENDS ${PROJECT_AGL_AUTOBUILD_DIR}/autobuild ${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild) + +# ---------------------------------------------------------------------------- +# Test target +# ---------------------------------------------------------------------------- + +add_custom_command(OUTPUT ${PROJECT_TEST_DIR} + DEPENDS ${TEMPLATE_DIR}/test/CMakeLists.txt.in + ${TEMPLATE_DIR}/test/afb-test/CMakeLists.txt.in + ${TEMPLATE_DIR}/test/afb-test/etc/CMakeLists.txt.in + ${TEMPLATE_DIR}/test/afb-test/etc/aft-agl-helloworld.json.in + ${TEMPLATE_DIR}/test/afb-test/fixtures/CMakeLists.txt.in + ${TEMPLATE_DIR}/test/afb-test/fixtures/mapi_helloworld.lua.in + ${TEMPLATE_DIR}/test/afb-test/tests/CMakeLists.txt.in + ${TEMPLATE_DIR}/test/afb-test/tests/helloworld.lua.in + ${TEMPLATE_DIR}/test/afb-test/tests/mapi_tests.lua.in + + + COMMAND [ ! -f "${PROJECT_TEST_DIR}/CMakeLists.txt" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/CMakeLists.txt.in + -DOUTFILE=${PROJECT_TEST_DIR}/CMakeLists.txt + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/CMakeLists.txt" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/CMakeLists.txt.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/CMakeLists.txt + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/etc/CMakeLists.txt" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/etc/CMakeLists.txt.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/etc/CMakeLists.txt + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/etc/aft-agl-${PROJECT_NAME}.json" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/etc/aft-agl-helloworld.json.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/etc/aft-agl-${PROJECT_NAME}.json + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/fixtures/CMakeLists.txt" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/fixtures/CMakeLists.txt.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/fixtures/CMakeLists.txt + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/fixtures/mapi_${PROJECT_NAME}.lua" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/fixtures/mapi_helloworld.lua.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/fixtures/mapi_${PROJECT_NAME}.lua + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/tests/CMakeLists.txt" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/tests/CMakeLists.txt.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/tests/CMakeLists.txt + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/tests/${PROJECT_NAME}.lua" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/tests/helloworld.lua.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/tests/${PROJECT_NAME}.lua + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake + COMMAND [ ! -f "${PROJECT_TEST_DIR}/afb-test/tests/mapi_tests.lua" ] && + ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/test/afb-test/tests/mapi_tests.lua.in + -DOUTFILE=${PROJECT_TEST_DIR}/afb-test/tests/mapi_tests.lua + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake +) + +add_custom_target(test-tree ALL DEPENDS ${PROJECT_TEST_DIR})
\ No newline at end of file |