|
| 1 | +# Copyright (c) 2024-present The Bitcoin Core developers |
| 2 | +# Distributed under the MIT software license, see the accompanying |
| 3 | +# file COPYING or https://opensource.org/license/mit/. |
| 4 | + |
| 5 | +include(${CMAKE_CURRENT_LIST_DIR}/CoverageInclude.cmake) |
| 6 | + |
| 7 | +set(functional_test_runner test/functional/test_runner.py) |
| 8 | +if(EXTENDED_FUNCTIONAL_TESTS) |
| 9 | + list(APPEND functional_test_runner --extended) |
| 10 | +endif() |
| 11 | +if(DEFINED JOBS) |
| 12 | + list(APPEND CMAKE_CTEST_COMMAND -j ${JOBS}) |
| 13 | + list(APPEND functional_test_runner -j ${JOBS}) |
| 14 | +endif() |
| 15 | + |
| 16 | +execute_process( |
| 17 | + COMMAND ${CMAKE_CTEST_COMMAND} --build-config Coverage |
| 18 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 19 | +) |
| 20 | +execute_process( |
| 21 | + COMMAND ${LCOV_COMMAND} --capture --directory src --test-name test_bitcoin --output-file test_bitcoin.info |
| 22 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 23 | +) |
| 24 | +execute_process( |
| 25 | + COMMAND ${LCOV_COMMAND} --zerocounters --directory src |
| 26 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 27 | +) |
| 28 | +execute_process( |
| 29 | + COMMAND ${LCOV_FILTER_COMMAND} test_bitcoin.info test_bitcoin_filtered.info |
| 30 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 31 | +) |
| 32 | +execute_process( |
| 33 | + COMMAND ${LCOV_COMMAND} --add-tracefile test_bitcoin_filtered.info --output-file test_bitcoin_filtered.info |
| 34 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 35 | +) |
| 36 | +execute_process( |
| 37 | + COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --add-tracefile test_bitcoin_filtered.info --output-file test_bitcoin_coverage.info |
| 38 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 39 | +) |
| 40 | +execute_process( |
| 41 | + COMMAND ${GENHTML_COMMAND} test_bitcoin_coverage.info --output-directory test_bitcoin.coverage |
| 42 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 43 | +) |
| 44 | + |
| 45 | +execute_process( |
| 46 | + COMMAND ${CMAKE_COMMAND} -E env TIMEOUT=15 ${functional_test_runner} |
| 47 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 48 | +) |
| 49 | +execute_process( |
| 50 | + COMMAND ${LCOV_COMMAND} --capture --directory src --test-name functional-tests --output-file functional_test.info |
| 51 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 52 | +) |
| 53 | +execute_process( |
| 54 | + COMMAND ${LCOV_COMMAND} --zerocounters --directory src |
| 55 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 56 | +) |
| 57 | +execute_process( |
| 58 | + COMMAND ${LCOV_FILTER_COMMAND} functional_test.info functional_test_filtered.info |
| 59 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 60 | +) |
| 61 | +execute_process( |
| 62 | + COMMAND ${LCOV_COMMAND} --add-tracefile functional_test_filtered.info --output-file functional_test_filtered.info |
| 63 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 64 | +) |
| 65 | +execute_process( |
| 66 | + COMMAND ${LCOV_COMMAND} --add-tracefile baseline_filtered.info --add-tracefile test_bitcoin_filtered.info --add-tracefile functional_test_filtered.info --output-file total_coverage.info |
| 67 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 68 | +) |
| 69 | +execute_process( |
| 70 | + COMMAND ${GENHTML_COMMAND} total_coverage.info --output-directory total.coverage |
| 71 | + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} |
| 72 | +) |
0 commit comments