Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

これ らのユーティリティは、プロジェクトを自動作成するために C++test が使用できる既存のコードの ビルド プロセスから情報を収集します。ユーティリティが収集した情報を使って、プロジェクトを ビルドして手動で構成することもできます。

...



ビルド データ ファイルの概念

作業ディレクトリ、コンパイルのコマンドライン オプション、オリジナル ビルドのリンク プロセス といったビルド情報は、「ビルド データ ファイル」というファイルに保存されます。以下のサンプル はビルド データ ファイルからの抜粋です。

...

Note
title注意

以下の条件に当てはまる場合、必要な環境変数もビルド データ ファイルに格納できます。

  • コンパイラとリンカーが適切に動作するよう、必要な環境変数をビルド システムがセット アップする。
  • C++tests を実行するときに、その環境ではこれらの変数を使用できない。

 以下の --cpptestscanEnvInOutput オプションの説明を参照してください。

...



cpptestscan または cpptesttrace を使ってビルド データ ファイルを作成する
Anchor
using_cpp
using_cpp

...

オプション環境変数説明デフォルト
--
cpptestscanOutputFile= 
<OUTPUT_FILE>
--
cpptesttraceOutputFile=
<OUTPUT_FILE>

CPPTEST_SCAN_OUTPUT_FILE)

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

-- cpptestscanProjectNam e=<PROJECT_NAME>

-- cpptesttraceProjectNam e=<PROJECT_NAME>

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

-- cpptestscanRunOrigCm d= [yes|no]

-- cpptesttraceRunOrigCm d=[yes|no]

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

-- cpptestscanQuoteCmdLi neMode=[all|sq|none]

-- cpptesttraceQuoteCmdL ineMode=[all|sq|none]

CPPTEST_SCAN_QUOTE_CMD_LINE_MODE

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

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

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

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

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

 


all

-- cpptestscanCmdLinePre fix= <PREFIX>

-- cpptesttraceCmdLinePre fix=<PREFIX>

CPPTEST_SCAN_CMD_LINE_PREFIX

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

[empty]

-- cpptestscanEnvInOutput =[yes|no]

-- cpptesttraceEnvInOutput =[yes|no]

CPPTEST_SCAN_ENV_IN_OUTPUT

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

no

-- cpptestscanEnvFile=<E NV_FILE>

-- cpptesttraceEnvFile=<E NV_FILE>

CPPTEST_SCAN_ENV_FILE

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

[empty]

-- cpptestscanEnvars=[*|< ENVAR_NAME>,...]

-- cpptesttraceEnvars=[*|< ENVAR_NAME>,...]

CPPTEST_SCAN_ENVARS

ダンプする環境変数名を指定するか、'*' を選択してすべての環境変数を指定します。 --cpptestscanEnvInOutput を有効にしてこのオプションを 使用してください。

*

-- cpptestscanUseVariable =[VAR_NAME=VALUE,...]

-- cpptesttraceUseVariable =[VAR_NAME=VALUE,...]

CPPTEST_SCAN_USE_VARIABLEスキャンされたビルド情報中の各 "VALUE" 文字列を "${VAR_NAME}" 変数の使用で置き換えます。[empty]
-- cpptesttraceTraceCommandCPPTEST_SCAN_TRACE_COMMAND

ビルド プロセス情報を収集するときにトレースするコ マンド名を定義します。コ マンド名は正規表現で指定 します。コマンド名はビルド プロセスで使用されるオ リジナルのコンパイラ/ リ ンカー コマンドと一致しな ければなりません。

 

例: cpptestscan を使用するように GNU make ビルド コマンドを変更 する

