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})
----
Подключение анализатора осуществляется включением опциям при запуске
Подключение анализатора осуществляется включением опций при запуске
CMake для генерации сборочных файлов. Некоторые из опций между собой
несовместимы, в случае попытки совместного использования будет выведено
сообщение об ошибке.
@ -1254,8 +1254,13 @@ CMake для генерации сборочных файлов. Некотор
=== Анализ покрытия кода
Для сбора статистики
Для сбора информации о точном количестве исполнений
для каждого оператора в программе используется программа
https://gcc.gnu.org/onlinedocs/gcc/Gcov.html[Gcov],
входящая в состав компилятора https://gcc.gnu.org[GCC].
Для обеспечения возможности подключения анализа покрытия кода к проекту
нужно выполнить функцию (обязательно после подключения всех библиотек):
[source,cmake]
----
@ -1264,3 +1269,26 @@ CMake для генерации сборочных файлов. Некотор
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-страниц.