When enabling the command line option the file name added to the runner
did not escape the slashes on windows in the same way other paths where
sanitized. Copied the sanitization from the other filename uses.
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>.
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.
* Added python3 shebang
* Renamed the script `unity_to_junit.py` as `stylize_as_junit.py`
to match the Ruby file
* Fixed a bug on where the script failed if the first entry slot of
each result line is empty. Now falls back to the result file name
* Rewrote the argument parsing to use argparse
* Added a `--output` / `-o` option, to match the Ruby file
Before this change a single range such as TEST_RANGE([5, 100, 5]) would
generate the following error:
undefined method `flatten' for 5:Integer (NoMethodError)
The problem is that reduce called on an array with a single element
returns that element which isn't an array of arrays as expected by the
following block.
The regex to match function names for the test parameterization used the
wildcard '.*'. This lead to an error when you try to add a function
pointer as arguement.
The regex will now only match the word characters a-z A-Z 0-9 and
underscore (which are all characers that are accepted by the C standard)
This commit change the regex to accept more spaces inside the brackets
of the TEST_RANGE().
I use clang-format through vscode "editor.formatOnSave": true feature and it produce
padding spaces inside the array brackets by default.
```c
int a[] = [1, 2];
```
is changed into
```c
int a[] = [ 1, 2 ];
```
Also, every time I save a file containing a TEST_RANGE() with ctrl + s,
it breaks it.
With a test file guarded we can include this file on IDE project
(MPLAB X in my case) and compile without excluding test files.
Excluding test files on MPLAB X disable autocompletion and function
navigation.
Compiling a source base / test with Wsign-compare enabled, gives
the following warning:
build/test/runners/test_system_runner.c: In function ‘run_test’:
build/test/runners/test_system_runner.c:62:35: warning: conversion to ‘UNITY_UINT’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion]
62 | Unity.CurrentTestLineNumber = line_num;
| ^~~~~~~~
Fix by updating the type in the function declaration.
Signed-off-by: André Draszik <git@andred.net>
TEST_RANGE([start, stop, step]) generates following runs of the test
function: test(start), test(start + step), ..., test(start + n * step),
where start + n * step <= stop. The step must be positive.
If the test function takes several arguments, the following syntax must be used:
TEST_RANGE([arg1_start, arg1_stop, arg1_step], ..., [argN_start, argN_stop, argN_step])
This addresses issues #53 and #144.
Reported-by: Alex Rodriguez <alejmrm@gmail.com>
Reported-by: Hiroaki Yamazoe <PastelParasol@gmail.com>