1# Taken from amazon-freertos repository 2cmake_minimum_required(VERSION 3.13) 3set(BINARY_DIR ${CMAKE_BINARY_DIR}) 4# reset coverage counters 5execute_process( 6 COMMAND lcov --directory ${CMAKE_BINARY_DIR} 7 --base-directory ${CMAKE_BINARY_DIR} 8 --zerocounters 9 10 COMMAND mkdir -p ${CMAKE_BINARY_DIR}/coverage 11 ) 12# make the initial/baseline capture a zeroed out files 13execute_process( COMMAND lcov --directory ${CMAKE_BINARY_DIR} 14 --base-directory ${CMAKE_BINARY_DIR} 15 --initial 16 --capture 17 --rc lcov_branch_coverage=1 18 --rc genhtml_branch_coverage=1 19 --output-file=${CMAKE_BINARY_DIR}/base_coverage.info 20 ) 21file(GLOB files "${CMAKE_BINARY_DIR}/bin/tests/*") 22 23set(REPORT_FILE ${CMAKE_BINARY_DIR}/utest_report.txt) 24file(WRITE ${REPORT_FILE} "") 25# execute all files in bin directory, gathering the output to show it in CI 26foreach(testname ${files}) 27 get_filename_component(test 28 ${testname} 29 NAME_WLE 30 ) 31 message("Running ${testname}") 32 execute_process(COMMAND ${testname} OUTPUT_FILE ${CMAKE_BINARY_DIR}/${test}_out.txt) 33 34 file(READ ${CMAKE_BINARY_DIR}/${test}_out.txt CONTENTS) 35 file(APPEND ${REPORT_FILE} "${CONTENTS}") 36endforeach() 37 38# generate Junit style xml output 39execute_process(COMMAND ruby 40 ${CMOCK_DIR}/vendor/unity/auto/parse_output.rb 41 -xml ${REPORT_FILE} 42 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 43 ) 44 45# capture data after running the tests 46execute_process( 47 COMMAND lcov --capture 48 --rc lcov_branch_coverage=1 49 --rc genhtml_branch_coverage=1 50 --base-directory ${CMAKE_BINARY_DIR} 51 --directory ${CMAKE_BINARY_DIR} 52 --output-file ${CMAKE_BINARY_DIR}/second_coverage.info 53 ) 54 55# combile baseline results (zeros) with the one after running the tests 56execute_process( 57 COMMAND lcov --base-directory ${CMAKE_BINARY_DIR} 58 --directory ${CMAKE_BINARY_DIR} 59 --add-tracefile ${CMAKE_BINARY_DIR}/base_coverage.info 60 --add-tracefile ${CMAKE_BINARY_DIR}/second_coverage.info 61 --output-file ${CMAKE_BINARY_DIR}/coverage.info 62 --no-external 63 --rc lcov_branch_coverage=1 64 ) 65execute_process( 66 COMMAND genhtml --rc lcov_branch_coverage=1 67 --branch-coverage 68 --output-directory ${CMAKE_BINARY_DIR}/coverage 69 ${CMAKE_BINARY_DIR}/coverage.info 70 ) 71