Mbed環境を使用してCppUTestを動かした時の備忘メモ。基板はSTMicroelectronics社のNucleo F401REを使用した。
準備
Mbed環境を使用するにはラインセンス登録をする必要がある。ライセンス登録~プログラムの作成は下記を参考にした。
以降、リンク先で示されているLチカのプログラムが作成された後の作業を記載する。
CppUTestライブラリのインポート
Mbed環境にポート済のCppUTestライブラリがあるため、今回はそれを使用した。
プログラムワークスペースにあるNucleo_blink_ledを選択した状態で[インポート]を選択する。[ライブラリ]タブを選択し、検索ウィンドウに「cpputest」と入力する。
同じ作者でCpputest-mebed-portとcpputestの2つのライブラリが表示されるが、違いがわからなかった。
Mbedの公式ページでは、cpputestの方が紹介されていた(Do I need CppUTest port for Mbed SDK?の項参照)ので、今回はこちらをインポートする。
動作確認
main.cppを下記のように変更する。
#include "CppUTest/CommandLineTestRunner.h"
TEST_GROUP(FirstTestGroup) {};
TEST(FirstTestGroup, FirstTest) {
FAIL("Fail me!");
}
int main(int ac, char** av) {
return CommandLineTestRunner::RunAllTests(ac, av);
}
ビルドしたところ、下記のようなエラーが出た。
Error: Undefined symbol console (referred from ../../build/cpputest/src/Platforms/armcc/UtestPlatform.NUCLEO_F401RE.o).
cpputestライブラリのページを確認したところ、テストレポートをコンソール出力するには、UtestPlatform.cppを変更する必要があるかも、との記述有。
コンソール出力するには、console
の定義をする必要があるため、main.cppにSerial console(SERIAL_TX, SERIAL_RX);
と、mbed.hのインクルードを追加する。
ビルドが通った。あとは、バイナリをデバイスに保存すると、TeraTermなどで出力を確認できる。