Skip to content

Commit

Permalink
unity: add option to enable 64-bit formatting support
Browse files Browse the repository at this point in the history
This option is not enabled by default because many existing tests
use integer assertions to check the pointers:

   TEST_ASSERT_EQUAL(NULL, pointer)

This causes a "cast from pointer to integer of different size"
(-Wpointer-to-int-cast) warning to be generated, as Unity converts
every argument to UNITY_UINT first, and with 64-bit support enabled,
UNITY_UINT becomes a 64-bit unsigned type.
  • Loading branch information
igrr committed May 10, 2021
1 parent fae335d commit 71f7119
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
8 changes: 8 additions & 0 deletions components/unity/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@ menu "Unity unit testing library"
help
If not set, assertions on double arguments will not be available.

config UNITY_ENABLE_64BIT
bool "Support for 64-bit integer types"
default n
help
If not set, assertions on 64-bit integer types will always fail.
If this feature is enabled, take care not to pass pointers (which are 32 bit)
to UNITY_ASSERT_EQUAL, as that will cause pointer-to-int-cast warnings.

config UNITY_ENABLE_COLOR
bool "Colorize test output"
default n
Expand Down
5 changes: 4 additions & 1 deletion components/unity/include/unity_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@
#define UNITY_EXCLUDE_DOUBLE
#endif //CONFIG_UNITY_ENABLE_DOUBLE

#ifdef CONFIG_UNITY_ENABLE_64BIT
#define UNITY_SUPPORT_64
#endif

#ifdef CONFIG_UNITY_ENABLE_COLOR
#define UNITY_OUTPUT_COLOR
#endif

#define UNITY_EXCLUDE_TIME_H


void unity_flush(void);
void unity_putc(int c);
void unity_gets(char* dst, size_t len);
Expand Down

0 comments on commit 71f7119

Please sign in to comment.