slcoverage.Filter class

Пакет: slcoverage

Фильтр покрытия устанавливается

Описание

Используйте объект slcoverage.Filter класс, чтобы отфильтровать неудовлетворенные цели покрытия путем создания правил с помощью slcoverage.FilterRule класс.

slcoverage.Filter классом является handle класс.

Создание

Описание

filt = slcoverage.Filter() создает slcoverage.Filter объект.

filt = slcoverage.Filter(filterFile) создает slcoverage.Filter объект, который содержит правила фильтра, сохраненные в filterFile.

Входные параметры

развернуть все

Отфильтруйте файл в формате CVF в виде символьного массива пути к файлу или массив ячеек символьных массивов. Вы не должны включать расширение файла.

Пример: 'myfilt', 'filters\myfilt', {'myfilt1', 'myfilt2'}

Методы

развернуть все

Примеры

свернуть все

В этом примере показано, как добавить, что правило к покрытию фильтрует файл.

Создайте объект фильтра и используйте BlockSelector класс, чтобы создать BlockSelector объект для блока Saturation в slvnvdemo_covfilt модель.

filt = slcoverage.Filter;
blockSel = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,...
           'slvnvdemo_covfilt/Saturation');

Создайте правило отфильтровать блок Saturation с помощью slcoverage.FilterRule с селектором как первый вход и объяснение как второй вход.

rule = slcoverage.FilterRule(blockSel,'Edge case');

Используйте addRule метод slcoverage.Filter класс, чтобы добавить правило в объект фильтра.

addRule(filt,rule);

Сохраните фильтр с новым правилом к файлу фильтра с помощью save метод slcoverage.Filter класс.

save(filt,'myFilterFile')

В этом примере показано, как создать объект фильтра и добавить правило исключить подсистему из анализа покрытия.

Откройте slvnvdemo_covfilt модель. Используйте SimulationInput объект включить запись покрытия и задать настройки покрытия.

modelName = 'slvnvdemo_covfilt';
load_system(modelName)
simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');

Симулируйте модель. Данные о покрытии хранятся в значении, предоставленном для CovSaveName свойство.

simOut = sim(simIn);
covData = simOut.covData;

Можно отфильтровать блок при помощи slcoverage.BlockSelector класс. Чтобы исключить Переключаемую подсистему config, используйте slcoverage.BlockSelectorType.SubsystemAllContent как первый вход.

subsysSel = slcoverage.BlockSelector(...
                      slcoverage.BlockSelectorType.SubsystemAllContent,...
                      'slvnvdemo_covfilt/Switchable config');

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

rule = slcoverage.FilterRule(subsysSel,...
                    'Unused configuration',...
                    slcoverage.FilterMode.Exclude);

Создайте slcoverage.Filter возразите и затем добавьте правило в него.

filt = slcoverage.Filter;
addRule(filt,rule);

Сохраните фильтр в файл под названием blockFilter.cvf. Чтобы создать отчет, который использует этот фильтр покрытия, добавьте файл фильтра как значение к filter свойство covData, и создайте отчет под названием coverageData.html использование covData.

save(filt,'blockFilter')
covData.filter = 'blockFilter';
cvhtml('coverageData',covData)

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

Загрузите slvnvdemo_covfilt модель в память.

modelName = 'slvnvdemo_covfilt';
load_system(modelName)

Установите настройки покрытия при помощи Simulink.SimulationInput возразите и симулируйте модель с помощью sim.

simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');
simOut = sim(simIn);

Примените два фильтра к cvdata объект путем присвоения их свойству фильтра как массив ячеек.

covData.filter = {'filter_1','filter_2'};
cvhtml('twoFiltersCovData',covData);

Вы видите, что прикладное покрытие просачивается раздел Objects Filtered from Coverage Analysis отчета покрытия.

Введенный в R2017b