Command/script to apply after the end of the code verification (-post-analysis-command)

Задайте команду или скрипт, который будет выполнен после анализа

Описание

Задайте команду или скрипт, который будет выполнен после анализа.

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Advanced Settings.

Командная строка и файл опций: Используйте опцию -post-analysis-command. См. «Информация о командной строке».

Зачем использовать эту опцию

Создайте скрипты для задач, которые вы хотите выполнить после Polyspace® анализ.

Например, вы хотите получить уведомление по электронной почте о завершении анализа Polyspace. Создайте скрипт, который отправляет электронное письмо и используйте эту опцию для выполнения скрипта после анализа Polyspace.

Настройки

По умолчанию нет

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

Скрипт выполняется в папке результатов Polyspace. В своем скрипте рассмотрите папку результатов как текущую папку для относительных путей к другим файлам.

Для скрипта Perl, в Windows®, укажите полный путь к исполняемому файлу Perl и полный путь к скрипту. Например, чтобы задать скрипт Perl send_email.pl который отправляет электронное письмо после завершения анализа, введите polyspaceroot\ sys\perl\win32\bin\perl.exe <absolute_path>\ send _ email.pl. Здесь, polyspaceroot - местоположение текущей установки Polyspace, например C:\Program Files\Polyspace\R2019a\, и <absolute_path> - расположение скрипта Perl.

Совет

Выполнение команд постанализа на сервере

Если вы выполняете верификацию на удаленном сервере, после верификации программное обеспечение выполняет вашу команду на сервере, а не на рабочем столе клиента. Если ваша команда выполняет скрипт, скрипт должен присутствовать на сервере.

Например, если вы задаете команду, /local/utils/send_mail.sh, скрипт Shell send_email.sh должен присутствовать на сервере в /local/utils/. Программа не копирует скрипт send_email.sh от рабочего стола до сервера перед выполнением команды. Если скрипт отсутствует на сервере, возникает ошибка. Иногда существует несколько серверов, которые MATLAB® Планировщик заданий может запустить верификацию. Поместите скрипт на каждый из серверов, так как вы не контролируете, какой сервер в конечном счете запустит вашу верификацию.

Выполнение команд постанализа в пользовательском интерфейсе Polyspace

Чтобы протестировать использование этой опции, запустите следующий скрипт Perl из папки, содержащей проект Polyspace (.psprj файл). Скрипт анализирует последний файл журнала Polyspace в папке Module_1\CP_Result и записывает текущее имя проекта и дату в файл report.txt. Файл сохранен в Module_1\CP_Result.

foreach my $file (`ls Module_1\\CP_Result\\Polyspace_*.log`) {
  open (FH, $file);

while ($line = <FH>) {
    if ($line =~ m/Ending at: (.*)/) {
      $date=$1;
    }
    if ($line =~ m/-prog=(.*)/) {
      $project=$1;
    }
  }
}

my $filename = 'report.txt';
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";

print $fh "date=$date\n";
print $fh "project=$project\n";

close $fh;

В Linux®можно задать скрипт Perl для этой опции.

В Windows вместо непосредственного указания скрипта Perl укажите .bat файл, который вызывает Perl и запускает этот скрипт. Для образца, .bat файл может содержать следующую линию (при условии, что .bat файл и .pl файл находится в папке проекта Polyspace). В зависимости от установки MATLAB измените путь на perl.exe соответственно.

"C:\Program Files\MATLAB\R2018b\sys\perl\win32\bin\perl.exe" command.pl

Запустите Code Prover. Проверьте, что папка Module_1\CP_Result содержит файл report.txt с именем и датой проекта.

Информация о командной строке

Параметр: -post-analysis-command
Значение: Путь к исполняемому файлу или команде в кавычках
По умолчанию нет
Пример в Linux (Bug Finder): Polyspace Bug Finder -sources file_name -post-analysis-command 'pwd '/send _ email.pl
Пример в Linux (Code Prover): Polyspace Code Prover -sources file_name -post-analysis-command 'pwd '/send _ email.pl
Пример в Linux (Bug Finder Server): polyspace-bug-finder-server -sources file_name -post-analysis-command 'pwd '/send _ email.pl
Пример в Linux (Код Prover Server): Полипространство -code-prover-server -sources file_name -post-analysis-command 'pwd '/send _ email.pl
Пример в Windows: Polyspace Bug Finder -sources file_name -post-analysis-command «C :\Program Files\MATLAB\R2015b\sys\perl\win32\bin\perl.exe» «C :\My _ Scripts\send _ email»

Обратите внимание, что в Windows вы используете полный путь к исполняемому файлу Perl.