diff --git a/.drone.yml b/.drone.yml index 6a40479..d2997fa 100644 --- a/.drone.yml +++ b/.drone.yml @@ -27,13 +27,13 @@ steps: image: registry.nadal-fr.com/buildroot_dev commands: - cd domo-iot/build - - ./bin/test_device + - make launch_test -- name: codecov +- name: gcovr image: registry.nadal-fr.com/buildroot_dev commands: - cd domo-iot/build - - gcovr -v --object-directory=. -r .. + - make gcovr image_pull_secrets: - dockerconfigjson diff --git a/CMakeLists.txt b/CMakeLists.txt index f462935..08f9250 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,14 @@ add_custom_target (static_analysis COMMAND ${CMAKE_SOURCE_DIR}/tools/static_analysis.sh ${CMAKE_SOURCE_DIR}/build ) -add_custom_target (valgrind - COMMAND valgrind --leak-check=full --trace-children=yes --malloc-fill=AE --free-fill=BD --track-origins=yes ${CMAKE_SOURCE_DIR}/build/bin/domo-iot +add_custom_target (launch_test + COMMAND valgrind --leak-check=full --trace-children=yes --malloc-fill=AE --free-fill=BD --track-origins=yes ${CMAKE_SOURCE_DIR}/build/bin/test_device +) + +add_custom_target (gcovr + COMMAND gcovr -v --object-directory=${CMAKE_BINARY_DIR} -r ${CMAKE_SOURCE_DIR} +) + +add_custom_target (gcovr_html + COMMAND gcovr -v --object-directory=${CMAKE_BINARY_DIR} -r ${CMAKE_SOURCE_DIR} -o ${CMAKE_BINARY_DIR}/domo-iot.html --html --html-details ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9eb26f7..3827ba8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -23,7 +23,7 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}) file( GLOB_RECURSE source_files - main.c + broker/nats_broker.c devices/devices_manager.c devices/device.c @@ -33,7 +33,8 @@ file( rest/rest_handler.c ) -add_executable (${PROJECT_NAME} ${source_files}) +if(NOT DOMO_BUILD_TEST) +add_executable (${PROJECT_NAME} main.c ${source_files}) target_link_libraries (${PROJECT_NAME} LINK_PUBLIC @@ -46,29 +47,6 @@ target_link_libraries (${PROJECT_NAME} event_pthreads ) -# Tests -if(DOMO_BUILD_TEST) -add_definitions("-fprofile-arcs -ftest-coverage") -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov --coverage") - -add_executable (test_device - devices/devices_manager.c - devices/device.c - devices/outlet_dio.c - devices/shutter.c - devices/sprinkler.c - tests/test_device.c -) - -target_link_libraries (test_device - LINK_PUBLIC - nats_static - qlibc-static - json-c - gcov -) -endif(DOMO_BUILD_TEST) - install (TARGETS ${PROJECT_NAME} DESTINATION local/bin) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD @@ -76,6 +54,23 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMENT "Install domo's config files." ) -add_custom_target (launch_test - COMMAND valgrind --leak-check=full --trace-children=yes --malloc-fill=AE --free-fill=BD --track-origins=yes ${CMAKE_BINARY_DIR}/bin/test_device +endif() + +# Tests +if(DOMO_BUILD_TEST) +add_definitions("-fprofile-arcs -ftest-coverage") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov --coverage") + +add_executable (test_device tests/test_device.c ${source_files}) + +target_link_libraries (test_device + LINK_PUBLIC + nats_static + restd-static + qlibc-static + json-c + event + event_pthreads + gcov ) +endif(DOMO_BUILD_TEST)