void runTestCase(void* item, void* extraData) { TestCase testCase = (TestCase)item; TestSuite testSuite = (TestSuite)extraData; int result; if(!testSuite->onlyPrintFailing) { printTestName(testCase->name); } if(testCase->testCaseFunc != NULL) { if(testSuite->setup != NULL) { testSuite->setup(); } result = testCase->testCaseFunc(); if(result == 0) { if(!testSuite->onlyPrintFailing) { printTestSuccess(); } testSuite->numSuccess++; } else { printTestFail(); testSuite->numFail++; } if(testSuite->teardown != NULL) { testSuite->teardown(); } } else { if(!testSuite->onlyPrintFailing) { _printTestSkipped(); } testSuite->numSkips++; } }
void testTaskEntry(UINT32 u32TaskMemBytes, UINT32 u32TaskStartAddress, UINT32 u32MaxIters) { UINT32 u32MemSplit = u32TaskMemBytes / 2; UINT32 *pu32Chank1 = (UINT32 *) u32TaskStartAddress; UINT32 *pu32Chank2 = (UINT32 *) ((UINT32) u32TaskStartAddress + u32MemSplit); UINT32 u32Count = u32MemSplit / sizeof(UINT32); UINT32 u32Iter = 0; UINT8 u8TestCount, i, rc, *u8Test = &u8TestCount; for (u32Iter = 0, *u8Test = 1; ++u32Iter, u32Iter <= u32MaxIters; *u8Test = 1) { /* Do basic tests (taking two pointers plus count) here. */ for (i = 0;; i++) { if (testsNoArg[i].name != NULL) { printTestName(testsNoArg[i].name, u8Test); rc = testsNoArg[i].fp(pu32Chank1, pu32Chank2, u32Count); if (!rc) printf("Passed.\n"); else runerrors++; } else break; } printf("Run %4lu completed " " (%lu tests showed errors).\n", (long unsigned int)u32Iter, (long unsigned int)runerrors); totalerrors += runerrors; runerrors = 0; } }