diff options
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/vendor/c_exception/test/support/CExceptionConfig.h')
-rw-r--r-- | FreeRTOS-Plus/Test/CMock/vendor/c_exception/test/support/CExceptionConfig.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/vendor/c_exception/test/support/CExceptionConfig.h b/FreeRTOS-Plus/Test/CMock/vendor/c_exception/test/support/CExceptionConfig.h new file mode 100644 index 000000000..66cb87e7b --- /dev/null +++ b/FreeRTOS-Plus/Test/CMock/vendor/c_exception/test/support/CExceptionConfig.h @@ -0,0 +1,46 @@ +#ifndef _EXCEPTION_H +#define _EXCEPTION_H + +#include "unity.h" + +extern volatile int TestingTheFallback; +extern volatile int TestingTheFallbackId; + +//Optionally define the exception type (something like an int which can be directly assigned) +#define CEXCEPTION_T int + +// Optionally define the reserved value representing NO EXCEPTION +#define CEXCEPTION_NONE (1234) + +// Optionally define a special handler for unhandled exceptions +#define CEXCEPTION_NO_CATCH_HANDLER(id) \ +{ \ + if (!TestingTheFallback) \ + { \ + TEST_FAIL_MESSAGE("Unexpected Exception!"); \ + } \ + else \ + { \ + TestingTheFallbackId = id; \ + TestingTheFallback--; \ + } \ +} + +// Multi-Tasking environments will need a couple of macros defined to make this library +// properly handle multiple exception stacks. You will need to include and required +// definitions, then define the following macros: +// EXCEPTION_GET_ID - returns the id of the current task indexed 0 to (numtasks - 1) +// EXCEPTION_NUM_ID - returns the number of tasks that might be returned +// +// For example, Quadros might include the following implementation: +#ifndef TEST +#include "OSAPI.h" +#define CEXCEPTION_GET_ID (KS_GetTaskID()) +#define CEXCEPTION_NUM_ID (NTASKS + 1) +#endif + +//This could be a good place to define/include some error ID's: +#define ERROR_ID_EVERYTHING_IS_BROKEN (0x88) +#define ERROR_ID_ONLY_THIS_IS_BROKEN (0x77) + +#endif // _EXCEPTION_H |