From 71f711976dd901c594f8a20cad43f60c3cfa2767 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 7 May 2021 12:39:01 +0200 Subject: [PATCH] unity: add option to enable 64-bit formatting support 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. --- components/unity/Kconfig | 8 ++++++++ components/unity/include/unity_config.h | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/components/unity/Kconfig b/components/unity/Kconfig index 4a8779fc92..72952c1e53 100644 --- a/components/unity/Kconfig +++ b/components/unity/Kconfig @@ -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 diff --git a/components/unity/include/unity_config.h b/components/unity/include/unity_config.h index 8ebd88f293..32f9719008 100644 --- a/components/unity/include/unity_config.h +++ b/components/unity/include/unity_config.h @@ -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);