sltest.CodeImporter class

Импортируйте код C or C++ в Simulink для тестирования

Описание

Используйте объекты sltest.CodeImporter класс, чтобы импортировать библиотеку C или подмножество библиотеки в Simulink® для моделирования и тестирования. Когда вы импортируете код, Библиотека Simulink и тестовый файл создаются. Каждая функция C-compatible сопоставляет с блоком C Caller в библиотеке, и каждый блок C Caller, по умолчанию, имеет присоединенную внутреннюю тестовую обвязку. Созданный тестовый файл MLDATX содержит тесты для каждой импортированной функции. Для модульных тестов можно только импортировать код С. Кроме того, для модульных тестов, песочница создается, чтобы изолировать импортированный код С.

Примечание

Если ваша библиотека кода содержит методы класса C++, только методы C++, которые перенесены в допустимые обертки функции C, импортируются в Simulink с помощью CodeImporter.

В качестве альтернативы можно использовать мастер, чтобы настроить и импортировать код в Simulink. В менеджере по Тесту используйте New> Test for C/C++ Code, чтобы открыть мастер.

sltest.CodeImporter классом является handle класс.

Атрибуты класса

HandleCompatible
true

Для получения информации об атрибутах класса см. Атрибуты класса.

Создание

Описание

пример

codeimport_obj = sltest.CodeImporter создает объект средства импорта Simulink Test™ кода с untitled как имя файла Библиотеки Simulink и создает четыре дополнительных объекта, которые вы получаете доступ к использованию SandboxSettings, ParseInfo, и CustomCode и свойств Options.

пример

codeimport_obj = sltest.CodeImporter(libraryfile) создает объект средства импорта кода и использует заданный libraryfile как имя созданной Библиотеки Simulink. Это устанавливает свойство LibraryFileName на libraryfile.

Свойства

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

Тип теста в виде строки или вектора символов. Чтобы протестировать подмножество вашей библиотеки пользовательского кода в изоляции, используйте "UnitTest". Код для модульного теста не может быть завершен и может иметь неопределенные символы. CodeImporter автоматически создает заглушки для неопределенных символов. Когда вы задаете "UnitTest", песочница также создается. Чтобы протестировать вашу целую библиотеку кода, используйте "IntegrationTest".

Пример: codeimport_obj.TestType = "IntegrationTest"

Атрибуты:

GetAccess
public
SetAccess
public

Поиграйте в песочнице настройку для модульных тестов в виде SandboxSettings объект. Это свойство применяется только если TestType UnitTest. Если TestType IntegrationTest, настройки песочницы проигнорированы. SandboxSettings по умолчанию объект создается, когда вы создаете объект средства импорта кода. Перед использованием createSandbox метод, можно изменить значения свойств по умолчанию. Для получения информации об изменении режима песочницы копирование исходных файлов к папке песочницы и удаления прагм и свойств заголовка определения переменной, видит sltest.CodeImporter.SandboxSettings.

Пример: codeimport_obj.SandboxSettings.CopySourceFiles = true

Атрибуты:

GetAccess
public
SetAccess
private

Имя созданного файла Библиотеки Simulink и связанных артефактов в виде строки или вектора символов. Связанные артефакты включают словарь данных, играют в песочнице папку и тестовый файл. Например, если LibraryFileName "myCodeTest"

  • Именем Библиотеки Simulink является myCodeTest.slx.

  • Именем словаря данных является myCodeTest.sldd.

  • Именем папки песочницы является myCodeTest_sandbox.

  • Тестовым файлом является myCodeTest.mldatx.

Если вы не задаете имя файла библиотеки, оно принимает значение по умолчанию к untitled.

Пример: codeimport_obj.LibraryFileName = "myCodeTest"

Атрибуты:

GetAccess
public
SetAccess
public

Папка для созданной библиотеки и связанных файлов артефактов в виде строки или вектора символов. Значением по умолчанию является пустая строка, которая интерпретирована как текущая рабочая папка. Можно альтернативно задать OutputFolder использование MATLAB® команды пути, заключенные в $, такой как $pwd$, который является текущей рабочей папкой.

