warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
FYI, "-Wcast-qual" is not a default option.
The main idea: If some function receives "const void*"
why should it operate with "void*" (or something) afterwards (after casting)?
support tests named spec as well.
clean up UnityBegin to make us not have to dig inside it to inject the filename.
Add UNITY_OUTPUT_START() and UNITY_OUTPUT_COMPLETE() for future use.
By printing this newline, the filepath of the failing assertion does not get
preceded by the dot which represents a running test.
This gives the advantage, that the complete output of unity can be used as it is
with a makefile in vim. Every error gets displayed in the quickfix and you can
jump appropiately.
Microchip's XC16 and friends, when used with dsPICs, require that all pointers
to memory which could possibly be in EDS space by adorned with __eds__, e.g.
__eds__ int* p_int
Adding the macro UNITY_PTR_ATTRIBUTE allows Unity's pointers to be decorated
with whatever ridiculous attributes the compiler requires.
This patch fixes testEqualIntArrays in the unity test suite on 16-bit
architectures.
TEST_ASSERT_EQUAL_INT_ARRAY calls UnityAssertEqualIntArray with 'style'
set to UNITY_DISPLAY_STYLE_INT.
UNITY_DISPLAY_STYLE_INT is defined as UNITY_DISPLAY_STYLE_AUTO +
UNITY_DISPLAY_STYLE_INT{16,32,64} (depending on the int width).
However, the switch statement in UnityAssertEqualIntArray has special
cases for the width-specific display styles, but these comparisons
are carried out without clearing the UNITY_DISPLAY_STYLE_AUTO flag.
This means that if 'style' is UNITY_DISPLAY_STYLE_INT, and the int
width is, say, 16, bits, the default case will be hit, and elements
compared as if they were 32 bits wide. Unsurprisingly this causes
a failure in the test named above.
The reason that TEST_ASSERT_xyz_WITHIN_MESSAGE() family of functions
doesn't print any message is because is calling a re-use macro from the
TEST_ASSERT_xyz_WITHIN() family of functions. Due this two functions in
unity.h calls the same function from unity_internals.h, the message is
nullified at this point. The issue is fix by passing _message_ arg to
the 4th argument of *UnityAssertNumbersWithin()* function.