Используйте правила выравнивания, чтобы отфильтровать результаты покрытия кода

В этом примере показано, как отфильтровать результаты покрытия кода в отчете покрытия после собирающегося покрытия для модели в программном обеспечении в цикле (SIL) или процессоре в режиме (PIL) цикла.

Сгенерируйте данные о покрытии кода

Во-первых, поместите модель в режим SIL/PIL. В окне Simulink® нажмите Apps и, под Верификацией кода, Валидацией, и Тестом, нажмите SIL/PIL Manager. На вкладке SIL/PIL измените Автоматизированную верификацию в Симуляцию SIL/PIL Только.

В этой модели в качестве примера покрытие включено по умолчанию. Если вы используете свою собственную модель, включаете покрытие в окне Configuration Parameters. Для получения дополнительной информации о настройках покрытия, смотрите, Задают Опции Покрытия.

Симулируйте модель и соберите покрытие путем нажатия на Run SIL/PIL. Когда вы симулируете модель, прикрепленная панель открывается рядом с моделью Simulink®. Кликните по вкладке Coverage Details, чтобы видеть отчет покрытия кода.

### Starting build procedure for: slvnvdemo_counter
### Successful completion of build procedure for: slvnvdemo_counter

Build Summary

Top model targets built:

Model              Action                       Rebuild Reason                                    
==================================================================================================
slvnvdemo_counter  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 19.015s
### Preparing to start SIL simulation ...
Building with 'gcc'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: slvnvdemo_counter
### Stopping SIL simulation for component: slvnvdemo_counter
### Completed code coverage analysis

Выровняйте по ширине Недостающее покрытие кода Используя фильтры покрытия

Если ваша модель имеет недостижимую логику, которая является намеренной, такой как защитный проект модели или обработка исключений, можно выровнять по ширине это недостающее покрытие с помощью фильтров покрытия.

Раздел Summary покрытия кода сообщает о ссылках на каждый исходный файл и функцию. В этом примере нажмите slvnvdemo_counter_step. Отчет покрытия кода переходит к функции с именем slvnvdemo_counter_step. В разделе 2.1, вы видите что оба условия в решении (!(slvnvdemo_counter_U.upper >=z rtb_input)) || (! rtb_inputGElower), | являются ложными, навсегда продвигается.

Можно выровнять по ширине недостающее покрытие из отчета. Нажмите кнопку правила выравнивания Add рядом с условием slvnvdemo_counter_U.upper >= rtb_input. Проводник Результатов покрытия открывает и добавляет правило выровнять по ширине недостающий результат из отчета.

В Редакторе Фильтра панель, набор Поле имени к myCodeCovFilter. Можно установить поле Description на любой описательный текст. Раздел Filter Rules имеет две вкладки, Модель и Код. В этом случае фильтр появляется на вкладке Code, потому что вы фильтруете из отчета покрытия кода. Можно дважды кликнуть поле Rationale, чтобы добавить причину, например, "Ожидаемый результат".

Около верхней части Редактора Фильтра, под полем Filename, нажимают Save as. В окне фильтра Сохранения назовите файл фильтра myCodeCovFilter. Обратите внимание на то, что имя фильтра и имя файла фильтра не должны быть тем же самым.

Когда вы сохраняете фильтр, отчет покрытия кода обновляет и отображает выровненный по ширине результат.

Выровняйте по ширине ложный случай второго условия путем нажатия на фильтр правила выравнивания Add рядом с rtb_inputGElower и выполнение шагов упоминается выше. Это второе правило добавляется к тому же файлу фильтра, который вы создали для первого правила.

Можно создать новый отчет покрытия кода после применения фильтров покрытия путем нажатия на Current Cumulative Data (H) на левой панели Проводника Результатов покрытия, и затем нажатия на отчет Generate в нижней части панели Данных о Покрытии. Эта ссылка создает автономный отчет.

Итоговый раздел отчета покрытия кода отражает улучшенное покрытие условия из-за правил фильтра.

Кроме того, отчет покрытия кода теперь показывает, что раздел назвал Объекты, Фильтрованные от Анализа покрытия, который отображает правила фильтра и объяснения.