このセクションの内容

実行モジュール

実行モジュール (cpptestcli) へのパスが $PATH 変数に含まれていることを確認してください。「インストール」を参照してください。

インクリメンタルな静的解析

C/C++test は、開発プロセスへの影響を最小限に抑えるよう最適化されています。前回の解析実行で収集された情報を再利用することで、その後の実行での解析時間を短縮できます。情報は作業ディレクトリ (-workspace オプションを参照) の .cpptest フォルダーに保存されます。

最適なパフォーマンスを保つため、.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

詳細については「コンパイラの設定」および「サポート対象コンパイラ」を参照してください。

使用例

以降の手順では、以下を仮定します。

  • GNU GCC 3.4 コンパイラが使用されている (構成識別子: gcc_3_4)。
  • 前述の前提条件が満たされている。
  • ユーザーは [INSTALL_DIR]/examples/ATM ディレクトリ でコマンドを実行する。

単一のファイルの解析

解析を実行し、-- スイッチ (セパレーター) を使用して元々のコンパイラ コマンドを指定します。

-- スイッチの後のすべての値は、コンパイラ コマンドとして解釈されるため、C/C++test 固有のオプションは、-- スイッチより前に指定する必要があります。

cpptestcli -config "builtin://Recommended Rules" -compiler gcc_3_4 -- gcc -I include Bank.cxx

C/C++test は、元々のコンパイラおよびコンパイラ オプションを使用してBank.cxx ファイルを解析し、検出された違反を出力コンソールにレポートします。

指定されたソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テスト スコープの設定」を参照してください。

-fail オプションを使用して、静的解析の指摘事項がレポートされた場合にゼロ以外の終了コードを生成することもできます (「コマンドラインの終了コード).」を参照)。

Makefile ベースのプロジェクトの解析

解析を実行し、-trace スイッチを使用してオリジナルのビルド コマンドを指定します。

-trace の後のすべての値は、ビルド コマンドとして解釈されるため、C/C++test 固有のオプションは、-trace より前に指定する必要があります。 

cpptestcli -config "builtin://Recommended Rules" -compiler gcc_3_4 -trace make clean all

C/C++test は以下のタスクを実行します。

  1. オリジナルのビルドを実行します (make clean all)
  2. テスト対象のファイルを検出します
  3. ファイルに対して解析を実行します
  4. 結果を出力コンソールにレポートします
  5. 今後の実行で使用できるよう、すべてのビルド情報を cpptest.bdf ファイルに格納します (ビルド データ ファイルの詳細は「About Build Data Files」を参照)。

ビルド コマンドを実行したときにコンパイルされたファイルだけがテスト対象として検出されます。Makefile に含まれるソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テスト スコープの設定」を参照してください。

ビルド データ ファイルについて

作業ディレクトリ、コンパイルのコマンドライン オプション、オリジナル ビルドのリンク プロセスといったビルド情報を格納するビルド データ ファイル (.bdf) を作成すると、C/C++test はプロジェクトを再ビルドせずに解析を実行できます。以下のサンプルはビルド データ ファイルからの抜粋です。

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

bdf を作成するには、-trace スイッチを使用するか、[INSTALL_DIR]/bin ディレクトリにあるスタンドアロンの cpptestscan または cpptesttrace ユーティリティを使用します。

cpptestscan および cpptesttrace ユーティリティを使用する

cpptestscan ユーティリティは、標準ビルド中にコンパイラあるいはリンカーのラッパーとして使用されます。既存のコードで cpptestscan を使用するには、コンパイラ/ リンカーの実行ファイルの接頭辞として cpptestscan を指定してコードをビルドします。これは次の 2 つの方法で実行できます。

  • コンパイラ/ リンカーの実行ファイルのラッパーとして cpptestscan を呼び出すようにビルド コマンドを変更する。
  • コマンドラインでコンパイラ変数を上書きしたくない場合 (または上書きできない場合)、実際の Makefile またはビルド スクリプト中に cpptestscan を埋め込む。

既存のビルドで cpptesttrace を使用するには、ビルドコマンド自体に接頭辞として cpptesttrace を指定してコードをビルドします。cpptesttrace は、ビルド中に実行されたコンパイラとリンカーのプロセスをトレースし、トレースした内容をビルド データ ファイルに格納します。

どちらの場合も、PATH 環境変数に cpptestscan または cpptesttrace ユーティリティへのフル パスを指定する必要があります。cpptestscancpptesttrace で使用できるオプションは、以下の表のとおりです。オプションは、cpptestscan コマンドに直接指定するか、環境変数を介して指定できます。コマンドラインの接頭辞を変えることで、ほとんどのオプションが cpptestscan または cpptesttrace に適用できます。

