EmbeddedUnit
Macros | Functions
AssertImpl.h File Reference
#include <stdImpl.h>
Include dependency graph for AssertImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TEST_ASSERT_EQUAL_STRING(expected, actual)   if (expected && actual && (stdimpl_strcmp(expected,actual)==0)) {} else {assertImplementationCStr(expected,actual,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_MEMORY(expected, actual, size)   if ((expected!=NULL) && (actual!=NULL) && (stdimpl_memcmp(expected,actual,size)==0)) {} else {assertImplementationMem(expected,actual,size,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_INT(expected, actual)   if (expected == actual) {} else {assertImplementationInt(expected,actual, 10,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_UINT(expected, actual)   if (expected == actual) {} else {assertImplementationUInt(expected,actual, 10,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_HEX(expected, actual)   if (expected == actual) {} else {assertImplementationUInt(expected,actual, 16,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_PTR(expected, actual)   if ((void*)expected == (void*)actual) {} else {assertImplementationUInt((int)expected,(int)actual, 16,__LINE__,__FILE__);}
 
#define TEST_ASSERT_EQUAL_INT_WITH_MARGIN(expected, actual, margin)   TEST_ASSERT_EQUAL_WITH_MARGIN(expected,actual,margin)
 
#define TEST_ASSERT_EQUAL_WITH_MARGIN(expected, actual, margin)
 
#define TEST_ASSERT_EQUAL_UINT_WITH_MARGIN(expected, actual, margin)
 
#define TEST_ASSERT_NOT_LOWER_THAN_INT(min, actual)
 
#define TEST_ASSERT_NOT_HIGHER_THAN_INT(max, actual)
 
#define TEST_ASSERT_RANGE_INT(min, max, actual)
 
#define TEST_ASSERT_NOT_LOWER_THAN_UINT(min, actual)
 
#define TEST_ASSERT_NOT_HIGHER_THAN_UINT(max, actual)
 
#define TEST_ASSERT_RANGE_UINT(min, max, actual)
 
#define TEST_ASSERT_NULL(pointer)   TEST_ASSERT_MESSAGE(pointer == NULL,#pointer " was not null.")
 
#define TEST_ASSERT_NOT_NULL(pointer)   TEST_ASSERT_MESSAGE(pointer != NULL,#pointer " was null.")
 
#define TEST_ASSERT_MESSAGE(condition, message)   if (condition) {} else {TEST_FAIL(message);}
 
#define TEST_ASSERT(condition)   if (condition) {} else {TEST_FAIL(#condition);}
 
#define TEST_FAIL(message)   if (0) {} else {addFailure(message,__LINE__,__FILE__);}
 

Functions

void addFailure (const char *msg, unsigned long line, const char *file)
 
void assertImplementationInt (long expected, long actual, unsigned char base, unsigned long line, const char *file)
 
void assertImplementationUInt (unsigned long expected, unsigned long actual, unsigned char base, unsigned long line, const char *file)
 
void assertImplementationCStr (const char *expected, const char *actual, unsigned long line, const char *file)
 
void assertImplementationMem (const void *expected, const void *actual, int size, unsigned long line, const char *file)
 

Detailed Description

COPYRIGHT AND PERMISSION NOTICE

Copyright (c) 2003 Embedded Unit Project

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder.

Definition in file AssertImpl.h.

Macro Definition Documentation

◆ TEST_ASSERT

#define TEST_ASSERT (   condition)    if (condition) {} else {TEST_FAIL(#condition);}

Assert a condition to pass

Parameters
conditionCondition under test

Definition at line 237 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_HEX

#define TEST_ASSERT_EQUAL_HEX (   expected,
  actual 
)    if (expected == actual) {} else {assertImplementationUInt(expected,actual, 16,__LINE__,__FILE__);}

Assert hexadecimal integer equality

Parameters
expectedExpected value
actualActual value

Definition at line 88 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_INT

#define TEST_ASSERT_EQUAL_INT (   expected,
  actual 
)    if (expected == actual) {} else {assertImplementationInt(expected,actual, 10,__LINE__,__FILE__);}

Assert signed integer equality

Parameters
expectedExpected value
actualActual value

Definition at line 72 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_INT_WITH_MARGIN

#define TEST_ASSERT_EQUAL_INT_WITH_MARGIN (   expected,
  actual,
  margin 
)    TEST_ASSERT_EQUAL_WITH_MARGIN(expected,actual,margin)

Assert signed integer equality with margin

Parameters
expectedExpected value
actualActual value
marginAllowed margin to be applied during assertion

Definition at line 105 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_MEMORY

#define TEST_ASSERT_EQUAL_MEMORY (   expected,
  actual,
  size 
)    if ((expected!=NULL) && (actual!=NULL) && (stdimpl_memcmp(expected,actual,size)==0)) {} else {assertImplementationMem(expected,actual,size,__LINE__,__FILE__);}

Assert memory equality

Parameters
expectedExpected value
actualActual value
sizeSize of the memory to compare

Definition at line 64 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_PTR

#define TEST_ASSERT_EQUAL_PTR (   expected,
  actual 
)    if ((void*)expected == (void*)actual) {} else {assertImplementationUInt((int)expected,(int)actual, 16,__LINE__,__FILE__);}

Assert pointer equality

Parameters
expectedExpected poiunter
actualActual pointer

Definition at line 96 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_STRING

#define TEST_ASSERT_EQUAL_STRING (   expected,
  actual 
)    if (expected && actual && (stdimpl_strcmp(expected,actual)==0)) {} else {assertImplementationCStr(expected,actual,__LINE__,__FILE__);}

Assert string equality

Parameters
expectedExpected value
actualActual value

Definition at line 55 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_UINT

#define TEST_ASSERT_EQUAL_UINT (   expected,
  actual 
)    if (expected == actual) {} else {assertImplementationUInt(expected,actual, 10,__LINE__,__FILE__);}

Assert unsigned integer equality

Parameters
expectedExpected value
actualActual value

Definition at line 80 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_UINT_WITH_MARGIN

#define TEST_ASSERT_EQUAL_UINT_WITH_MARGIN (   expected,
  actual,
  margin 
)
Value:
do { \
unsigned long __margin = margin; \
if( expected > actual ) { \
if( (expected - actual) <= __margin ) {} \
else {assertImplementationUInt(expected,actual,10,__LINE__,__FILE__);} \
} \
else { \
if( (actual - expected) <= __margin ) {} \
else {assertImplementationUInt(expected,actual,10,__LINE__,__FILE__);} \
} \
} while(0)
void assertImplementationUInt(unsigned long expected, unsigned long actual, unsigned char base, unsigned long line, const char *file)
Definition: AssertImpl.c:77

Assert unsigned integer equality with margin

Parameters
expectedExpected value
actualActual value
marginAllowed margin to be applied during assertion

Definition at line 134 of file AssertImpl.h.

◆ TEST_ASSERT_EQUAL_WITH_MARGIN

#define TEST_ASSERT_EQUAL_WITH_MARGIN (   expected,
  actual,
  margin 
)
Value:
do { \
long __margin = margin; \
if (margin < 0) __margin = -margin; \
if( expected > actual ) { \
if( (expected - actual) <= __margin ) {} \
else {assertImplementationInt(expected,actual,10,__LINE__,__FILE__);} \
} \
else { \
if( (actual - expected) <= __margin ) {} \
else {assertImplementationInt(expected,actual,10,__LINE__,__FILE__);} \
} \
} while(0)
void assertImplementationInt(long expected, long actual, unsigned char base, unsigned long line, const char *file)
Definition: AssertImpl.c:47

Assert signed integer equality with margin

Parameters
expectedExpected value
actualActual value
marginAllowed margin to be applied during assertion

Definition at line 114 of file AssertImpl.h.

◆ TEST_ASSERT_MESSAGE

#define TEST_ASSERT_MESSAGE (   condition,
  message 
)    if (condition) {} else {TEST_FAIL(message);}

