exponenta event banner

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 для блока «Насыщенность» в 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 класс. Чтобы исключить подсистему конфигурации Switchable, используйте 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 путем назначения их свойству filter в качестве массива ячеек.

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

Применяемые фильтры покрытия можно просмотреть в разделе «Объекты, отфильтрованные из анализа покрытия» отчета о покрытии.

Представлен в R2017b