#!/bin/sh
UNITTEST_MAIN_H=src/unittest_main.h
UNITTEST_MAIN_C=src/unittest_main.c
# 登録関数
REGIST_FUNCS=`grep UT_regist_* src/ut_*.c | sed "s/.*UT_regist_\(.*\)\s*(\s*void\s*).*/UT_regist_\1/"`
# ======================================================================
# ヘッダファイル出力
# ======================================================================
cat <<EOF > ${UNITTEST_MAIN_H}
#ifndef __UNITTEST_MAIN_H__
#define __UNITTEST_MAIN_H__
EOF
for f in ${REGIST_FUNCS}; do
echo "void ${f}(void);" >> ${UNITTEST_MAIN_H}
done
cat <<EOF >> ${UNITTEST_MAIN_H}
#endif /* __UNITTEST_MAIN_H__ */
EOF
# ======================================================================
# ソースファイル出力
# ======================================================================
cat <<EOF > ${UNITTEST_MAIN_C}
#include <sc_unittest.h>
#include "unittest_main.h"
/**
* 単体テスト実行。
*
* @param argc 引数の数 (未使用)
* @param argv コマンド引数 (未使用)
*/
int main(int argc, char* argv[])
{
EOF
for f in ${REGIST_FUNCS}; do
echo " ${f}();" >> ${UNITTEST_MAIN_C}
done
cat <<EOF >> ${UNITTEST_MAIN_C}
SC_Unittest_run();
return 0;
}
EOF