メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード検証の終了後に適用するコマンド/スクリプト (-post-analysis-command)

解析後に実行されるコマンドまたはスクリプトの指定

説明

解析後に実行されるコマンドまたはスクリプトを指定します。

オプションの設定

ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト コンフィギュレーションでは、このオプションは [詳細設定] ノードにあります。

ユーザー インターフェイス (Polyspace Platform、デスクトップ製品のみ): プロジェクト コンフィギュレーションでは、このオプションは [詳細設定] ノードの [静的解析] タブにあります。

コマンド ラインとオプション ファイル: オプション -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 スクリプトの場所です。

メールを送信する Perl スクリプトの例や、Perl スクリプトの作成に関するその他の情報については、Perl のドキュメンテーションを参照してください。

ヒント

サーバーでの解析後のコマンドの実行

リモート サーバーで検証を実行する場合、検証後、本ソフトウェアではクライアント デスクトップではなくサーバー上でコマンドが実行されます。コマンドでスクリプトを実行する場合、そのスクリプトはサーバー上に存在しなければなりません。

たとえば、コマンド /local/utils/send_mail.sh を指定する場合、シェル スクリプト send_email.sh/local/utils/ のサーバーに存在しなければなりません。本ソフトウェアによって、コマンドを実行する前にデスクトップからサーバーにスクリプト send_email.sh がコピーされることはありません。スクリプトがサーバー上に存在しない場合、エラーが発生します。MATLAB® ジョブ スケジューラが検証を実行できるサーバーが複数存在する場合があります。最終的に検証を実行するサーバーは制御されないため、それぞれのサーバーにスクリプトを配置します。

Polyspace ユーザー インターフェイスでの解析後のコマンドの実行

このオプションの使用をテストするには、Polyspace プロジェクト (.psprj ファイル) を含むフォルダーから次の Perl スクリプトを実行します。このスクリプトは、フォルダー Module_1\CP_Result に含まれている最新の Polyspace ログ ファイルを解析して、現在のプロジェクト名と日付をファイル 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 スクリプトを直接指定する代わりに、Perl を呼び出す .bat ファイルを指定してこのスクリプトを実行します。たとえば、.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 での例 (Code Prover Server): 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 実行可能ファイルへの絶対パスを使用することに注意してください。