...

  1. コンパイラの接頭辞として cpptestscan を使用し、CMake を使って Makefile を再生成します。PATH 変数で cpptestscan の実行ファイルが設定されていることを確認してください。
    1. オリジナルの CMake コマンドが cmake -G “Unix Makefiles” ../project_root である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイラとして g++ を使用するものとします。

      Code Block
      rm CMakeCache.txt
      CC="cpptestscan gcc" CXX="cpptestscan g++" cmake -G "Unix Makefiles" ../project_root
    2. CMakeCache.txt ファイルを参照して、CMAKE_*_COMPILER 変数が cpptestscan をポイントしているかどうかを確認します。
    3. Makefile が再生成される場合、ステップ 5 に進みます。コンパイラが認識されなかったためにブートストラップのフェーズで cmake が失敗した場合、そのままステップ 2 に進みます。
  2. 以下の BASH スクリプトを作成して、CMake コンパイラのように振る舞う cpptestscan ラッパー スクリプトを用意します。この例では、C コンパイラとして gcc を使用し、C++ コンパイラとして g++ を使用するものとします。

    Code Block
    >cat cpptest_gcc.sh
    #!/bin/bash
    cpptestscan gcc --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 gcc $*
    exit $?
    
    >cat cpptest_g++.sh
    #!/bin/bash
    cpptestscan g++ --cpptestscanRunOrigCmd=no $* > /dev/null 2>&1 g++ $*
    exit $?

     


    • 1 番目のスクリプトは cpptestscan を起動し、コンパイラを実行せずにオプションを抽出します。2 番目のスクリプトは実際のコンパイラを実行します。その目的は、CMake によって「認められる」ためにスクリプト全体が見た目も動作もコンパイラのようになるためです。
  3. 2 つのスクリプトに実行可能属性を与えて共通の場所に置き、Makefile をスキャンする必要があるユーザーが皆スクリプトにアクセスできるようにします。PATH 変数に cpptestscan とスクリプトを必ず設定してください。
  4. 用意されたスクリプトから Makefile を再生成するオプションを使ってオリジナルの CMake コマンドを拡張します。CMake を使って、コンパイラとして使用されるスクリプトによって Makefile を再生成します。
    • オリジナルの CMake コマンドが cmake -G “Unix Makefiles” ../project_root である場合、既存の CMake のキャッシュを削除して cmake を実行し、コンパイラ変数を上書きします。次の例は、C コンパイラとして gcc を使用し、 C++ コンパイ
      ラとして g++ を使用するものとします。

    • Code Block
      rm CMakeCache.txt
      cmake -G "Unix Makefiles" -D CMAKE_C_COMPILER=cpptest_gcc.sh -D CMAKE_CXX_COMPILER=cpptest_g++.sh ../project_root
    • CMakeCache.txt ファイルを参照し、用意されたラッパーを CMAKE_*_COMPILER 変数がポイントしているかどうかを確認します。
  5. cpptestscan の環境変数を設定します。 出力する .bdf ファイルを必ず絶対パスで指定してください。

    Code Block
    export CPPTEST_SCAN_PROJECT_NAME=my_project
    export CPPTEST_SCAN_OUTPUT_FILE=$PROJ_ROOT/cpptestscan.bdf
  6. どの make 変数も上書きすることなく、通常と同じようにプロジェクト ビルドを実行します。 CPPTEST_SCAN_OUTPUT_FILE 変数で定義された場所にビルド データ ファイルが生成されます。この変数を設定していない場合は Makefile の場所に生成されます。

...

make ベースではないビルド システムの場合、cpptestscan と cpptesttrace の使用方法は上記の例と非常に似ています。通常、コンパイラはビルド スクリプト中のどこかで変数として定義されます。cpptestscan を使ってこのビルド システムからビルド データ ファイルを作成するには、オリジナルのコンパイラ実行ファイルに接頭辞として cpptestscan を付加します。cpptesttrace を使ってこのビルド システムからビルド データ ファイルを作成するには、ビルド コマンド全体に接頭辞として cpptesttrace を付加します。


Info

いつ cpptestscan を使うべきか

ビルド データ ファイルを準備する手続きをビルド システムに統合することを強く推奨します。統合すると、通常のビルドを実行するときに、別のアクションを実行することなく、ビルド データファイルを生成することができます。

それには、Makefile またはビルド スクリプトで、 コンパイラとリンカーの実行ファイルに接頭辞として cpptestscan を付加します。

いつ cpptesttrace を使うべきか

Makefile / ビルド スクリプトを変更できない場合、またはビルド コマンドラインからコンパイラ/ リンカーの実行ファイルに接頭辞を付加するのがあまりにも複雑な場合、ビルド コマンド 全体の接頭辞として cpptesttrace を使用します。


GUI ウィザードで BDF ファイルをインポートしてプロジェクトを作成する
Anchor
Importing project using Build Data File
Importing project using Build Data File

C++test でテストしたいプロジェクトのビルド データ ファイルを cpptestscan または cpptesttrace  で作成したら、プロジェクト作成ウィザードを使って C++test プロジェクトを作成できます。 


Info
titleカスタム コンパイラの前提条件

カスタム コンパイラを使用している場合、GUI ウィザードを開く前に、カスタム コンパイラを追加してください。詳細については「カスタム コンパイラを使用するテストの設定」を参照してください。

...

カスタム プロジェクト設定は、プレーン テキストのオプション ファイルで設定できます。-localsettings スイッチを使ってオプション ファイルを cpptestcli に渡します。詳細については「ローカル設定ファイル Testing from the Command Line Interface」の「ローカル設定ファイル (オプション ファイル)」 を参照してください。

ここでは、cpptestscan を使ってコマンドラインから C++test プロジェクトを作成する方法について説明します。この例では C++test の ATM サンプルを使用します。このサンプルは<INSTALL_DIR>/Examples/ATM  ディレクトリにあります。

...

生成されたビルド データ ファイルを使って、GUI またはコマンドラインからプロジェクトを作成することができます