Common header needed by generated stubs

This commit is contained in:
2021-12-30 22:23:14 +01:00
parent f09a9997ba
commit 4e40b1043c
2 changed files with 150 additions and 0 deletions

33
resources/header/stub.h Normal file
View File

@@ -0,0 +1,33 @@
/*!
* @file
* @brief General definitions for stubs
*
* Project:
* Subsystem:
* Module: unit_tests
* Code: GNU-C
*
* @date 06.07.2016
* @author Martin Winkler
*/
#ifndef STUB_H_
#define STUB_H_
/*!
* @name Stub run definitions
* Definitions if a stub call should be a PASS or FAIL
* @{*/
#define STUB_CALL_FAIL 0
#define STUB_CALL_PASS 1
/*!@}*/
/*! @brief How to handle pointer parameter */
typedef enum _STUB_PARAMETER_POINTER_HANDLING_T
{
STUB_PARAMETER_POINTER_HANDLING_ADDRESS, /*!< @brief Compare addresses */
STUB_PARAMETER_POINTER_HANDLING_CONTENT, /*!< @brief Compare content byte wise at given address */
STUB_PARAMETER_POINTER_HANDLING_INJECT, /*!< @brief Use init. parameter to inject values to test subject */
STUB_PARAMETER_POINTER_HANDLING_LAST_ENUM
} stub_parameter_pointer_handling_t;
#endif /* STUB_H_ */

117
resources/header/xasserts.h Normal file
View File

@@ -0,0 +1,117 @@
/*!
* @file xasserts.h
* @brief Extended asserts for use with CUnit
* @details
* Project:
* Subsystem:
* Module:
* Code: GNU-C
*
* @date 08.03.2017
* @author Martin Winkler
*/
#ifndef XASSERTS_H_
#define XASSERTS_H_
#include "CUnit/TestRun.h"
/*!
* @brief Assert a failed test with variable name and value
* @param Msg Custom string displayed before variable
* @param Name Name of the variable to display
* @param Format printf format string for variable (e.g. "%u", "0x%.2X", ...)
*/
#define CU_FAIL_OUTPUT(Msg,Name,Format)\
{\
char aErrMsg[255];\
sprintf(aErrMsg, "CU_FAIL_OUTPUT - %s%s: "Format, Msg ,#Name, Name);\
CU_assertImplementation(CU_FALSE, __LINE__, aErrMsg, __FILE__, "", CU_FALSE);\
}
/*!
* @brief Assert a failed test only with variable value and custom text
* @param Msg Custom string displayed before variable
* @param Name Name of the variable to display
* @param Format printf format string for variable (e.g. "%u", "0x%.2X", ...)
*/
#define CU_FAIL_OUTPUT_LESS(Msg,Name,Format)\
{\
char aErrMsg[255];\
sprintf(aErrMsg, "CU_FAIL_OUTPUT - %s"Format, Msg, Name);\
CU_assertImplementation(CU_FALSE, __LINE__, aErrMsg, __FILE__, "", CU_FALSE);\
}
/*!
* @brief Compare inputs and output actual value in error message
* @attention Do NOT place function calls as parameter actual, as it will be executed twice
*/
#define CU_ASSERT_EQUAL_OUTPUT(actual, expected, format)\
{\
char aErrMsg[255];\
sprintf(aErrMsg, ("CU_ASSERT_EQUAL(" #actual "," #expected ") "format), actual);\
CU_assertImplementation(((actual) == (expected)), __LINE__, aErrMsg, __FILE__, "", CU_FALSE);\
}
/*!
* @brief Assert definition of macro for array check.
* @param pData Pointer on test data
* @param pExpected_data Pointer on expected test data
* @param u32Size Amount of array elements
*
* Macro checks if all array members in the array range defined by parameter size are equal.
* If not an error message is generated.
*/
#define CU_ASSERT_ARRAY_CHECK(Name, pData, pExpected_data, u32Size)\
{\
uint8_t bError = 0;\
uint32_t u32MemCnt;\
char aErrMsg[255];\
for (u32MemCnt = 0; u32MemCnt < u32Size; u32MemCnt++)\
{\
if (*(pData + u32MemCnt) != *(pExpected_data + u32MemCnt))\
{\
bError = 1;\
sprintf(aErrMsg, "CU_ASSERT_ARRAY_CHECK - %s[%d], act: 0x%.2X, exp: 0x%.2X", \
Name, u32MemCnt, *(pData + u32MemCnt), *(pExpected_data + u32MemCnt));\
CU_assertImplementation(CU_FALSE, __LINE__, aErrMsg, __FILE__, "", CU_FALSE);\
break;\
}\
}\
if (0 == bError)\
{\
CU_ASSERT(1);\
}\
}
/*!
* @brief Assert definition of macro for memory check.
* @param pData Pointer on test data
* @param pExpected_data Pointer on expected test data
* @param u32Size Memory size in bytes
*
* Macro checks if all bytes in the memory range defined by parameter size are equal.
* If not an error message is generated.
*/
#define CU_ASSERT_MEMORY_CHECK(Name, pData, pExpected_data, u32Size)\
{\
uint8_t bError = 0;\
uint32_t u32MemCnt;\
char aErrMsg[255];\
for (u32MemCnt = 0; u32MemCnt < u32Size; u32MemCnt++)\
{\
if (*((uint8_t*)pData + u32MemCnt) != *((uint8_t*)pExpected_data + u32MemCnt))\
{\
bError = 1;\
sprintf(aErrMsg, "CU_ASSERT_MEMORY_CHECK - %s, Offset: %d, act: 0x%.2X, exp: 0x%.2X", \
Name, u32MemCnt, *((uint8_t*)pData + u32MemCnt), *((uint8_t*)pExpected_data + u32MemCnt));\
CU_assertImplementation(CU_FALSE, __LINE__, aErrMsg, __FILE__, "", CU_FALSE);\
break;\
}\
}\
if (0 == bError)\
{\
CU_ASSERT(1);\
}\
}
#endif /* XASSERTS_H_ */