This Coccinelle script will warn when new code has the potential to use
the macro ARRAYSIZE instead of something like this
sizeof(some_array) / sizeof(some_array[0])
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.
Handle putting the final error message by prepending the output.
This removes issue with errors being concatenated and gives an
interractive output.
The errors are now send to stderr.
The example in the tool documentation contains several things that are
wrong:
- exports PORT.
- Defines the port using :=.
- Defines PORT instead of PORT_LINUX, PORT_DARWIN
- ifeq-based logic (which will force an evaluation).
I have not tested the new example script.
Handle differently variables that are exported in `vars.inc.mk` from the
ones that should not.
This is needed for the upcoming variables change that should also be
removed from `vars.inc.mk` right now.
Keeping the old behavior will help migrating other variables more easily
by keeping them only exported in vars.inc.mk in the first time.
Some boards have a configuration of the flash bank with an address of 0
when it actually starts as 0x08000000 but openocd relies on probing
the hardware at runtime.
This now allows to first probe the board to get the actual value.
If probing fail for any reason, return the value from the configuration.
This can happen when the board is unreachable so at least give a valid
output instead of an error.
This will allow correct flash detection on for example the `stm32f3` and
`stm32l4` which have a configured address of 0.
4a6f93c961/tcl/target/stm32f3x.cfg (L64)4a6f93c961/tcl/target/stm32l4x.cfg (L51)
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.
Check that some variables are not exported in the build system.
This should track variables that managed to not be exported anymore so
that they do not reappear in a BSP.
It is not a whitelist but just a way to keep things cleaned in the
future.
Otherwise, when an error occurs (e.g. credentials wrong on git push)
the worktree and the release branch still exists, which might be hard to
remove for a newcomer not knowing about `git worktree`.
On error Jlink exits with a no error code by default.
From the JLink User Guide:
'-ExitOnError' has the same meaning as the 'exitonerror' command
'exitonerror' command
This command toggles whether J-Link Commander exits on error or not.
1: J-Link Commander will now exit on Error.
0: J-Link Commander will no longer exit on Error.
Executing 'flash/reset' without a board connected now correctly returns an
error. For 'term' it does not show an error due to the way it is handled
internally.
It also returns an error when the board fails to do an operation when it
is in a state where it cannot be flashed for example.
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'.
The lastest version of edbg solves a double-reset issue that was
hindering testing (see #11125 and https://github.com/ataradov/edbg/issues/77)
It also adds support for SAMR34 and SAMR35, needed by @dylad for MCU
port.
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.
This script provides functionality to easily backport a merged pull request to
a release branch.
It relies of having a `github` API token stored in `~/.riotgithubtoken` by
default.
The script works by fetching information from the supplied **merged** pull
request. It then looks for the last release branch.
A temporary git `worktree` with a new branch is created based on this release
branch. All commits from the pull request are then cherry-picked into this
branch which is then pushed to `origin`.
It then creates a new pull request on `github` with a reference to the original
pull request. It optionally puts a comment under the original pull request to
the new backport pull request.
Co-authored-by: Gaëtan Harter <gaetan.harter@fu-berlin.de>
Python3 has been the default in our scripts for some time now, but pyterm still
requested python which uses python2 on ubuntu stable.
This pushes toward only needing to install `python3` python
dependencies.
If the flake8 executable is not found, the static test script reports
the tool as missing. It may happen that the flake8 module is installed,
but the console entry point is not.
In the flake8 shell script, flake is invoked via `python -m`. The result
is a confusing error message where static-test reports the tools as missing,
yet the flake8 tests are run.
This patch makes the toolchain version script use the same command as the
flake8 script.
Detect command line tool versions without using "command".
Command may be a builting in some shells, leading to unportability.
The new version uses the status code to correctly detect a non-existent
command. This allows it to differentiate between error in the tool and
not-found errors.
It also works with compound commands, for example `python -m callable_module".
In order to use the RIOT bootloader (riotboot) a header needs to
be created and placed before the firmware. This tool generates
such a header with the expected information by the bootloader.
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
Get FLASH_FILE and ELFFILE from command line instead of environment variable.
The documentation was claiming ELFFILE was given as a command line argument
already, but is was not.
Get BINFILE and ELFFILE from command line instead of environment variable.
Rename 'HEXFILE' to 'BINFILE' in the script as the binary file is used.
The documentation was already talking about 'BINFILE' but 'BINFILE'
was never exported by the build system and it was using 'HEXFILE' in the
implementation.
The previous doccheck would give a false negative when doxygen does
not even run (for example, because of misconfiguration).
Also, when doxygen fails to run, print the full output.
Add a script to execute sanity checks on build system files.
It should prevent bad patterns to re-appear after being cleaned.
Currently adds a check for using the content of `FEATURES` instead of
`USEMODULE`.
Modules should not check the content of FEATURES_PROVIDED/_REQUIRED/OPTIONAL
Handling specific behaviors/dependencies should by checking the content of:
* `USEMODULE`
* maybe `FEATURES_USED` if it is not a module (== not a periph_)
https://stackoverflow.com/a/24276470
In replacement strings used with the s command, assume that NO
control-character escape sequences are supported (ex '\n')
Replace with an escaped newline character. Current form works in 'bash'.
https://stackoverflow.com/a/24276470
Labels and branching commands (e.g., b) must be followed by an actual
newline or continuation via a separate -e option.