void test_ThrowAnErrorThenEnterATryBlockFromWithinCatch_VerifyThatEachExceptionIdIndependent(void) { CEXCEPTION_T e1, e2; Try { HappyExceptionThrower(0xBF); TEST_FAIL_MESSAGE("Should Have Thrown Exception"); } Catch(e1) { TEST_ASSERT_EQUAL(0xBF, e1); Try { HappyExceptionThrower(0x12); } Catch(e2) { TEST_ASSERT_EQUAL(0x12, e2); } TEST_ASSERT_EQUAL(0x12, e2); TEST_ASSERT_EQUAL(0xBF, e1); } TEST_ASSERT_EQUAL(0x12, e2); TEST_ASSERT_EQUAL(0xBF, e1); }
void test_CanHaveMultipleTryBlocksInASingleFunction(void) { CEXCEPTION_T e; Try { HappyExceptionThrower(0x01); TEST_FAIL_MESSAGE("Should Have Thrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0x01, e); } Try { HappyExceptionThrower(0xF0); TEST_FAIL_MESSAGE("Should Have Thrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0xF0, e); } }
void test_CanHaveMultipleTryBlocksInASingleFunction(void) { CEXCEPTION_T e; Try { HappyExceptionThrower(0x01234567); TEST_FAIL("Should Have Thrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0x01234567, e); } Try { HappyExceptionThrower(0xF00D8888); TEST_FAIL("Should Have Thrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0xF00D8888, e); } }
void test_ThrowAnErrorThenEnterATryBlockFromWithinCatch_VerifyThisDoesntCorruptExceptionId(void) { CEXCEPTION_T e; Try { HappyExceptionThrower(0xBF); TEST_FAIL_MESSAGE("Should Have Thrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0xBF, e); HappyExceptionRethrower(0x12); TEST_ASSERT_EQUAL(0xBF, e); } TEST_ASSERT_EQUAL(0xBF, e); }
void test_ThrowFromASubFunctionAndCatchInRootFunc(void) { volatile unsigned int ID = 0; CEXCEPTION_T e; Try { HappyExceptionThrower(0xBA); TEST_FAIL_MESSAGE("Should Have Thrown An Exception"); } Catch(e) { ID = e; } //verify that I can pass that value to something else TEST_ASSERT_EQUAL(0xBA, e); }
void test_CanHaveNestedTryBlocksInASingleFunction_ThrowOutside(void) { int i = 0; CEXCEPTION_T e; Try { Try { i = 2; } Catch(e) { TEST_FAIL_MESSAGE("Should NotBe Caught Here"); } HappyExceptionThrower(0x01); TEST_FAIL_MESSAGE("Should Have Rethrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0x01, e); } }
void test_CanHaveNestedTryBlocksInASingleFunction_ThrowInside(void) { int i = 0; CEXCEPTION_T e; Try { Try { HappyExceptionThrower(0x01); i = 1; TEST_FAIL_MESSAGE("Should Have Rethrown Exception"); } Catch(e) { TEST_ASSERT_EQUAL(0x01, e); } } Catch(e) { TEST_FAIL_MESSAGE("Should Have Been Caught By Inside Catch"); } }