Пакет: slcoverage
Набор фильтров покрытия
Использование объекта slcoverage.Filter для фильтрации неудовлетворенных целей покрытия путем создания правил с использованием slcoverage.FilterRule класс.
slcoverage.Filter класс является handle класс.
создает filt = slcoverage.Filter()slcoverage.Filter объект.
создает filt = slcoverage.Filter(filterFile)slcoverage.Filter объект, содержащий правила фильтра, сохраненные в filterFile.
filterFile - Файл фильтраФильтрация файла в формате CVF, заданного как символьный массив с именем пути к файлу или массив ячеек с символьными массивами. Нет необходимости включать расширение файла.
Пример: 'myfilt', 'filters\myfilt', {'myfilt1', 'myfilt2'}
addRule | Добавить правило фильтрации покрытия для фильтрации |
removeRule | Удалить правило из набора правил фильтра |
rules | Правила для фильтра |
setFilterName | Задать имя объекта фильтра покрытия |
filterName | Получить имя объекта фильтра покрытия |
setFilterDescription | Задать описание объекта фильтра покрытия |
filterDescription | Получить описание объекта фильтра покрытия |
save | Сохранить объект фильтра покрытия в файл фильтра покрытия |
В этом примере показано, как добавить правило в файл фильтра покрытия.
Создайте объект фильтра и используйте 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);
Применяемые фильтры покрытия можно просмотреть в разделе «Объекты, отфильтрованные из анализа покрытия» отчета о покрытии.
slcoverage.BlockSelector | slcoverage.FilterRule | slcoverage.MetricSelector | slcoverage.SFcnSelector
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.