slcoverage.Filter class

Пакет: slcoverage

Набор фильтров покрытия

Описание

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

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

Создание

Описание

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

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

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

расширить все

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

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

Методы

расширить все

Примеры

свернуть все

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

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

filt = slcoverage.Filter;
blockSel = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,...
           'slvnvdemo_covfilt/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);

Примененные фильтры покрытия можно увидеть в разделе Объектов Filtered from Coverage Analysis отчета о покрытии.

Введенный в R2017b