変更点は以下の通りです。
- 追加
- --verbose コマンドラインオプションを追加
- --iutest_default_package_name コマンドラインオプションを追加
- operatoer == のないオブジェクトの IUTEST_*_EQ 対応
- operatoer != のないオブジェクトの IUTEST_*_NE 対応
- junit xml 出力に対応(--iutest_output=junit)
- IUTEST_FLAG(ostream_formatter) を追加
- tuple 要素を取得する GetParam tempalate 関数を追加
- ARM対応
- 修正
- --iutest_break_on_failure でスキップや警告でも停止していた不具合を修正
- Visual Studio 14 CTP 3 対応
- バグ修正
今回は追加が多めです。
コマンドラインオプション
コマンドラインオプションが2つ追加されました。1つ目は --verbose オプションで、これを付けるとログ出力が増えます。
具体的には、テスト終了時に SKIP,DISABLED のテストリストが出力されるようになります。
2つ目は --iutest_default_package_name オプションで、これでルートパッケージ名を指定できるようになりました。
具体的には、Jenkins で集計した際に (root) と表示されていたところが変更されます。
指定なし:
--iutest_default_package_name=All:
また、これまで --iutest_output には xml しか指定できませんでしたが、junit が指定できるようになりました。
構造体の比較
struct TestObjectX { int a,b,c; };
IUTEST(AssertionTest, MemCmpEQ) { TestObjectX x={0,1,2}; TestObjectX y={0,1,2}; IUTEST_ASSERT_EQ(x, y); } IUTEST(AssertionTest, MemCmpNE) { TestObjectX x={0,1,2}; TestObjectX y={0,1,3}; IUTEST_ASSERT_NE(x, y); }
比較は memcmp で行います。それ以外の方法での比較が必要な場合は、適宜 operator を定義してください。
ostream formatter
これまでアサーションが出力する数値は10進数でした。ただ、16進数で表示したこともあるだろう、ということで IUTEST_FLAG(ostream_formatter) を追加しました。使い方は、標準ライブラリのストリームと同じように ioマニピュレーター を使った方法や、関数呼び出しでも変更できます。
::iutest::IUTEST_FLAG(ostream_formatter) << ::std::hex; ::iutest::IUTEST_FLAG(ostream_formatter) << ::std::setw(8) << ::std::setfill('0'); ::iutest::IUTEST_FLAG(ostream_formatter) << ::std::setprecision(5);
template 版 GetParam
パラメーターに複数の要素を持たせたい場合、パラメーターの型を tuple にすることで実現できます。しかし、パラメーター取得関数の GetParam はパラメーターの型で返すため、各要素を取り出すには
std::get<1>(GetParam());
のようにする必要がありました。
v1.10.0 ではこの std::get と同じ働きをする template 版の GetParam 関数を用意しました。
以下のように使用します。
class TupleGetTest : public ::iutest::TestWithParam< ::iutest::tuples::tuple<bool, int> > { }; IUTEST_P(TupleGetTest, Test) { IUTEST_ASSERT_TRUE(GetParam<0>()); IUTEST_ASSERT_EQ(10, GetParam<1>()); } IUTEST_INSTANTIATE_TEST_CASE_P(A, TupleGetTest , ::iutest::Values( ::iutest::tuples::tuple<bool, int>(true, 10) ) );
修正
修正および追加点として Visual Studio 14 CTP 3 への対応とプロジェクトを追加しました。対応といっても大した修正はありません。
正式版は 2015年リリースらしいので楽しみです。
最後に
iutest のご意見ご要望があればこちらにお願いします。直接 twitter とかで言っていただいても OK です。
0 件のコメント:
コメントを投稿