本当は先にテストを用意するんかな。とりあえずは UnitTest の話ではなく、実行ファイルのテスト。
ずっと Makefile は手書き派だったので、こんな感じで書いてた。
test: $(TARGET) $(TARGET) --verbose -o testout testin
で
> make test
まあ、単純。autotols 使っても Makefile.am の一番下にでも書いておけばまあ動く。難点はテストデータがソースディレクトリにも置かれること。
check ターゲットを利用してみる
てことで、お作法通りに check ターゲットを利用できるようにしてみる。
http://sources.redhat.com/automake/automake.html#Tests をみてみたのだけれど、なんで pl とか py なのってことで、試行錯誤。
一番シンプルに書いたつもり。プログラムは shtml を読んで html に出力する。
ディレクトリ構成は書いてあるとおり tests としてそこに Makefile.am を作る。で、TESTS にテスト用のファイルを書く。
TESTS = index.shtml example/index.shtml
テスト環境として、作成されたプログラム、テスト用の引数を指定する。
TESTS_ENVIRONMENT = ../source/xxx --verbose --loglevel 0 --logfile $${tst/.shtml/.log} -o $${tst/.shtml/.html}
あとは make check でテストを行う。プログラムの戻り値で PASS FAIL が出てくれる。
パッケージに含める部分とかは省略。