mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-10-17 04:19:16 +08:00
- updated unity test runner generator to support parameterized tests optionally.
- updated docs to better discuss generator options. git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@104 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
This commit is contained in:
99
test/testparameterized.c
Normal file
99
test/testparameterized.c
Normal file
@ -0,0 +1,99 @@
|
||||
/* ==========================================
|
||||
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 "unity.h"
|
||||
|
||||
#define EXPECT_ABORT_BEGIN \
|
||||
if (TEST_PROTECT()) \
|
||||
{
|
||||
|
||||
#define VERIFY_FAILS_END \
|
||||
} \
|
||||
Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \
|
||||
if (Unity.CurrentTestFailed == 1) { \
|
||||
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
||||
UnityPrint("[[[[ Previous Test Should Have Failed But Did Not ]]]]"); \
|
||||
UNITY_OUTPUT_CHAR('\n'); \
|
||||
}
|
||||
|
||||
#define VERIFY_IGNORES_END \
|
||||
} \
|
||||
Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \
|
||||
Unity.CurrentTestIgnored = 0; \
|
||||
if (Unity.CurrentTestFailed == 1) { \
|
||||
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
||||
UnityPrint("[[[[ Previous 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("[[[[ Previous Test Should Have Passed But Did Not ]]]]");
|
||||
UNITY_OUTPUT_CHAR('\n');
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE(0)
|
||||
TEST_CASE(44)
|
||||
TEST_CASE(99)
|
||||
void test_TheseShouldAllPass(int Num)
|
||||
{
|
||||
TEST_ASSERT_TRUE(Num < 100);
|
||||
}
|
||||
|
||||
TEST_CASE(3)
|
||||
TEST_CASE(77)
|
||||
TEST_CASE(99)
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user