前回までで、どうにかこうにかCMakeでVivado Simulatorのビルド環境を構築した。
ここまで出来たら、実はCTestによるテストの追加は容易なのだ。
CMakeLists.txtに以下を追加してみた。
# CTest enable_testing() add_test (NAME basic_test COMMAND /cygdrive/c/Xilinx/Vivado/2015.4/bin/xsim --R top_sim)
今回はxsimのコマンドを追加し、オプション無しだが、引数として追加するか、外部から制御ファイルを与えることで複数のテストも追加できるだろう。 さらに言うならば、今回はテストの成功と失敗の判定をしていないが、スクリプトなどで一回囲んで、ちゃんとPass/Failを出力するようにすべきだろう。
CTestで実行してみる
ここまで出来たら後のリグレッションは非常に単純だ。CTestを実行すれば良い。
$ ctest
Test project /home/masayuki/work/xvlog_test
Start 1: basic_test
1/1 Test #1: basic_test ....................... Passed 2.55 sec
100% tests passed, 0 tests failed out of 1
Total Test time (real) = 2.56 sec
自動的にテストを実行してくれた!あとはCMakeLists.txtに自分の好きなテストを追加すればやり放題だ。
つまり、CMakeとCTestによるテストパタンの管理は、「CMakeLists.txtを使って適切にシミュレータのビルド環境さえ構築できれば」非常に容易であることが分かった。 ビルド環境の構築には、やはりソフトウェアのプロジェクトで無い分複雑性が増すが、それもadd_custom_command()などを使えば比較的容易に記述できる。
うまく使えば、協力なリグレッションツールになるのでは無いだろうか。