次: , 上: Writing Test Programs


6.2.1 テストプログラムのためのガイドライン

テストサンプルを書くときに従うべきもっとも重要な規則は以下のとおりです.

現実を見つめる.

このモットーは,テストサンプルが現実にかかれるプログラムと同じ厳密さで書 く必要があるということです.特に,“ショートカット”と単純にしたものは避 けるべきです.

コンパイルの準備をしたい場合,プリプロセッサだけで実行しないでください. 例えば,ヘッダが機能することを調査するためにcppを使用するだけ では,configureコンパイラのエラーを生じるヘッダを受け 入れるかもしれません.以前にインクルードした他のヘッダ,特に必要とされる ヘッダを用いたヘッダの調査をためらわないでください.

使用しているシンボルが,適切に定義されている,すなわち適切なヘッダをイン クルードする代わりに,自分で関数を単純に定義していないことを確かめてくだ さい.

テストプログラムは,標準出力に何かを書き出すべきではありません.コアダン プや他の異常終了と簡単に区別できるように,成功した場合は0,それ以外では ゼロ以外を返すべきです.セグメンテーション違反やその他の異常終了は,終了 ステータスでゼロ以外を生成します.main内のreturnの引数を無 視するシステム(少なくとも古いSun)もあるので,テストプログラムの mainではreturnではなくexitを使用するべきです.

既に実行されたテストで定義されたプリプロセッサの値を調査するため,テスト プログラムで#if#ifdefを使用することが可能です.例えば, AC_HEADER_STDCを呼び出す場合,configure.acの後の方で,条件 付でANSI Cヘッダファイルをインクルードするテストプログラムを使用すること が可能です.

     #if STDC_HEADERS
     # include <stdlib.h>
     #endif

テストプログラムでデータファイルを使用したり,作成したりする必要がある場 合, conftest.dataのような,conftestで始まる名前を与えてく ださい.configureスクリプトは,テストプログラム終了後やスクリ プトが中断された場合,`rm -rf conftest*'を実行しクリーンアップしま す.