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)
```
The main project doesn't really have any specific version requirement.
Specify a very low one just in case -- 0.37.0 is old enough to cover
probably any existing use of Meson anywhere in the wild, and
coincidentally is also the version that Meson started adding feature
warnings for, to notify you if you use too-new features.
The example *does* depend on a specific version. It needs 0.55.0 in
order to use subproject wrap dependency fallback instead of the legacy
style of specifying the name of the variable as a fallback. Ensure that
is used.
Tests cannot contain a ":", and configuring the example produced the
following warning:
test/test_runners/meson.build:12: DEPRECATION: ":" is not allowed in test name "Running: 01-test-case", it has been replaced with "_"
test/test_runners/meson.build:13: DEPRECATION: ":" is not allowed in test name "Running: 02-test-case", it has been replaced with "_"
In this case, the "running" part is redundant, so remove it.
On later Rubies calling create_run_test() causes the generation of warnings of the following form:
warning: Passing safe_level with the 2nd argument of ERB.new is deprecated...
warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated...
This patch removes the noise.
YAML.load is now interpreted as YAML.safe_load, which breaks where the
YAML file contains aliases. If we can assume our yaml files are
trusted (since this a development tool), we can check for the presence
of YAML.unsafe_load and use it instead if it exists.