Powertest実行方法

はじめに

powertest はVDMToolsの回帰テストを行うためのツールである。 python により記述されたプログラムと、テストデータで構成されている。

基本的なディレクトリは以下のように仮定する。

  • ツールをビルドするディレクトリ: $HOME/vdmwork
  • ツールのソースなどsubversionで取得するリポジトリ: $HOME/toolbox/trunk
  • リポジトリのディレクトリを $TBDIR と記述する(TBDIR=$HOME/toolbox/trunk)
  • ツールがビルドされた状態でテストを実行する

環境設定

Linux、Mac OS X

CORBA を利用した API テストを行う場合は、omniORBpy をインストールする。

$TBDIR/test/powertest において
$ make

を実行する

APIテストを行わない場合は、 $TBDIR/test/powertest/runtest.py

import apirun

の部分をコメントアウトする。

Windows

powertestの実行はCygwin環境下で行うため、CygwinでPythonをインストールしておく。 APIテストはうまく動作しないので、 $TBDIR/test/powertest/runtest.py

import apirun

の部分をコメントアウトする。

Javaコード生成を行う場合は、C:\Program Files\java 内の jdk ディレクトリを Cygwin の /usr/java 内にコピーし、 default という名前のリンクを作成しておく。

例:

$ cd /usr
$ mkdir java
$ cp /cygdrive/c/Program\ Files/Java/jdk_1.*.*_** java/.
$ ln -s jdk1.7.0_15 default

3. テスト用ワークディレクトリ作成

テストを行うためのワークディレクトリを任意の場所に作成する。

4. 設定ファイル作成

ワークディレクトリに、設定ファイル .powertest-setup を作成する。 通常は、 $TBDIR/test/powertest/default-setup をコピーして編集する。

$TBDIR/code/setup/pt_xxx.tar.bz2 は OS 毎に各種のテストを設定してあるので 展開して利用する。

主な編集項目を以下に示す

  • What-To-Run
    • テストの項目の指定を行う
    • TC、IP、CPP、Java、Api、metaiv、POG が指定可能
  • Language
    • テスト対象の言語の指定を行う
    • SL、PP、RT が指定可能
  • Run-Type
    • 実装か仕様の指定を行う
    • impl、spec が指定可能
    • spec を指定する場合は、What-To-Runは TC、IP、CPP、Java、POG のいずれか
  • compiler
    • C++ テストで使用するコンパイラを指定する
    • Windows では自動的に cl.exe が使用されるので指定は不要
  • cflag
    • OS によってC++コンパイラのオプションが異なるので、OS にあわせてフラグを選択する

その他テスト項目ごとに指定があるが、前述の仮定ディレクトリ設定下では変更の必要はない。

PP の ip テストを行う場合、ツールのビルドディレクトリで dlclass_test1.so を作成し、 テストディレクトリにコピーする。

PP の CPP テストを行う場合は、ツールのビルドディレクトリでLinux、Mac OS X では`` dlclass_test1.o`` 、 Windows では dlclass_test1.obj を作成し、テストディレクトリにコピーする。

Windows で CPP テストを行う場合、配布パッケージの cg/include 内のファイルをテストディレクトリに コピーする。

Windows で java テストを行う場合は、 VDM.jar をテストディレクトリにコピーする。

5. テスト実行

テスト用ワークディレクトリ内で以下のシェルスクリプトを実行する

$TBDIR/test/powertest/powertest

6. 結果確認

テストが終了すると、テストディレクトリ内には、テストプログラム、結果とともに、 report-日付、errors-日付 というファイルが作成され、最新のものが report、errorsというリンクファイルが 作成される。