slcoverage.CodeSelector class

Пакет: 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