Powertest テストケース追加方法¶
テストケースの構成¶
test-+-apitestcases----+-PP ... corbaインターフェーステストケース(PP,VICE)
| +-SL ... corbaインターフェーステストケース(PP,VICE)
+-cgip------------+-CORE ... インタープリタ/コード生成テストケース(PP,SL,VICE)
| +-IMPL
| +-IMPLMOD ... インタープリタ/コード生成テストケース(SL)
| +-PP ... インタープリタ/コード生成テストケース(PP,VICE)
| +-SL ... インタープリタ/コード生成テストケース(SL)
| +-TESTBYHAND
| +-VICE ... インタープリタ/コード生成テストケース(VICE)
+-cgtestenv
+-iptestcases-----+-CORE ... インタープリタ/コード生成テストケース(PP,SL,VICE)
| +-IMPL
| +-IMPLMOD ... インタープリタ/コード生成テストケース(SL)
| +-PP ... インタープリタ/コード生成テストケース(PP,VICE)
| +-SL ... インタープリタ/コード生成テストケース(SL)
+-iptestcasesJP ... 未使用
+-j2v-test ... 未使用
+-j2vtf-testcases ... 未使用
+-jss-test ... 未使用
+-metaivtestcases ... メタデータテストケース(C++)
+-pog-------------+-expertest-+-CORE ... 証明課題生成テストケース(PP,SL,VICE)
| | +-PP ... 証明課題生成テストケース(PP,VICE)
| | +-SL ... 証明課題生成テストケース(SL)
| +-fulltest--+-CORE ... 証明課題生成テストケース(PP,SL,VICE)
| +-PP ... 証明課題生成テストケース(PP,VICE)
| +-SL ... 証明課題生成テストケース(SLE)
| +-VICE ... 証明課題生成テストケース(VICE)
+-pogtestcases ... 未使用
+-powertest ... パワーテストプログラム
+-tc--------------+-expertest-+-CORE ... 型チェックテストケース(PP,SL,VICE)
| | +-PP ... 型チェックテストケース(PP,VICE)
| | +-SL ... 型チェックテストケース(SL)
| +-fulltest--+-CORE ... 型チェックテストケース(PP,SL,VICE)
| +-PP ... 型チェックテストケース(PP,VICE)
| +-SL ... 型チェックテストケース(SL)
| +-VICE ... 型チェックテストケース(VICE)
+-xformTestcases ... 未使用
ディレクトリの説明¶
テストケースは実行している言語やテストのレベルにより、ディレクトリ名でテスト対象かどうかを判断
- CORE
- このディレクトリ以下に全言語共通のテストケースを配置する。 書式はVDM++形式で記述する。VDM-SLでテストを行う場合は、自動的にVDM-SL形式に変換される。 そのため、VDM-SLに変換できない命令は使用できない。
- PP
- このディレクトリ以下にはVDM++のみを対象としたテストケースを配置する。VICEでも実行可能
- SL
- このディレクトリ以下にはVDM-SLのみを対象としたテストケースを配置する。
- VICE
- このディレクトリ以下にはVICEのみを対象としたテストケースを配置する。
- IMPLMOD
- このディレクトリ以下にはVDM-SLのみを対象としたテストケースを配置する。
- IMPL
- このディレクトリ以下には実装レベルのみを対象としたテストケースを配置する。
- SPEC
- このディレクトリ以下には仕様レベルのみを対象としたテストケースを配置する。
テストケースの構成¶
テストケースはテストを行う1ファイルの仕様とテスト結果のファイルで構成される。
テストケースの拡張子は.vdmを使用し、結果の拡張子は.resを使用する
test-01.vdm
test-01.res
インタープリタ/コード生成のテストケース¶
テストケースの実行は、クラスAの引数を取らないTest操作がデフォルトとなっている。 コード生成の場合は、値を返すことを前提としており、値を返さない場合はエラーとなる。
テストや実行オプションにより結果が変わる場合¶
実行オプションにより結果が異なる場合は、結果ファイルを複数用意して対応する。 ただし、候補が2個以上にならないように注意する。 またオプションは複数指定することが可能。
インタープリタテストで動的型チェックのON/OFFで結果が異なる場合¶
ファイル名に -dtcon
と -dtcoff
を付加した結果ファイルを作成する。
test-01.res-dtcon
test-01.res-dtcoff
インタープリタテストとコード生成テストで結果が異なる場合¶
ファイル名に -ip
と -cpp
と -java
を付加した結果ファイルを作成する。
test-01.res-ip
test-01.res-cpp
test-01.res-java
型チェックテストにおいてpos型とdef型で結果が異なる場合¶
ファイル名に -pos
と -def
を付加した結果ファイルを作成する。
test-01.res-pos
test-01.res-def
テストを実行しないように指定する場合¶
ファイル名に -ignore
か -ignore-silently
を付加した結果ファイルを作成する。
通常他のオプションと併用する。
-ignore
は実行しなかったことがreportファイルに記載れるのに対し、
-ignore-silently
はreportファイルに記載されず完全に無視される。
例えば型チェックエラーがあるような仕様でも、インタープリタは実行可能となるが、 コード生成は失敗する。このような場合、コード生成テストは無意味となる。 このような場合の結果ファイルの構成は以下のようになる。
test-01.res-ip
test-01.res-ignore-silently-cpp
test-01.res-ignore-silently-java