123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /* ==========================================
- Unity Project - A Test Framework for C
- Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
- [Released under MIT License. Please refer to license.txt for details]
- ========================================== */
- #include <setjmp.h>
- #include <stdio.h>
- #include "unity.h"
- void putcharSpy(int c) { (void)putchar(c);} // include passthrough for linking tests
- #define TEST_CASE(...)
- #define EXPECT_ABORT_BEGIN \
- if (TEST_PROTECT()) \
- {
- #define VERIFY_FAILS_END \
- } \
- Unity.CurrentTestFailed = (Unity.CurrentTestFailed != 0) ? 0 : 1; \
- if (Unity.CurrentTestFailed == 1) { \
- SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
- UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
- UNITY_OUTPUT_CHAR(':'); \
- UnityPrint(Unity.CurrentTestName); \
- UnityPrint(":FAIL: [[[[ Test Should Have Failed But Did Not ]]]]"); \
- UNITY_OUTPUT_CHAR('\n'); \
- }
- #define VERIFY_IGNORES_END \
- } \
- Unity.CurrentTestFailed = (Unity.CurrentTestIgnored != 0) ? 0 : 1; \
- Unity.CurrentTestIgnored = 0; \
- if (Unity.CurrentTestFailed == 1) { \
- SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
- UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
- UNITY_OUTPUT_CHAR(':'); \
- UnityPrint(Unity.CurrentTestName); \
- UnityPrint(":FAIL: [[[[ Test Should Have Ignored But Did Not ]]]]"); \
- UNITY_OUTPUT_CHAR('\n'); \
- }
- int SetToOneToFailInTearDown;
- int SetToOneMeanWeAlreadyCheckedThisGuy;
- void setUp(void)
- {
- SetToOneToFailInTearDown = 0;
- SetToOneMeanWeAlreadyCheckedThisGuy = 0;
- }
- void tearDown(void)
- {
- if (SetToOneToFailInTearDown == 1)
- TEST_FAIL_MESSAGE("<= Failed in tearDown");
- if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
- {
- UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
- UNITY_OUTPUT_CHAR('\n');
- }
- }
- TEST_CASE(0)
- TEST_CASE(44)
- TEST_CASE((90)+9)
- void test_TheseShouldAllPass(int Num)
- {
- TEST_ASSERT_TRUE(Num < 100);
- }
- TEST_CASE(3)
- TEST_CASE(77)
- TEST_CASE( (99) + 1 - (1))
- void test_TheseShouldAllFail(int Num)
- {
- EXPECT_ABORT_BEGIN
- TEST_ASSERT_TRUE(Num > 100);
- VERIFY_FAILS_END
- }
- TEST_CASE(1)
- TEST_CASE(44)
- TEST_CASE(99)
- TEST_CASE(98)
- void test_TheseAreEveryOther(int Num)
- {
- if (Num & 1)
- {
- EXPECT_ABORT_BEGIN
- TEST_ASSERT_TRUE(Num > 100);
- VERIFY_FAILS_END
- }
- else
- {
- TEST_ASSERT_TRUE(Num < 100);
- }
- }
- void test_NormalPassesStillWork(void)
- {
- TEST_ASSERT_TRUE(1);
- }
- void test_NormalFailsStillWork(void)
- {
- EXPECT_ABORT_BEGIN
- TEST_ASSERT_TRUE(0);
- VERIFY_FAILS_END
- }
|