mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2026-09-25 03:27:26 +00:00
Add UNITY_OUTPUT_START/COMPLETE_HEADER_DECLARATION macros (closes #799).
`UNITY_OUTPUT_CHAR` and `UNITY_OUTPUT_FLUSH` already let users provide their own extern prototype via the matching `*_HEADER_DECLARATION` macro (unity_internals.h:333-335 and :349-351). `UNITY_OUTPUT_START` and `UNITY_OUTPUT_COMPLETE` did not — so users wanting to install init / deinit hooks (e.g. serial port open/close, RTT/JTAG bring-up) could override the macro but had no Unity-sanctioned way to declare the function prototype. Add the matching `_HEADER_DECLARATION` triad for both `START` and `COMPLETE`, mirroring the FLUSH pattern verbatim. Add the corresponding commented-out documentation lines to examples/unity_config.h so users discover the new option alongside the existing ones. Purely additive — the new code path only activates when the user defines both `UNITY_OUTPUT_START` (or `_COMPLETE`) AND the matching `*_HEADER_DECLARATION`. Default no-op behaviour is unchanged.
This commit is contained in:
@@ -228,8 +228,10 @@
|
||||
/* #define UNITY_OUTPUT_CHAR_HEADER_DECLARATION RS232_putc(int) */
|
||||
/* #define UNITY_OUTPUT_FLUSH() RS232_flush() */
|
||||
/* #define UNITY_OUTPUT_FLUSH_HEADER_DECLARATION RS232_flush(void) */
|
||||
/* #define UNITY_OUTPUT_START() RS232_config(115200,1,8,0) */
|
||||
/* #define UNITY_OUTPUT_COMPLETE() RS232_close() */
|
||||
/* #define UNITY_OUTPUT_START() RS232_config(115200,1,8,0) */
|
||||
/* #define UNITY_OUTPUT_START_HEADER_DECLARATION RS232_config(int,int,int,int) */
|
||||
/* #define UNITY_OUTPUT_COMPLETE() RS232_close() */
|
||||
/* #define UNITY_OUTPUT_COMPLETE_HEADER_DECLARATION RS232_close(void) */
|
||||
|
||||
/* Some compilers require a custom attribute to be assigned to pointers, like
|
||||
* `near` or `far`. In these cases, you can give Unity a safe default for these
|
||||
|
||||
@@ -363,10 +363,20 @@ typedef UNITY_FLOAT_TYPE UNITY_FLOAT;
|
||||
|
||||
#ifndef UNITY_OUTPUT_START
|
||||
#define UNITY_OUTPUT_START()
|
||||
#else
|
||||
/* If defined as something else, make sure we declare it here so it's ready for use */
|
||||
#ifdef UNITY_OUTPUT_START_HEADER_DECLARATION
|
||||
extern void UNITY_OUTPUT_START_HEADER_DECLARATION;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef UNITY_OUTPUT_COMPLETE
|
||||
#define UNITY_OUTPUT_COMPLETE()
|
||||
#else
|
||||
/* If defined as something else, make sure we declare it here so it's ready for use */
|
||||
#ifdef UNITY_OUTPUT_COMPLETE_HEADER_DECLARATION
|
||||
extern void UNITY_OUTPUT_COMPLETE_HEADER_DECLARATION;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef UNITY_INCLUDE_EXEC_TIME
|
||||
|
||||
Reference in New Issue
Block a user