When test binaries are run with unknown options or with the standard
-h option, a help menu will print all available options.
This is much more convenient than having to dig through unity.c to
find every option.
However rare, this update covers real-world use cases where:
- Unity is used to provide the assertion macros only, and an external
test harness/runner is used for test orchestration/reporting.
- Calling longjmp on a given platform is possible, but has a
platform-specific (or implementation-specific) set of prerequisites,
e.g. privileged access level.
Enable project-specific customisation of TEST_PROTECT and TEST_ABORT
macros.
- Use the user-defined UNITY_TEST_ABORT if available; fall back to
default behaviour otherwise.
- Use the user-defined UNITY_TEST_PROTECT if available; fall back to
default behaviour otherwise.
- These may be defined independently.
When a project is consuming unity as as subproject, unity headers,
static library and pkg config files are installed by `meson install`.
This can be fixed by using `meson install --skip-subprojects`, but this
must be repeated in all the distros packaging a project.
Fixed by disabling install when building as a subproject.
Fixes: #661
The following features from the CMake build have been implemented:
* Library version retrieved from unity.h.
* Extension support.
* Library, header, and package configuration file installation.
This commit is entirely based on existing work by Owen Torres.
If the range is <start, end, step> instead of [start, end, step], the
end value will not be included in the range.
This can be useful if you have a define that defines e.g. the size of
something and you want to use this define as the end value. As the
pre-processor doesn't evalutate expressions (unless you do some macro
magic) you can't specify the range as [0, MY_SIZE - 1, 1]. With this
change you can then instead give the range <0, MY_SIZE, 1>.
This change helps Unity parse and print correctly in cases where a long
or long long type is passed to TEST_PRINTF.
Example situations:
```C
// With %u:
TEST_PRINTF("%u %d\n", ((1ULL << 63) - 1), 5); // --> prints 11982546 -1 (both arguments incorrect because only 4 of the 8 bytes were read out of the va_list)
// With %llu, UNITY_SUPPORT_64=0
TEST_PRINTF("%llu %d\n", ((1ULL << 63) - 1), 5); // --> prints 4294967295 5 (first argument wrapped, second argument intact)
// With %llu, UNITY_SUPPORT_64=1
TEST_PRINTF("%llu %d\n", ((1ULL << 63) - 1), 5); // --> prints 9223372036854775807 5 (both arguments correct)
```