このセクションの内容
実行モジュール ( |
最適なパフォーマンスを保つため、.cpptest フォルダーやフォルダーの内容を削除しないでください。 |
コードを解析する前に、特定の C および C++ コンパイラの特定のバージョンを使用するよう C/C++test を構成する必要があります。テスト対象コードのビルドに使用した元々のコンパイラおよびバージョンに即したものを指定する必要があります。元のコンパイラ実行モジュールへのパスが $PATH 変数に含まれていなければなりません (コンパイラをフル パスで指定した場合を除く)。
コンパイラ構成識別子を指定するには、--compiler
オプションを使用します。
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input cpptest.bdf |
または、カスタム構成ファイルに cpptest.compiler.family
エントリを追加して指定することもできます。
cpptest.compiler.family=gcc_4_5 |
すべてのテストで同じコンパイラの同じバージョンを使用する場合、[INSTALL_DIR] または [USER_HOME]ディレクトリにあるグローバルな構成ファイル cpptestcli.properties
にコンパイラ識別子を指定できます。「設定の概要」を参照してください。
コンパイラの構成を検出するには、以下のいずれかの操作を行います。
-detect-compiler
スイッチを使用して構成を自動検出します
cpptestcli -detect-compiler gcc |
-list-compilers
スイッチを使用してすべてのサポート対象コンパイラのリストから構成を検出します。
cpptestcli -list-compilers |
詳細については「コンパイラの設定」および「サポート対象コンパイラ」を参照してください。
以降の手順では、以下を仮定します。
解析を実行し、--
スイッチ (セパレーター) を使用して元々のコンパイラ コマンドを指定します。
|
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -- gcc -I include Bank.cxx |
C/C++test は、元々のコンパイラおよびコンパイラ オプションを使用してBank.cxx ファイルを解析し、検出された違反を出力コンソールにレポートします。
指定されたソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テストスコープの設定」を参照してください。
-fail
オプションを使用して、静的解析の指摘事項がレポートされた場合にゼロ以外の終了コードを生成することもできます (「コマンドラインの終了コード).」を参照)。
解析を実行し、-trace
スイッチを使用してオリジナルのビルド コマンドを指定します。
|
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -module . -trace make clean all |
C/C++test は以下のタスクを実行します。
ビルド コマンドを実行したときにコンパイルされたファイルだけがテスト対象として検出されます。Makefile に含まれるソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テストスコープの設定」を参照してください。
ビルド データ ファイルは、作業ディレクトリ、コンパイルのコマンドライン オプション、オリジナル ビルドのリンク プロセスといったビルド情報を格納します。ビルド データ ファイル (.bdf) へのパスを指定すると、プロジェクトを再ビルドせずに解析を実行できます。「再ビルドせずにプロジェクトを再解析する」を参照してください。
bdf を作成するには、-trace
スイッチを使用するか、[INSTALL_DIR]/bin ディレクトリにあるスタンドアロンの cpptestscan
または cpptesttrace
ユーティリティを使用します。「cpptestscan
および cpptesttrace
ユーティリティを使用する」を参照してください。
以下のサンプルはビルド データ ファイルからの抜粋です。
working_dir=/home/place/project/hypnos/pscom project_name=pscom arg=g++ arg=-c arg=src/io/Path.cc arg=-Iinclude arg=-I. arg=-o arg=/home/place/project/hypnos/product/pscom/shared/io/Path.o |
cpptestscan
および cpptesttrace
ユーティリティを使用するcpptestscan
ユーティリティは、標準ビルド中にコンパイラあるいはリンカーのラッパーとして使用されます。既存のコードで cpptestscan
を使用するには、コンパイラ/ リンカーの実行ファイルの接頭辞として cpptestscan
を指定してコードをビルドします。これは次の 2 つの方法で実行できます。
cpptestscan
を呼び出すようにビルド コマンドを変更する。cpptestscan
を埋め込む。既存のビルドで cpptesttrace
を使用するには、ビルドコマンド自体に接頭辞として cpptesttrace
を指定してコードをビルドします。cpptesttrace
は、ビルド中に実行されたコンパイラとリンカーのプロセスをトレースし、トレースした内容をビルド データ ファイルに格納します。
どちらの場合も、PATH 環境変数に cpptestscan または cpptesttrace ユーティリティへのフル パスを指定する必要があります。cpptestscan
と cpptesttrace
で使用できるオプションは、以下の表のとおりです。オプションは、cpptestscan
コマンドに直接指定するか、環境変数を介して指定できます。コマンドラインの接頭辞を変えることで、ほとんどのオプションが cpptestscan
または cpptesttrace
に適用できます。
基本的な cpptestscan の使用法:
cpptestscan.exe [options] [compile/link command]
cpptestscan [options] [compile/link command]
基本的な cpptesttrace の使用法:
cpptesttrace.exe [options] [build command]
cpptesttrace [options] [build command]
オプション | 環境変数 | 説明 | デフォルト |
---|---|---|---|
| CPPTEST_SCAN_OUTPUT_FILE | ビルド情報を追加するファイルを定義します。 | cpptestscan.bdf |
| CPPTEST_SCAN_PROJECT_NAME | C++test プロジェクトの名前を定義します。 | 現在の作業ディレクトリ名 |
| CPPTEST_SCAN_RUN_ORIG_CMD | yes の場合、オリジナル コマンドラインが実行されます。 | yes |
| CPPTEST_SCAN_QUOTE_CMD_LINE_MODE | C++test がコマンドラインの実行を準備するときに、どのようにパラメーターを引用符で囲むかを指定します。
cpptestscanQuoteCmdLineMode はLinux ではサポートされません。 | all |
| CPPTEST_SCAN_CMD_LINE_PREFIX | [empty] ではなく、かつオリジナル実行ファイルの実行がオンの場合、指定のコマンドがオリジナル コマンドラインの前 に付けられます。 | [empty] |
| CPPTEST_SCAN_ENV_IN_OUTPUT | yes の場合、選択した環境変数とコマンドライン パラメーターが出力ファイルにダンプされます。さらに詳しく設定するには --cpptestscanEnvFile または--cpptestscanEnvars オプションを使用します。 | no |
| CPPTEST_SCAN_ENV_FILE | 有効な場合、指定したファイルにはすべてのビルド コマンドに共通の環境変数が保持されます。メインの出力ファイルは差分だけを保持します。メインの出力ファイルのサイズを縮小するには、このオプションを使用します。--cpptestscanEnvInOutput を有効にしてこのオプションを使用してください。 | [empty] |
コード解析を実行し、-input
スイッチを使用して既存のビルド データ ファイルのパスを指定します。例:
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -module . -input cpptest.bdf |
C/C++test は以下のタスクを実行します。
オリジナルのビルド コマンドは実行されません。
複数のファイルを指定するには、-input
スイッチを複数回使用します。
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -module . -input project1.bdf -input project2.bdf |
ビルド データ ファイルに定義されたソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テストスコープの設定」を参照してください。
CMake ベースのプロジェクトを解析するには、次の作業を行います。
CMAKE_EXPORT_COMPILE_COMMANDS
変数を使用すると、CMake でファイルを出力するよう設定できます)。C/C++test のコマンド ラインに -input <PATH_TO_COMPILE_COMMANDS_JSON>
を含め、コンパイル コマンド ファイルの場所を渡します。コマンドは次のようになります。
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -module . -input compile_commands.json |
C/C++test は以下のタスクを実行します。
Compile_commands.json
ファイルから解析スコープの情報を読み取ります。C/C++test は、コンパイル コマンド ファイルに定義されたソース ファイルだけを解析します。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。解析のスコープを拡張し、ヘッダー ファイルを解析に含める方法については「テストスコープの設定」を参照してください。
C/C++test は、Visual Studio のプロジェクトおよびソリューション ファイルを読み取って、プロジェクトまたはソリューションのすべてのソース ファイルおよびインクルードされたヘッダー ファイルを解析できます。Visual Studio のプロジェクトまたはソリューション ファイルを指定するには、-input
スイッチを使用します。
cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj |
プロジェクトまたはソリューションの解析中に使用するビルド構成とプラットフォームを指定できます。ソリューションまたはプロジェクトのファイル名の後に、ビルド構成とプラットフォームの名前を追加します。以下はその一例です。
cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj@Debug|x64 |
別の方法として、以下のプロパティを使用して、すべての Visual Studio ソリューションとプロジェクトの解析中に使用するビルド構成とプラットフォームを指定できます。
cpptest.input.msvc.config=Debug cpptest.input.msvc.platform=x64 |
Microsoft Visual Studio の設定については、「Visual Studio の設定」を参照してください。
解析を実行する前に、適切なバージョンの Microsoft Visual C++ コンパイラへのパスが $PATH に含まれていることを確認してください。Microsoft Visual Studio 6 はサポートされていません。
.cpptest
ディレクトリに排他的にアクセスできる必要があります。デフォルトでは、このディレクトリは、現行の作業ディレクトリに作成され、ここに実行時固有のデータの一部が格納されます。結果として、1 つのディレクトリ内で同時に 1 つの C/C++test インスタンスだけが実行できます。-workspace
スイッチを使用すると、.cpptest ディレクトリの場所を変更できます。
-workspace <WORKSPACE_LOCATION> |