void UnityTestRunner(unityfunction * setup, unityTestfunction * body, unityTestfunction * teardown, const char * printableName, const char * group, const char * name, const char * file, int line, struct _Unity * const unity_p) { if (testSelected(name, unity_p) && groupSelected(group, unity_p)) { unity_p->CurrentTestFailed = 0; unity_p->TestFile = file; unity_p->CurrentTestName = printableName; unity_p->CurrentTestLineNumber = line; if (!unity_p->Verbose) UNITY_OUTPUT_CHAR('.'); else UnityPrint(printableName, unity_p); unity_p->NumberOfTests++; #if defined(UNITY_DYNAMIC_MEM_DEBUG) UnityMalloc_StartTest(); #endif #if defined(UNITY_CPP_UNIT_COMPAT) UnityPointer_Init(unity_p); #endif runTestCase(unity_p); /* remember setup has failed - skip teardown if so*/ bool hasSetupFailed = false; if (TEST_PROTECT()) { setup(unity_p); /*DX_PATCH for jumpless version. If setup failed don't perform the test*/ if (!unity_p->CurrentTestFailed) { body(unity_p->testLocalStorage, unity_p); } else { hasSetupFailed = true; } } if (TEST_PROTECT() && !hasSetupFailed ) { teardown(unity_p->testLocalStorage, unity_p); } if (TEST_PROTECT()) { #if defined(UNITY_CPP_UNIT_COMPAT) UnityPointer_UndoAllSets(unity_p); #endif #if defined(UNITY_DYNAMIC_MEM_DEBUG) if (!unity_p->CurrentTestFailed) UnityMalloc_EndTest(unity_p); #endif } UnityConcludeFixtureTest(unity_p); } }
/******************************************************************************/ void tearDown(void) { } ///******************************************************************************/ static void runTest(UnityTestFunction test) { if (TEST_PROTECT()) { setUp(); test(); } if (TEST_PROTECT() && !TEST_IS_IGNORED) { tearDown(); } }
void UnityTestRunner(unityfunction* setup, unityfunction* testBody, unityfunction* teardown, const char* printableName, const char* group, const char* name, const char* file, unsigned int line) { if (testSelected(name) && groupSelected(group)) { Unity.TestFile = file; Unity.CurrentTestName = printableName; Unity.CurrentTestLineNumber = line; if (!UnityFixture.Verbose) UNITY_OUTPUT_CHAR('.'); else { UnityPrint(printableName); #ifndef UNITY_REPEAT_TEST_NAME Unity.CurrentTestName = NULL; #endif } Unity.NumberOfTests++; UnityMalloc_StartTest(); UnityPointer_Init(); UNITY_EXEC_TIME_START(); if (TEST_PROTECT()) { setup(); testBody(); } if (TEST_PROTECT()) { teardown(); } if (TEST_PROTECT()) { UnityPointer_UndoAllSets(); if (!Unity.CurrentTestFailed) UnityMalloc_EndTest(); } UnityConcludeFixtureTest(); } }
void UnityTestRunner(unityfunction* setup, unityfunction* testBody, unityfunction* teardown, const char * printableName, const char * group, const char * name, const char * file, int line) { if (testSelected(name) && groupSelected(group)) { Unity.CurrentTestFailed = 0; Unity.TestFile = file; Unity.CurrentTestName = printableName; Unity.CurrentTestLineNumber = line; if (!UnityFixture.Verbose) UNITY_OUTPUT_CHAR('.'); else UnityPrint(printableName); Unity.NumberOfTests++; UnityMalloc_StartTest(); UnityPointer_Init(); runTestCase(); if (TEST_PROTECT()) { setup(); testBody(); } if (TEST_PROTECT()) { teardown(); } if (TEST_PROTECT()) { UnityPointer_UndoAllSets(); if (!Unity.CurrentTestFailed) UnityMalloc_EndTest(); UnityConcludeFixtureTest(); } else { //aborting - jwg - di i need these for the other TEST_PROTECTS? } } }
void testProtection(void) { volatile int mask = 0; if (TEST_PROTECT()) { mask |= 1; TEST_ABORT(); } else { Unity.CurrentTestFailed = 0; mask |= 2; } TEST_ASSERT_EQUAL(3, mask); }