基本的な cpptestscan の使用法:

  • Windows: cpptestscan.exe [options] [compile/link command]
  • Linux および Solaris: cpptestscan [options] [compile/link command]

基本的な cpptesttrace の使用法:

  • Windows: cpptesttrace.exe [options] [build command]
  • Linux および Solaris: cpptesttrace [options] [build command]
オプション環境変数説明デフォルト

--cpptestscanOutput-File=<OUTPUT_FILE>

--cpptesttraceOutput-File=<OUTPUT_FILE>

CPPTEST_SCAN_OUTPUT_FILEビルド情報を追加するファイルを定義します。cpptestscan.bdf

--cpptestscanProject-Name=<PROJECT_NAME>

--cpptesttraceProject-Name=<PROJECT_NAME>

CPPTEST_SCAN_PROJECT_NAMEC++test プロジェクトの名前を定義します。現在の作業ディレクトリ名

--cpptestscanRun-OrigCmd=[yes|no]

--cpptesttraceRun-OrigCmd=[yes|no]

CPPTEST_SCAN_RUN_ORIG_CMDyes の場合、オリジナル コマンドラインが実行されます。yes

--cpptestscanQuoteCmdLineMode=[all|sq|none]

--cpptesttraceQuoteCmdLineMode=[all|sq|none]

CPPTEST_SCAN_QUOTE_CMD_LINE_MODE

C++test がコマンドラインの実行を準備するときに、どのようにパラメーターを引用符で囲むかを指定します。

all: すべてのパラメーターが引用符で囲まれます。

none: どのパラメーターも引用符で囲まれません。

sq: 空白文字または引用符号があるパラメーターだけを引用符で囲みます。

cpptestscanQuoteCmdLineMode はLinux ではサポートされません。

all

--cpptestscanCmd-LinePrefix=<PREFIX>
--cpptesttraceCmd-LinePrefix=<PREFIX>

CPPTEST_SCAN_CMD_LINE_PREFIX[empty] ではなく、かつオリジナル実行ファイルの実行がオンの場合、指定のコマンドがオリジナル コマンドラインの前 に付けられます。 [empty]

--cpptestscanEnvInOutput=[yes|no]

--cpptesttraceEnvInOutput=[yes|no]

CPPTEST_SCAN_ENV_IN_OUTPUTyes の場合、選択した環境変数とコマンドライン パラメーターが出力ファイルにダンプされます。さらに詳しく設定するには --cpptestscanEnvFile または--cpptestscanEnvars オプションを使用します。no

--cpptestscanEnv-File=<ENV_FILE>

--cpptesttraceEnv-File=<ENV_FILE>

CPPTEST_SCAN_ENV_FILE有効な場合、指定したファイルにはすべてのビルド コマンドに共通の環境変数が保持されます。メインの出力ファイルは差分だけを保持します。メインの出力ファイルのサイズを縮小するには、このオプションを使用します。--cpptestscanEnvInOutput を有効にしてこのオプションを使用してください。[empty]

再ビルドせずにプロジェクトを再解析する

コード解析を実行し、-input スイッチを使用して既存のビルド データ ファイルを指定します。

cpptestcli -config "builtin://Recommended Rules" -compiler gcc_3_4 -input cpptest.bdf

C/C++test は以下のタスクを実行します。

  1. 既存の cpptest.bdf ファイルからテスト対象ファイルの情報を読み取ります。
  2. ファイルに対して解析を実行します
  3. 結果を出力コンソールにレポートします
  4. オリジナルのビルドは実行されません。

複数のビルド データ ファイルを指定するには、-input スイッチを複数回使用します。

cpptestcli -config "builtin://Recommended Rules" -compiler gcc_3_4 -input project1.bdf -input project2.bdf

ビルド データ ファイルに定義されたソース ファイルだけが解析されます。ソース ファイルにインクルードされたヘッダー ファイルは、解析から除外されます。テスト対象ファイルのスコープを広げ、ヘッダー ファイルを含める方法については、「テスト スコープの設定」を参照してください。

Microsoft Visual Studio のプロジェクトまたはソリューションの解析

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 はサポートされていません。

C/C++test テスト データの場所の指定

.cpptest ディレクトリに排他的にアクセスできる必要があります。デフォルトでは、このディレクトリは、現行の作業ディレクトリに作成され、ここに実行時固有のデータの一部が格納されます。結果として、1 つのディレクトリ内で同時に 1 つの C/C++test インスタンスだけが実行できます。-workspace スイッチを使用すると、.cpptest ディレクトリの場所を変更できます。

-workspace <WORKSPACE_LOCATION>

  • No labels