Пример: codeimport_obj.OutputFolder = "C:/myMATLABFiles/CodeImports"

Пример: codeimport_obj.OutputFolder = "$pwd"

Атрибуты:

GetAccess
public
SetAccess
public

Файлы кода C or C++ и их связанные свойства импортировать в виде CustomCode объект. Используйте это свойство для изменения опций импорта кода, такое как исходные и заголовочные файлы, пути к папкам, библиотеки, и флаги компоновщика и компилятор. Для получения информации смотрите Simulink.CodeImporter.CustomCode.

Атрибуты:

GetAccess
public
SetAccess
private

Дополнительные настройки импорта в виде Simulink.CodeImporter.Options объект. Используйте этот объект изменить значения по умолчанию для размера аргумента, переданного указателем на функцию, создавая тестовую обвязку, импортируя код или меняя имя браузера Библиотеки Simulink. Для получения информации смотрите Simulink.CodeImporter.Options.

Атрибуты:

GetAccess
public
SetAccess
private

ParseInfo свойства объектов имеют пустые значения, прежде чем вы вызовете parse метод. После парсинга, ParseInfo включает, вводит ли код, успешно проанализированный, и информация о доступных функциях, функциях записи, и, в коде. Для получения информации смотрите Simulink.CodeImporter.ParseInfo.

Атрибуты:

GetAccess
public
SetAccess
private

Методы

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

Примеры

свернуть все

Этот пример принимает, что у вас есть существующие файлы кода С, чтобы протестировать, и вы не хотите тестировать свою целую библиотеку кода С.

  1. Создайте sltest.CodeImporter возразите и задайте myCodeTest как имя файла Библиотеки Simulink.

    codeimport_obj = sltest.CodeImporter("myCodeTest");

  2. Присвойте исходные файлы CustomCode свойство.

    codeimport_obj.CustomCode.SourceFiles = {"myCode1.c"};

  3. Создайте песочницу. createSandbox метод автоматически создает тупиковые файлы для любых неопределенных символов.

    codeimport_obj.createSandbox;
    После того, как вы создадите песочницу, можно смотреть созданные заглушки и при желании вручную заблокировать символы с помощью файлов в manualstub подпапка sandbox папка. Затем повторите createSandbox команда, чтобы обновить песочницу.

  4. Проанализируйте сгенерированную песочницу

    codeimport_obj.parse;

  5. Импортируйте код к модели Библиотеки Simulink. import метод создает тестовый файл по умолчанию.

    codeimport_obj.import;

  6. Откройте менеджера по Тесту. Затем откройте созданный myCodeTest.mldatx тестовый файл и запуск созданные тесты.

Этот пример принимает, что у вас есть существующая библиотека кода C or C++, чтобы протестировать и что все методы C++ находятся в функциях обертки C.

  1. Создайте sltest.CodeImporter возразите и задайте myCodeLibTest как имя Библиотеки Simulink. Установите TestType к IntegrationTest.

    codeimport_obj = sltest.CodeImporter("myCodeLibTest");
    codeimport_obj.TestType = "IntegrationTest";

  2. Создайте CustomCode объект, который задает заголовочные файлы. Используйте custcode.<propertyname> = <value> синтаксис, чтобы задать другие типы файлов и свойств. Затем присвойте CustomCode возразите против CustomCode свойство.

    codeimport_obj.CustomCode.SourceFiles = {"myCode1.c", "myCode2.c"};
    codeimport_obj.InterfaceHeaders = {"myCode_a.h","myCode_b.h"};

  3. Проанализируйте заданный код.

    codeimport_obj.parse;

  4. Импортируйте код к модели Библиотеки Simulink. import метод создает тестовый файл по умолчанию.

    codeimport_obj.import;

  5. Откройте менеджера по Тесту. Затем откройте созданный myCodeLibTest.mldatx тестовый файл и запуск созданные тесты.

Введенный в R2021a