exponenta event banner

Команда/сценарий для применения после окончания проверки кода (-post-analysis-command)

Укажите команду или сценарий для выполнения после анализа

Описание

Укажите команду или сценарий для выполнения после анализа.

Задать опцию

Пользовательский интерфейс (только для настольных ПК): в конфигурации проекта этот параметр находится в узле Дополнительные настройки.

файл командной строки и параметров: Использовать параметр -post-analysis-command. См. раздел Сведения о командной строке.

Зачем использовать этот параметр

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

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

Настройки

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

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

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

Для сценария Perl в Windows ® укажите полный путь к исполняемому файлу Perl, а затем полный путь к сценарию. Например, чтобы указать сценарий Perlsend_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

Запустить программу проверки кода. Убедитесь, что папка 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 (сервер поиска ошибок): polyspace-bug-finder-server -sources file_name -post-analysis-command `pwd`/send_email.pl
Пример в Linux (сервер проверки кода): polyspace-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.