Assert a condition to pass

Parameters
conditionCondition under test
messageMessage to print when assertion fails

Definition at line 230 of file AssertImpl.h.

◆ TEST_ASSERT_NOT_HIGHER_THAN_INT

#define TEST_ASSERT_NOT_HIGHER_THAN_INT (   max,
  actual 
)
Value:
if (actual > max) { \
assertImplementationInt(max, actual, 10, __LINE__, __FILE__); \
}

Assert signed integer to be lower than or equal to a maximum value

Parameters
maxMaximum allowed value
actualActual value

Definition at line 162 of file AssertImpl.h.

◆ TEST_ASSERT_NOT_HIGHER_THAN_UINT

#define TEST_ASSERT_NOT_HIGHER_THAN_UINT (   max,
  actual 
)
Value:
if (actual > max) { \
assertImplementationUInt(max, actual, 10, __LINE__, __FILE__); \
}

Assert unsigned integer to be lower than or equal to a maximum value

Parameters
maxMaximum allowed value
actualActual value

Definition at line 194 of file AssertImpl.h.

◆ TEST_ASSERT_NOT_LOWER_THAN_INT

#define TEST_ASSERT_NOT_LOWER_THAN_INT (   min,
  actual 
)
Value:
if (actual < min) { \
assertImplementationInt(min, actual, 10, __LINE__, __FILE__); \
}

