FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

CMakeによりVerilogのビルドを管理するための調査(2. CTestによるテスト追加)

前回までで、どうにかこうにか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()などを使えば比較的容易に記述できる。

うまく使えば、協力なリグレッションツールになるのでは無いだろうか。