Spec-Zone.ru › MariaDB

Покрытие кода с dgcov

Инструмент dgcov помогает проверить покрытие нового кода. Скрипт dgcov.pl является частью фреймворка mariadb-test (и любых пакетов, включающих mariadb-test).

Обзор

Программа dgcov запускает gcov для анализа покрытия кода, агрегирует данные о покрытии и (по желанию) отображает покрытие только для строк, измененных в коммите(ах). Коммиты задаются в формате git diff.

Если коммиты не указаны, по умолчанию используется работа со всеми несохраненными изменениями, если таковые имеются, в противном случае — с последним коммитом (то есть с git diff HEAD или git diff HEAD^).

Рекомендуется, чтобы разработчик запускал dgcov для своего нового кода перед его отправкой в репозиторий MariaDB.

Использование

./dgcov.pl --help
./dgcov.pl [options] [<commit> [<commit>]]

Параметры и переменные

Короткая опция Полная опция Описание
-h --help Вывести справку и выйти
-v --verbose Показать выполняемые команды.
-p --purge Удалить всю информацию о покрытии тестов, чтобы подготовиться к новому тесту покрытия.
-o --only-gcov Остановить после выполнения gcov, не запускать git
-s --skip-gcov Не запускать gcov, предполагается, что файлы .gcov уже созданы
-g --generate Создать файлы .dgcov для всех исходных файлов

Подготовка кода для dgcov

Перед запуском этого инструмента MariaDB необходимо скомпилировать с

  cmake -DENABLE_GCOV=ON

и необходимо запустить тестовую среду. dgcov будет отображать покрытие для всех строк, измененных в указанных коммитах.

Вывод

Файлы вывода .dgcov имеют стандартный формат gcov: строки, не покрытые, имеют префикс #####, строки без сгенерированного кода имеют префикс -, а другие строки имеют префикс с числом их выполнений. Для получения дополнительной информации см. info gcov.

Покрытие, подобное патчу, для коммитов использует формат gcov (как указано выше) для строк, измененных в этих коммитах, и вообще никакого префикса для строк, которые не были изменены.

Примеры

Проверка покрытия для всех неотправленных коммитов:

dgcov.pl @{u} HEAD

Проверка покрытия для всех несохраненных изменений:

dgcov.pl HEAD

Проверка покрытия для конкретного коммита 1234567:

dgcov.pl 1234567^ 1234567

mariadb-test-run может автоматически вызвать dgcov:

./mtr --gcov

В последнем случае покрытие для несохраненных изменений (или последнего коммита) не будет выведено в stdout, а будет помещено в файл var/last_changes.dgcov.

Ограничения

Обратите внимание, что для возможности запуска gcov с фреймворком mariadb-test требуется версия gcc 4.8 или новее.

Ссылки

  • dgcov был создан Кристианом Нильсеном и был впервые объявлен здесь.
  • dgcov был повторно реализован для агрегирования данных и работы с git и cmake Сергеем Голубчиком.
Содержимое, воспроизведенное на этом сайте, является собственностью его соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/dgcov/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API