Donald Meyers / Mbed OS evan
Committer:
djmeyers
Date:
Sat Mar 18 22:37:16 2017 +0000
Revision:
0:06ee5f8a484a
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djmeyers 0:06ee5f8a484a 1 /* ==========================================
djmeyers 0:06ee5f8a484a 2 Unity Project - A Test Framework for C
djmeyers 0:06ee5f8a484a 3 Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
djmeyers 0:06ee5f8a484a 4 [Released under MIT License. Please refer to license.txt for details]
djmeyers 0:06ee5f8a484a 5 ========================================== */
djmeyers 0:06ee5f8a484a 6
djmeyers 0:06ee5f8a484a 7 #include <setjmp.h>
djmeyers 0:06ee5f8a484a 8 #include <stdio.h>
djmeyers 0:06ee5f8a484a 9 #include "unity.h"
djmeyers 0:06ee5f8a484a 10
djmeyers 0:06ee5f8a484a 11 void putcharSpy(int c) { (void)putchar(c);} // include passthrough for linking tests
djmeyers 0:06ee5f8a484a 12
djmeyers 0:06ee5f8a484a 13 #define TEST_CASE(...)
djmeyers 0:06ee5f8a484a 14
djmeyers 0:06ee5f8a484a 15 #define EXPECT_ABORT_BEGIN \
djmeyers 0:06ee5f8a484a 16 if (TEST_PROTECT()) \
djmeyers 0:06ee5f8a484a 17 {
djmeyers 0:06ee5f8a484a 18
djmeyers 0:06ee5f8a484a 19 #define VERIFY_FAILS_END \
djmeyers 0:06ee5f8a484a 20 } \
djmeyers 0:06ee5f8a484a 21 Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \
djmeyers 0:06ee5f8a484a 22 if (Unity.CurrentTestFailed == 1) { \
djmeyers 0:06ee5f8a484a 23 SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
djmeyers 0:06ee5f8a484a 24 UnityPrint("[[[[ Previous Test Should Have Failed But Did Not ]]]]"); \
djmeyers 0:06ee5f8a484a 25 UNITY_OUTPUT_CHAR('\n'); \
djmeyers 0:06ee5f8a484a 26 }
djmeyers 0:06ee5f8a484a 27
djmeyers 0:06ee5f8a484a 28 #define VERIFY_IGNORES_END \
djmeyers 0:06ee5f8a484a 29 } \
djmeyers 0:06ee5f8a484a 30 Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \
djmeyers 0:06ee5f8a484a 31 Unity.CurrentTestIgnored = 0; \
djmeyers 0:06ee5f8a484a 32 if (Unity.CurrentTestFailed == 1) { \
djmeyers 0:06ee5f8a484a 33 SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
djmeyers 0:06ee5f8a484a 34 UnityPrint("[[[[ Previous Test Should Have Ignored But Did Not ]]]]"); \
djmeyers 0:06ee5f8a484a 35 UNITY_OUTPUT_CHAR('\n'); \
djmeyers 0:06ee5f8a484a 36 }
djmeyers 0:06ee5f8a484a 37
djmeyers 0:06ee5f8a484a 38 int SetToOneToFailInTearDown;
djmeyers 0:06ee5f8a484a 39 int SetToOneMeanWeAlreadyCheckedThisGuy;
djmeyers 0:06ee5f8a484a 40
djmeyers 0:06ee5f8a484a 41 void setUp(void)
djmeyers 0:06ee5f8a484a 42 {
djmeyers 0:06ee5f8a484a 43 SetToOneToFailInTearDown = 0;
djmeyers 0:06ee5f8a484a 44 SetToOneMeanWeAlreadyCheckedThisGuy = 0;
djmeyers 0:06ee5f8a484a 45 }
djmeyers 0:06ee5f8a484a 46
djmeyers 0:06ee5f8a484a 47 void tearDown(void)
djmeyers 0:06ee5f8a484a 48 {
djmeyers 0:06ee5f8a484a 49 if (SetToOneToFailInTearDown == 1)
djmeyers 0:06ee5f8a484a 50 TEST_FAIL_MESSAGE("<= Failed in tearDown");
djmeyers 0:06ee5f8a484a 51 if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
djmeyers 0:06ee5f8a484a 52 {
djmeyers 0:06ee5f8a484a 53 UnityPrint("[[[[ Previous Test Should Have Passed But Did Not ]]]]");
djmeyers 0:06ee5f8a484a 54 UNITY_OUTPUT_CHAR('\n');
djmeyers 0:06ee5f8a484a 55 }
djmeyers 0:06ee5f8a484a 56 }
djmeyers 0:06ee5f8a484a 57
djmeyers 0:06ee5f8a484a 58 TEST_CASE(0)
djmeyers 0:06ee5f8a484a 59 TEST_CASE(44)
djmeyers 0:06ee5f8a484a 60 TEST_CASE((90)+9)
djmeyers 0:06ee5f8a484a 61 void test_TheseShouldAllPass(int Num)
djmeyers 0:06ee5f8a484a 62 {
djmeyers 0:06ee5f8a484a 63 TEST_ASSERT_TRUE(Num < 100);
djmeyers 0:06ee5f8a484a 64 }
djmeyers 0:06ee5f8a484a 65
djmeyers 0:06ee5f8a484a 66 TEST_CASE(3)
djmeyers 0:06ee5f8a484a 67 TEST_CASE(77)
djmeyers 0:06ee5f8a484a 68 TEST_CASE( (99) + 1 - (1))
djmeyers 0:06ee5f8a484a 69 void test_TheseShouldAllFail(int Num)
djmeyers 0:06ee5f8a484a 70 {
djmeyers 0:06ee5f8a484a 71 EXPECT_ABORT_BEGIN
djmeyers 0:06ee5f8a484a 72 TEST_ASSERT_TRUE(Num > 100);
djmeyers 0:06ee5f8a484a 73 VERIFY_FAILS_END
djmeyers 0:06ee5f8a484a 74 }
djmeyers 0:06ee5f8a484a 75
djmeyers 0:06ee5f8a484a 76 TEST_CASE(1)
djmeyers 0:06ee5f8a484a 77 TEST_CASE(44)
djmeyers 0:06ee5f8a484a 78 TEST_CASE(99)
djmeyers 0:06ee5f8a484a 79 TEST_CASE(98)
djmeyers 0:06ee5f8a484a 80 void test_TheseAreEveryOther(int Num)
djmeyers 0:06ee5f8a484a 81 {
djmeyers 0:06ee5f8a484a 82 if (Num & 1)
djmeyers 0:06ee5f8a484a 83 {
djmeyers 0:06ee5f8a484a 84 EXPECT_ABORT_BEGIN
djmeyers 0:06ee5f8a484a 85 TEST_ASSERT_TRUE(Num > 100);
djmeyers 0:06ee5f8a484a 86 VERIFY_FAILS_END
djmeyers 0:06ee5f8a484a 87 }
djmeyers 0:06ee5f8a484a 88 else
djmeyers 0:06ee5f8a484a 89 {
djmeyers 0:06ee5f8a484a 90 TEST_ASSERT_TRUE(Num < 100);
djmeyers 0:06ee5f8a484a 91 }
djmeyers 0:06ee5f8a484a 92 }
djmeyers 0:06ee5f8a484a 93
djmeyers 0:06ee5f8a484a 94 void test_NormalPassesStillWork(void)
djmeyers 0:06ee5f8a484a 95 {
djmeyers 0:06ee5f8a484a 96 TEST_ASSERT_TRUE(1);
djmeyers 0:06ee5f8a484a 97 }
djmeyers 0:06ee5f8a484a 98
djmeyers 0:06ee5f8a484a 99 void test_NormalFailsStillWork(void)
djmeyers 0:06ee5f8a484a 100 {
djmeyers 0:06ee5f8a484a 101 EXPECT_ABORT_BEGIN
djmeyers 0:06ee5f8a484a 102 TEST_ASSERT_TRUE(0);
djmeyers 0:06ee5f8a484a 103 VERIFY_FAILS_END
djmeyers 0:06ee5f8a484a 104 }