Как настроить GCOV для тестирования покрытия для драйвера (драйвера Ethernet)?
Я пытаюсь использовать GCOV для тестирования драйвера устройства, например: драйвер Ethernet, написанный на языке C. Этот драйвер находится в пользовательском пространстве и имеет много вызовов ядра. Использование машины Linux Ubuntu Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-96-generic x86_64)
При компиляции кода драйвера - объектный файл (файл .o генерируется для каждого файла c) и комбинированный ( файл .ko). main() начинается с кода запуска в моем понимании. После загрузки файла (*.ko) Ethernet-устройство необходимо протестировать на функциональность и использовать более поздний отчет о покрытии.
У меня ограниченное знание Linux. В статьях, с которыми я сталкивался, программы выполняются только в пользовательском пространстве.
Вопрос1:
Я не уверен, каковы шаги для этого. Пожалуйста, предложите.
Благодарим вас за помощь в Advance.
2 ответа
Я прошел через это руководство. И это не дает полной информации. Тем не менее, я практически попробовал и добился охвата gcov, и gcovr также помог мне получить правильные результаты.
Я думаю, что правильное руководство живет здесь: https://www.kernel.org/doc/html/latest/dev-tools/gcov.html?highlight=gcov