Polyspace 解析用の AUTOSAR XML (ARXML) ファイルとコード ファイルの選択
このトピックでは、Polyspace でのコンポーネント ベースの AUTOSAR コード検証方法について説明します。統合解析方法については、Polyspace で AUTOSAR コードのコンポーネント ベースの解析と統合解析のどちらかを選択するを参照してください。
ARXML およびソース ルート フォルダーのみを指定することによって、AUTOSAR プロジェクトに対して Polyspace® を実行すると、セットアップ エラーが発生する可能性があります。
標準の AUTOSAR ルート フォルダーには、テスト用のファイルや文書化用のファイルなどの余分なファイルが多数含まれています。これらのファイルには
.arxmlや.cなどの拡張子が付けられており、Polyspace がそれらを ARXML またはソース ファイルとして誤って処理し、解析に含める可能性があります。一部のソフトウェア コンポーネントの実装が進行中で未完了である可能性があります。
AUTOSAR プロジェクトの構造に精通していれば、余分で不完全なファイルとフォルダーを解析から除外できます。
ファイル選択をサポートする polyspace-autosar オプションは、-select-arxml-files と -select-source-files です。AUTOSAR 動作の完全修飾名とデータ型ではファイル パスと同様の区切り文字が使用されるため、ファイル選択構文を使用して、-autosar-behavior で動作を、-autosar-datatype でデータ型を指定することもできます。
ファイルを選択するための Linux find コマンドへの適合
ファイル選択構文は、Linux® find コマンドを厳密にエミュレートします。後ろにファイルの包含と除外が続くルート フォルダーをシェル パターンまたは正規表現を使用して指定します。
たとえば、フォルダー package で拡張子が .arxml のすべてのファイルを検索するには、次のように Linux コマンドを使用します。
find package -name '*.arxml'
フォルダー package 内のすべての ARXML ファイルを指定するには、find に続くコマンドの一部をコピーします。コピーした内容を文字列引数として polyspace-autosar コマンドのオプション -select-arxml-files に指定します。
polyspace-autosar -select-arxml-files "package -name '*.arxml'"
find オプションを単一文字列 (二重引用符内) として指定することによって、ARXML ファイルを選択します。解析中に、これらの ARXML ファイルは一時フォルダーにコピーされるのではなく、それらのそれぞれの場所から選択されます。オプション ファイル (後で polyspace-autosar オプション -options-file で使用) でオプションを入力する場合は、その文字列を二重引用符で囲む必要がありません。find 文字列を -select-arxml-files オプションに付加できます。たとえば、次の行をオプション ファイルに入力できます。
-select-arxml-files package -name '*.arxml'
ファイル選択オプション
以下の find オプションは、一般にファイル選択に必要です。大文字と小文字を区別しない照合に対してオプションの i 形式を使用します。
-name,-iname:ファイル名とシェル パターンを照合します。-path,-ipath:ファイル パスとシェル パターンを照合します。-regex,-iregex:シェル パターンの代わりに正規表現を照合に使用します。
ファイルまたはフォルダーを除外するためのオプションの前に -not を使用します。複数のパターンを単一文字列で指定するには、パターンを順番に並べるだけです。たとえば、直下のサブフォルダーの subpackage1 と subpackage2 をルート フォルダーから除外するには、次の構文を使用します。
-not -path 'subpackage1/*' -not -path 'subpackage2/*'
詳細については、それぞれ以下を参照してください。
シェル パターンについては、Shell Pattern Matching を参照してください。
findオプションについては、Finding Files を参照してください。
ファイル選択例
ファイル選択オプションの一部の一般的な用途は次のとおりです。
ルート フォルダー
package内のサブフォルダーsub_package_windowControlでswcで始まる ARXML ファイルのみを指定するには、次の構文を使用します。polyspace-autosar -select-arxml-files "package -path 'sub_package_windowControl/*' -name 'swc*.arxml'"
ルート フォルダー
package内のファイル構造で任意のレベルにあるサブフォルダーtestから ARXML ファイルを除外するには、次の構文を使用します。polyspace-autosar -select-arxml-files "package -not -path '*/test/*' -name '*.arxml'"
ルート フォルダー
package内のファイル構造で任意のレベルにあるサブフォルダーのtestとdocsから ARXML ファイルを除外するには、次の構文を使用します。polyspace-autosar -select-arxml-files "package -not -path '*/test/*' -not -path '*/docs/*' -name '*.arxml'"
文字列
testを含む ARXML ファイルを除く、ルート フォルダーpackage内のすべての ARXML ファイルを含めるには、次の構文を使用します。polyspace-autosar -select-arxml-files "package -name '*.arxml' -not -name '*test*.arxml'"
同様に、-select-source-files オプションを使用することによって、解析から .c ファイルと .h ファイルを包含または除外できます。-select-arxml-files と違って、このオプションは、既定で、.c ファイルと .h ファイルを選択します。たとえば、ルート フォルダー package 内のファイル構造で任意のレベルにあるサブフォルダー test からソース ファイルを除外するには、次の構文を使用します。
polyspace-autosar -select-source-files "package -not -path '*/test/*'"
前述の -select-arxml-files を使用すると、追加のパターン -name '*.arxml' も指定する必要があることに注意してください。
ルート フォルダー指定
ルート フォルダー名にスペースが含まれている場合は、そのフォルダー名を二重引用符で囲みます。ファイルの包含と除外を含むフォルダー名は既に二重引用符で囲まれているため、追加の引用符をエスケープする必要があります。たとえば、ルート フォルダーが C:\sdbx\ARXML dir1 の場合は、このフォルダー内のすべての ARXML ファイルを指定するには、次のコマンドを使用します。
polyspace-autosar -select-arxml-files "\"C:\sdbx\ARXML dir1\" -name '*.arxml'"
\" としてエスケープされます。オプション ファイル (後で polyspace-autosar オプション -options-file で使用) でオプションを指定する場合は、find 文字列を引用符で囲んだり、追加の二重引用符をエスケープしたりする必要がありません。次の行をオプション ファイルに入力します。
-select-arxml-files "C:\sdbx\ARXML dir1" -name '*.arxml'