Assert signed integer to be higher than or equal to a minimum value

Parameters
minMinimum allowed value
actualActual value

Definition at line 152 of file AssertImpl.h.

◆ TEST_ASSERT_NOT_LOWER_THAN_UINT

#define TEST_ASSERT_NOT_LOWER_THAN_UINT (   min,
  actual 
)
Value:
if (actual < min) { \
assertImplementationUInt(min, actual, 10, __LINE__, __FILE__); \
}

Assert unsigned integer to be higher than or equal to a minimum value

Parameters
minMinimum allowed value
actualActual value

Definition at line 184 of file AssertImpl.h.

◆ TEST_ASSERT_NOT_NULL

#define TEST_ASSERT_NOT_NULL (   pointer)    TEST_ASSERT_MESSAGE(pointer != NULL,#pointer " was null.")

Assert a pointer to be non-NULL

Parameters
pointerPointer under test

Definition at line 222 of file AssertImpl.h.

◆ TEST_ASSERT_NULL

#define TEST_ASSERT_NULL (   pointer)    TEST_ASSERT_MESSAGE(pointer == NULL,#pointer " was not null.")

Assert a pointer to be NULL

Parameters
pointerPointer under test

Definition at line 215 of file AssertImpl.h.

◆ TEST_ASSERT_RANGE_INT

#define TEST_ASSERT_RANGE_INT (   min,
  max,
  actual 
)
Value:
do { \
TEST_ASSERT_NOT_LOWER_THAN_INT(min, actual)\
TEST_ASSERT_NOT_HIGHER_THAN_INT(max, actual)\
} while(0)

Assert signed integer to be within the range (boundaries are allowed) of given minimum and maximum

Parameters
minMinimum allowed value
maxMaximum allowed value
actualActual value

Definition at line 173 of file AssertImpl.h.

◆ TEST_ASSERT_RANGE_UINT

#define TEST_ASSERT_RANGE_UINT (   min,
  max,
  actual 
)
Value:
do { \
TEST_ASSERT_NOT_LOWER_THAN_UINT(min, actual)\
TEST_ASSERT_NOT_HIGHER_THAN_UINT(max, actual)\
} while(0)

Assert unsigned integer to be within the range (boundaries are allowed) of given minimum and maximum

Parameters
minMinimum allowed value
maxMaximum allowed value
actualActual value

Definition at line 205 of file AssertImpl.h.

◆ TEST_FAIL

#define TEST_FAIL (   message)    if (0) {} else {addFailure(message,__LINE__,__FILE__);}

Mark a test as failed

Parameters
messageMessage to print

Definition at line 244 of file AssertImpl.h.

Function Documentation

◆ assertImplementationCStr()

void assertImplementationCStr ( const char *  expected,
const char *  actual,
unsigned long  line,
const char *  file 
)

Implementation for failing assert for string

The given set of parameters is used to add a failure

Parameters
expectedThe expected string for the assert
actualThe actual string for the assert
lineLine number on which the assertion is done
fileFile name in which the assertion is done

Definition at line 106 of file AssertImpl.c.

◆ assertImplementationInt()

void assertImplementationInt ( long  expected,
long  actual,
unsigned char  base,
unsigned long  line,
const char *  file 
)

Implementation for failing assert for integers

The given set of parameters is used to add a failure

Parameters
expectedThe expected value for the assert
actualThe actual value for the assert
baseThe base in which to print a failure (10 for decimal, 16 for hex)
lineLine number on which the assertion is done
fileFile name in which the assertion is done

Definition at line 47 of file AssertImpl.c.

◆ assertImplementationMem()

void assertImplementationMem ( const void *  exp,
const void *  act,
int  size,
unsigned long  line,
const char *  file 
)

Implementation for failing assert for memory

The given set of parameters is used to add a failure

Parameters
expThe expected memory for the assert
actThe actual memory for the assert
sizeThe size of the memory for the assert
lineLine number on which the assertion is done
fileFile name in which the assertion is done

Definition at line 160 of file AssertImpl.c.

◆ assertImplementationUInt()

void assertImplementationUInt ( unsigned long  expected,
unsigned long  actual,
unsigned char  base,
unsigned long  line,
const char *  file 
)

Implementation for failing assert for unsigned integers

The given set of parameters is used to add a failure

Parameters
expectedThe expected value for the assert
actualThe actual value for the assert
baseThe base in which to print a failure (10 for decimal, 16 for hex)
lineLine number on which the assertion is done
fileFile name in which the assertion is done

Definition at line 77 of file AssertImpl.c.