投稿

3月, 2024の投稿を表示しています

CUnit@単体テストはじめ

CUnit@単体テストはじめ はじめに 自作kernel作るにあたってDebug機能が欲しくなり。 snprintfが必要となり。 やっぱlibc欲しいなとlibcを作り始め(newlib使ってもよかったんだけど、自作楽しいので)。 snprintfを作ったのだが、これ動くのか?と。 単純に作業量2倍になるので、趣味でテスト系は避けてきたのだけど、やっぱ避けて通れないよねテスト。 というわけで、CUnit使うか・・・の備忘録。 ライブラリインストール sudo apt-get install libcunit1-dev テスト対象コード例(target.c) int target_func ( void ) { return 5 ; } テストコード例 # include <CUnit/CUnit.h> # include <CUnit/Basic.h> # include "target.c" void test_func_1 ( void ) { ret = target_func ( ) ; CU_ASSERT_EQUAL ( ret , 5 ) ; } int main ( void ) { CU_pSuite suite ; /* テストレジストリ初期化 */ CU_initialize_registry ( ) ; /* テストスイート追加 */ suite = CU_add_suite ( "TestSuite" , NULL , NULL ) ; /* テスト追加 */ CU_add_test ( suite , "test1" , test_func_1 ) ; /* テスト実行 */ CU_basic_set_mode ( CU_BRM_VERBOSE ) ; CU_basic_run_tests ( ) ; /* テストレジストリ削除 */ CU_cleanum_registry ( ) ; return 0