slcoverage. Класс CodeSelector

Пакет: slcoverage

Выберите пользовательский код C/C++ для фильтра покрытия

Описание

Задайте пользовательские критерии выбора C/C++ кода для правила фильтра.

Конструкция

sel = slcoverage.CodeSelector(type,file) создает селектор на основе файла C++ или C.

sel = slcoverage.CodeSelector(type,file,function) создает селектор на основе C или функции C++ в файле.

sel = slcoverage.CodeSelector(type,file,function,expression,index) создает селектор на основе индекса решения или выражения условия.

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

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

Тип пользовательского кода C/C++, чтобы выбрать, как одно из этих значений:

  • slcoverage.CodeSelectorType.File — Пользовательское имя файла кода C/C++.

  • slcoverage.CodeSelectorType.Function — Пользовательское имя функции C/C++ кода.

  • slcoverage.CodeSelectorType.Decision — Пользовательское решение C/C++ кода.

  • slcoverage.CodeSelectorType.Condition — Пользовательское условие C/C++ кода.

Пример: slcoverage.CodeSelectorType.Function

C или файл C++, чтобы выбрать, заданный как вектор символов или строка.

Пример: 'myfile.c'

C или C++ функционируют, чтобы выбрать, заданный как вектор символов или строка.

Пример: 'counterbusFcn'

Решение или выражение условия, чтобы выбрать, заданный как вектор символов или строка.

Пример: 'inputGElower'

Матричное положение выражения, чтобы выбрать, заданный как целое число.

Пример 2

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

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

Селекторный объект, возвращенный как объект slcoverage.CodeSelector или массив объектов slcoverage.CodeSelector.

Свойства

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

Это свойство доступно только для чтения.

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

Это свойство доступно только для чтения.

Описание селектора, возвращенного как вектор символов. Simulink® Coverage™ создает описание на основе селектора.

Это свойство доступно только для чтения.

Идентификатор элемента модели, возвращенного как вектор символов ID Simulink, свойства элемента модели или указателя. Это свойство пусто для класса slcoverage.CodeSelector.

Это свойство доступно только для чтения.

Селекторный тип, возвращенный как одно из этих значений slcoverage.CodeSelectorType:

  • File

  • Function

  • Decision

  • Condition

Методы

allSelectorsСелекторы для элемента модели или кода

Копировать семантику

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

Выберите пользовательский код C/C++, чтобы добавить правило для и выбрать построение кода, чтобы добавить правило для. Получившийся фильтр имеет одно правило. Можно моделировать модель для покрытия при помощи фильтра, чтобы видеть эффект.

Откройте модель. Задайте настройки покрытия и включите запись покрытия.

modelName = 'slexCCallerExample';
open_system(modelName);
set_param(modelName, 'SimAnalyzeCustomCode', 'on', 'CovMetricSettings','dcme', 'RecordCoverage','on');

Добавьте правило фильтра для пользовательской функции C times2.

sel = slcoverage.CodeSelector(slcoverage.CodeSelectorType.Function, 'my_func.c', 'times2');

Создайте объект фильтра, создайте правило на основе селектора и добавьте правило в фильтр.

filt = slcoverage.Filter;
rule = slcoverage.FilterRule(sel, 'Tested elsewhere', slcoverage.FilterMode.Exclude);
filt.addRule(rule);

Сохраните фильтр как codefilter. Моделируйте модель для покрытия кода. Добавьте файл фильтра в свойство фильтра получившегося объекта cvdata.

filt.save('codefilter');
csim = cvsim(modelName);
csim.get('my_func.c').filter = 'codefilter';

Сгенерируйте отчет покрытия.

cvhtml('cov',csim);

Рассмотрите отчет. Щелкните по ссылке Файла (файлов) Пользовательского кода my_func.c и найдите, что фильтр постановляет, что вы добавили под Objects Filtered from Coverage Analysis.

Введенный в R2018b