mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2026-01-23 00:15:58 +01:00
- restored examples to working condition
- restored makefiles to working condition - updated files to include copyright notice - fixed bug in string array comparisons - ignored tests no longer run teardown - tests failing for uncaught cexceptions now get exception id reported git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@70 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
This commit is contained in:
@@ -3,19 +3,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static char message[1024];
|
||||
|
||||
void AssertFloatArrayWithin(const float tolerance, const float* expected, const float* actual, const unsigned int length, const unsigned short line)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
sprintf(message, "Array mismatch at index %u, Expected %f, Actual %f, Tolerance %f, Delta %f", i, expected[i], actual[i], tolerance, (expected[i]-actual[i]));
|
||||
UNITY_TEST_ASSERT_WITHIN_FLOAT(tolerance, expected[i], actual[i], line, message);
|
||||
}
|
||||
}
|
||||
|
||||
void AssertEqualExampleStruct(const EXAMPLE_STRUCT_T expected, const EXAMPLE_STRUCT_T actual, const unsigned short line)
|
||||
{
|
||||
UNITY_TEST_ASSERT_EQUAL_INT(expected.x, actual.x, line, "Example Struct Failed For Field x");
|
||||
|
||||
@@ -3,13 +3,10 @@
|
||||
|
||||
#include "Types.h"
|
||||
|
||||
void AssertFloatArrayWithin(const float tolerance, const float* expected, const float* actual, const unsigned int length, const unsigned short line);
|
||||
void AssertEqualExampleStruct(const EXAMPLE_STRUCT_T expected, const EXAMPLE_STRUCT_T actual, const unsigned short line);
|
||||
|
||||
#define UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN(tolerance, expected, actual, length, line, message) AssertFloatArrayWithin(tolerance, expected, actual, length, line);
|
||||
#define UNITY_TEST_ASSERT_EQUAL_EXAMPLE_STRUCT_T(expected, actual, line, message) AssertEqualExampleStruct(expected, actual, line);
|
||||
|
||||
#define TEST_ASSERT_FLOAT_ARRAY_WITHIN(tolerance, expected, actual, length) UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN(tolerance, expected, actual, __LINE__, NULL);
|
||||
#define TEST_ASSERT_EQUAL_EXAMPLE_STRUCT_T(expected, actual) UNITY_TEST_ASSERT_EQUAL_EXAMPLE_STRUCT_T(expected, actual, __LINE__, NULL);
|
||||
|
||||
#endif // _TESTHELPER_H
|
||||
|
||||
@@ -31,8 +31,8 @@ compiler:
|
||||
items:
|
||||
- [*tools_root, 'arm\inc\']
|
||||
- 'src\'
|
||||
- '../src/'
|
||||
- *unit_tests_path
|
||||
- 'vendor\unity\src\'
|
||||
defines:
|
||||
prefix: '-D'
|
||||
items:
|
||||
|
||||
@@ -30,9 +30,8 @@ compiler:
|
||||
items:
|
||||
- [*tools_root, 'arm\inc\']
|
||||
- 'src\'
|
||||
- '../src/'
|
||||
- *unit_tests_path
|
||||
- 'vendor\unity\src\'
|
||||
- 'iar\iar_v5\incIAR\'
|
||||
defines:
|
||||
prefix: '-D'
|
||||
items:
|
||||
|
||||
40
examples/makefile
Normal file
40
examples/makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
# ==========================================
|
||||
# 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]
|
||||
# ==========================================
|
||||
|
||||
C_COMPILER=gcc
|
||||
TARGET_BASE1=test1
|
||||
TARGET_BASE2=test2
|
||||
ifeq ($(OS),Windows_NT)
|
||||
TARGET_EXTENSION=.exe
|
||||
else
|
||||
TARGET_EXTENSION=.out
|
||||
endif
|
||||
TARGET1 = $(TARGET_BASE1)$(TARGET_EXTENSION)
|
||||
TARGET2 = $(TARGET_BASE2)$(TARGET_EXTENSION)
|
||||
SRC_FILES1=../src/unity.c src/ProductionCode.c test/TestProductionCode.c test/no_ruby/TestProductionCode_Runner.c
|
||||
SRC_FILES2=../src/unity.c src/ProductionCode2.c test/TestProductionCode2.c test/no_ruby/TestProductionCode2_Runner.c
|
||||
INC_DIRS=-Isrc -I../src
|
||||
SYMBOLS=-DTEST
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
CLEANUP = del /F /Q build\* && del /F /Q $(TARGET1) && del /F /Q $(TARGET2)
|
||||
else
|
||||
CLEANUP = rm -f build/*.o ; rm -f $(TARGET1) ; rm -f $(TARGET2)
|
||||
endif
|
||||
|
||||
all: clean default
|
||||
|
||||
default:
|
||||
# ruby auto/generate_test_runner.rb test/TestProductionCode.c test/no_ruby/TestProductionCode_Runner.c
|
||||
# ruby auto/generate_test_runner.rb test/TestProductionCode2.c test/no_ruby/TestProductionCode2_Runner.c
|
||||
$(C_COMPILER) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1)
|
||||
$(C_COMPILER) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES2) -o $(TARGET2)
|
||||
$(TARGET1)
|
||||
$(TARGET2)
|
||||
|
||||
clean:
|
||||
$(CLEANUP)
|
||||
|
||||
18
examples/readme.txt
Normal file
18
examples/readme.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
Example Project
|
||||
|
||||
This example project gives an example of some passing, ignored, and failing tests.
|
||||
It's simple and meant for you to look over and get an idea for what all of this stuff does.
|
||||
|
||||
You can build and test using the makefile if you have gcc installed (you may need to tweak
|
||||
the locations of some tools in the makefile). Otherwise, the rake version will let you
|
||||
test with gcc or a couple versions of IAR. You can tweak the yaml files to get those versions
|
||||
running.
|
||||
|
||||
Ruby is required if you're using the rake version (obviously). This version shows off most of
|
||||
Unity's advanced features (automatically creating test runners, fancy summaries, etc.)
|
||||
|
||||
The makefile version doesn't require anything outside of your normal build tools, but won't do the
|
||||
extras for you. So that you can test right away, we've written the test runners for you and
|
||||
put them in the test\no_ruby subdirectory. If you make changes to the tests or source, you might
|
||||
need to update these (like when you add or remove tests). Do that for a while and you'll learn
|
||||
why you really want to start using the Ruby tools.
|
||||
@@ -5,4 +5,5 @@ char* ThisFunctionHasNotBeenTested(int Poor, char* LittleFunction)
|
||||
{
|
||||
//Since There Are No Tests Yet, This Function Could Be Empty For All We Know.
|
||||
// Which isn't terribly useful... but at least we put in a TEST_IGNORE so we won't forget
|
||||
return (char*)0;
|
||||
}
|
||||
|
||||
46
examples/test/no_ruby/TestProductionCode2_Runner.c
Normal file
46
examples/test/no_ruby/TestProductionCode2_Runner.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
||||
#include "unity.h"
|
||||
#include <setjmp.h>
|
||||
#include <stdio.h>
|
||||
|
||||
char MessageBuffer[50];
|
||||
|
||||
extern void setUp(void);
|
||||
extern void tearDown(void);
|
||||
|
||||
extern void test_IgnoredTest(void);
|
||||
extern void test_AnotherIgnoredTest(void);
|
||||
extern void test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented(void);
|
||||
|
||||
static void runTest(UnityTestFunction test)
|
||||
{
|
||||
if (TEST_PROTECT())
|
||||
{
|
||||
setUp();
|
||||
test();
|
||||
}
|
||||
if (TEST_PROTECT() && !TEST_IS_IGNORED)
|
||||
{
|
||||
tearDown();
|
||||
}
|
||||
}
|
||||
void resetTest()
|
||||
{
|
||||
tearDown();
|
||||
setUp();
|
||||
}
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Unity.TestFile = "test/TestProductionCode2.c";
|
||||
UnityBegin();
|
||||
|
||||
// RUN_TEST calls runTest
|
||||
RUN_TEST(test_IgnoredTest, 13);
|
||||
RUN_TEST(test_AnotherIgnoredTest, 18);
|
||||
RUN_TEST(test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented, 23);
|
||||
|
||||
UnityEnd();
|
||||
return 0;
|
||||
}
|
||||
50
examples/test/no_ruby/TestProductionCode_Runner.c
Normal file
50
examples/test/no_ruby/TestProductionCode_Runner.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/* AUTOGENERATED FILE. DO NOT EDIT. */
|
||||
#include "unity.h"
|
||||
#include <setjmp.h>
|
||||
#include <stdio.h>
|
||||
|
||||
char MessageBuffer[50];
|
||||
|
||||
extern void setUp(void);
|
||||
extern void tearDown(void);
|
||||
|
||||
extern void test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode(void);
|
||||
extern void test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken(void);
|
||||
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue(void);
|
||||
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain(void);
|
||||
extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed(void);
|
||||
|
||||
static void runTest(UnityTestFunction test)
|
||||
{
|
||||
if (TEST_PROTECT())
|
||||
{
|
||||
setUp();
|
||||
test();
|
||||
}
|
||||
if (TEST_PROTECT() && !TEST_IS_IGNORED)
|
||||
{
|
||||
tearDown();
|
||||
}
|
||||
}
|
||||
void resetTest()
|
||||
{
|
||||
tearDown();
|
||||
setUp();
|
||||
}
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Unity.TestFile = "test/TestProductionCode.c";
|
||||
UnityBegin();
|
||||
|
||||
// RUN_TEST calls runTest
|
||||
RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode, 20);
|
||||
RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken, 30);
|
||||
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue, 41);
|
||||
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain, 51);
|
||||
RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed, 57);
|
||||
|
||||
UnityEnd();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user