У меня возникли проблемы при попытке проверить покрытие кода одного из моих проектов на github, размещенном здесь .В основном это C и макросы, которые расширяются до некоторого полезного кода.
Я писал один тест и решил опубликовать его ранее.Это означает, что тест не полностью тестировал все функциональные возможности, которые были расширены макросом, но каким-то образом получил 100% -ное покрытие кода для этого конкретного файла.Все тесты пройдены (поэтому прошел весь не сгенерированный код), но не все функции, которые были расширены макросом, поэтому я предположил, что сгенерированный код не был принят во внимание.
Итак, я увидел две возможности:
- A - Выполнить трюк с компилятором, чтобы кодеки могли учитывать расширенный код ;
- B - Скопировать и вставить полученный макрос непосредственно в файл(что не является идеальным, поскольку расширение макроса может измениться.)
CMC_CREATE_UNIT
расширяется в одну функцию, которая затем вызывается в main внизу (не показано).CMC_CREATE_TEST
расширяется до серии do {} while(0)
(подробнее здесь ).Также LIST_GENERATE
расширяется до ряда функций, которые являются целью этого модульного теста.