Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
pal/Test/Unity/test/tests/testparameterized.c@0:06ee5f8a484a, 2017-03-18 (annotated)
- Committer:
- djmeyers
- Date:
- Sat Mar 18 22:37:16 2017 +0000
- Revision:
- 0:06ee5f8a484a
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |