次: , 前: Dist, 上: Top


14 テストスイートのサポート

Automakeは二つの形式のテストスイートをサポートします.

14.1 単純なテスト

変数TESTSが定義されている場合,その値はテストを行なうために実行 するプログラムのリストになります.プログラムは,派生するオブジェクトあ るいはソースオブジェクトです.生成されるルールはsrcdir.の両方で探します.データファイルを必要としているプログラムは, (環境変数とmake変数の両方の)srcdirでそれらを探すので,それらは, 別々のディレクトリでビルドするとき(see Build Directories),特にdistcheckルー ルに対して動作します(see Dist).

失敗の数は実行後に出力されます.所定のテストプログラムが77のステータス で終了する場合,その結果は最終的なカウントで無視されます.この機能で, 非移植性のテストが意味をなさない環境で無視することができます.

変数TESTS_ENVIRONMENTは,テストの実行に対して環境変数を設定する ために使用することが可能です.環境変数srcdirは,ルール内に設定 されます.すべてのテストプログラムがスクリプトの場合, TESTS_ENVIRONMENTをシェルの呼び出しに設定することが可能です(例 えば`$(SHELL) -x').これはテストをデバッグするときに役立つはずで す. 変数XFAIL_TESTSを,失敗を期待するテストのリスト(通常は TESTSのサブセット)に定義してもかまいません.これは,それらのテ ストの結果を反転します. Automakeは,TESTSでリストアップされているそれぞれのプログラムが, テストを実行する前にビルドされることを確実にします.ソースと派生するプ ログラムをTESTSにリストアップすることが可能です.例えば,テスト としてCプログラムを実行したいかもしれません.こうするためには,その名 前をTESTScheck_PROGRAMSにもリストアップし,それを他の プログラムとして指定します.

14.2 DejaGnuのテスト

`dejagnu'AUTOMAKE_OPTIONSにある場合,dejagnuベースのテストスイー トが想定されます.変数DEJATOOLは,runtestの呼び出しに --tool引数として,一度に渡される名前のリストです.それはパッケー ジの名前をデフォルトとします.

変数RUNTESTDEFAULTFLAGSは,デフォルトでdejagnuに渡される --tool--srcdirフラグを保持します.必要な場合は,これで 優先することが可能です. 変数EXPECTRUNTESTで,プロジェクト特有の値を提供するた めに優先することが可能です.例えば,コンパイラツールチェインをテストす る場合,デフォルト値はホストとターゲットの名前を考慮しないので,こうす る必要があります. 変数RUNTESTFLAGSの内容は,runtestの呼び出しに渡されます. これは,“ユーザ変数”(see User Variables)として扱われます. Makefile.amruntestフラグを設定する必要がある場合,代わ りにAM_RUNTESTFLAGSを使用することが可能です. Automakeは,./configureで検出した様々な変数を定義するローカルな site.expファイルを生成するためのルールを生成します.このファイ ルは,自動的にDejaGnuで読み込まれます.パッケージユーザがテストスイー トを調整するためにこのファイルを編集することは問題ありません.しかし, テストスイートの著者が新しい変数を定義する場所ではありません.これは, 実際のテストスイートのコードのどこかでなされるべきです.特に, site.expを配布すべきではありません.

DejaGnuのテストスイートに関する詳細は,See Top.

どちらの状況でも,テストは`make check'で実行されます.

14.3 インストールテスト

installcheckターゲットは,パッケージがインストールされた後でテ ストを実行する方法をユーザが利用可能にします. installcheck-localルールを書くことで,これをテストに追加するこ とが可能です.