This will use the make test-input-hash-changed feature to save
the test hashes with the results and optionally skip running
the test if nothing has changed.
Murdock already has this feature but it is not easily accessible.
This should prevent unneeded flash cycles as well as speeding up
constant rerunning of tests for boards.
Since we have a no-test flag that prevents executing tests, I think
a no-compile flag is a nice compliment. Why? Well if I want to use
this script for running multiple boards at the same time, RIOT is
not so great handling parallel compile steps with conflicts on
lockfiles happening, mostly due to packages. With this I can
compile a list of boards sequentially, then flash and run tests
in parallel, skipping the compile step.
Pylint raises an error because of inconsistent return statements in the make_with_outfile function. The return value of this function is never used, so a bare return or no return is ok
Not all operating systems name the GNU Make `make`. FreeBSD e.g. uses a
different dialect of Make, that seems to be incompatible with GNU make.
(I wasn't able to get `make` run, but `gmake` works).
This allows our test scripts to be configured via the environment
variable `MAKE` to point to a different make command.
This allow configuring the flash targets in the same way as the
compilation and test targets.
This is part of trying to flash with docker using a different flash target.
Add an option to only compile applications that have available test.
The target usage is when running hardware tests to save time by only
compiling what will be tested.
Remove the check that directory are git tracked or not.
This should not be done by the script and was a mistake.
If need be to be checked it should be moved to RIOT 'info-applications'
and running tests should be done in a clean environment anyway.
Currently giving an absolute or outside of RIOT application breaks the
result directory evaluation which can lead to deleting the application.
Add an assertion to detect it.
Use the new 'test/available' target to detect if there are tests.
This prevents issues where calling make would print unrelated debug
messages that would be taken as an output.
The targets executed to check if there are tests can be set with
'--test-available-targets'.
Update the help message in the docstring.
It should reflect the content of `--help`.
I replaced the manual line wrapping by disabling the warning on the
docstring.