テストサンプルを書くときに従うべきもっとも重要な規則は以下のとおりです.
このモットーは,テストサンプルが現実にかかれるプログラムと同じ厳密さで書 く必要があるということです.特に,“ショートカット”と単純にしたものは避 けるべきです.
コンパイルの準備をしたい場合,プリプロセッサだけで実行しないでください. 例えば,ヘッダが機能することを調査するために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*'を実行しクリーンアップしま す.