#include <sc_unittest.h> #include <sc_error.h> static void UT_SC_setAssertOutput(void); static void UT_SC_setAssertOutput_change(void); static void UT_SC_setAssertOutput_noChange(void); static void UT_SC_clearAssertOutput(void); static void UT_SC_assertAtExit(void); static void UT_SC_assertAtExit_over(void); static void UT_SC_assertAtExitClear(void); void UT_regist_sc_assert(void) { SC_Unittest_add("SC_setAssertOutput" , UT_SC_setAssertOutput); SC_Unittest_add("SC_setAssertOutput_change" , UT_SC_setAssertOutput_change); SC_Unittest_add("SC_setAssertOutput_noChange", UT_SC_setAssertOutput_noChange); SC_Unittest_add("SC_clearAssertOutput" , UT_SC_clearAssertOutput); SC_Unittest_add("SC_assertAtExit" , UT_SC_assertAtExit); SC_Unittest_add("SC_assertAtExit_over" , UT_SC_assertAtExit_over); SC_Unittest_add("SC_assertAtExitClear" , UT_SC_assertAtExitClear); } static void UT_SC_setAssertOutput(void) { SC_clearAssertOutput(); SC_setAssertOutput(stdout); } static void UT_SC_setAssertOutput_change(void) { SC_setAssertOutput(stdout); SC_setAssertOutput(stderr); } static void UT_SC_setAssertOutput_noChange(void) { SC_clearAssertOutput(); SC_setAssertOutput(NULL); } static void UT_SC_clearAssertOutput(void) { SC_clearAssertOutput(); } static void UT_SC_assertDummy(void) {} static void UT_SC_assertAtExit(void) { SC_assertAtExit(UT_SC_assertDummy); } static void UT_SC_assertAtExit_over(void) { int i; bool ret = true; for (i = 0; i < 4096; i++) { ret = SC_assertAtExit(UT_SC_assertDummy); if (!ret) { break; } } SC_assert(i < 4096); } static void UT_SC_assertAtExitClear(void) { /* クリアすると単体テストの終了時表示まで * 消えてしまうのでコメントアウト SC_assertAtExitClear(); */ }