This commit is contained in:
Andrei Astafev 2020-04-14 19:43:31 +03:00
parent fa7da4ab1b
commit 7cab7eab1b

View File

@ -1229,7 +1229,7 @@ add_pvs_check(${TRGT})
add_sanitizers(${TRGT}) add_sanitizers(${TRGT})
---- ----
Подключение анализатора осуществляется включением опциям при запуске Подключение анализатора осуществляется включением опций при запуске
CMake для генерации сборочных файлов. Некоторые из опций между собой CMake для генерации сборочных файлов. Некоторые из опций между собой
несовместимы, в случае попытки совместного использования будет выведено несовместимы, в случае попытки совместного использования будет выведено
сообщение об ошибке. сообщение об ошибке.
@ -1254,8 +1254,13 @@ CMake для генерации сборочных файлов. Некотор
=== Анализ покрытия кода === Анализ покрытия кода
Для сбора статистики Для сбора информации о точном количестве исполнений
для каждого оператора в программе используется программа
https://gcc.gnu.org/onlinedocs/gcc/Gcov.html[Gcov],
входящая в состав компилятора https://gcc.gnu.org[GCC].
Для обеспечения возможности подключения анализа покрытия кода к проекту
нужно выполнить функцию (обязательно после подключения всех библиотек):
[source,cmake] [source,cmake]
---- ----
@ -1264,3 +1269,26 @@ CMake для генерации сборочных файлов. Некотор
add_code_coverage(${TRGT}) add_code_coverage(${TRGT})
---- ----
Подключение осуществляется включением опции `ENABLE_CODE_COVERAGE`
при запуске CMake для генерации сборочных файлов. В результате будут
созданы две дополнительные цели `coverage-${TRGT}` для сбора статистики
после работы программы и `coverage-report-${TRGT}` для её вывода
в виде HTML-страниц.
Пример анализа покрытия кода на примере проекта `cmlib-example-app-features`:
[source,sh]
----
mkdir -p _build/debug
cd _build/debug
cmake ../.. -DENABLE_CODE_COVERAGE=ON -DCMAKE_BUILD_TYPE=Debug
make
bin/cmlib-example-app-features
make coverage-cmlib-example-app-features
make coverage-report-cmlib-example-app-features
----
В результате в каталоге `report-cmlib-example-app-features` будет сформирован
отчёт о покрытии кода во время выполнения программы в виде HTML-страниц.