Be more pedantic in expected output for shell commands.
For slow boards, `ws430-v1_3b/arduino-mega2560/msba2`, some commands
were sent before the output of the previous command.
Newlib-nano does not seem to support hexadecimal floats or the %a
specifier. What is even weirder, it reports a successful conversion
anyways.
Tests for these two cases have been commented out.
Update the 'code' section detection to also work on kinetis.
The boards using 'cortexm.ld' have the code section starting with
'.text'. For the 'cpu/kinetis/kinetis.ls' the first section is '.vector'.
Update the 'awk' matching pattern to correctly detect the kinetis boards.
It is a dependency to allow testing upcoming offset support with kinetis.
I am not 100% sure about the pattern for awk.
With `newlib-nano` and other smaller `libc`s the output of floats does
not work with `printf()`. Since minmea uses floating point operations
I used `fmt` instead.
The Arduino Leonardo requires - like the other ATmega based Arduinos - a
different frequency than the default 1000000, as this frequency cannot be
achieved on a 16MHz ATmega with any available prescaler.
When `ds18_read` returns -2506, DS18 test print `Temperature [ºC]: -25.-6`
whereas it should print `Temperature [ºC]: -25.06. This commit fixes this
issue.
Previously, there was a very tight allowed margin (100us), then some
special cases for platforms for which the test would otherwise fail,
increasing the margin.
This turned out to be a maintanance burden, as each slightly special
board needed a PR adding the special case.
This commit sets a quite large margin (1000us, 0.1% of total delay),
which should be large enough to not trip over platform-induced timer
inaccuracies, but still verify that the module is using timers
correctly.
(This is not a timer accuracy test.)
`tests/gnrc_udp` was specifically introduced for testing the release
specs. All of them ask the tester to check the packet buffer after the
test. So it makes sense to include the module that allows for that per
default for this test so the tester does not forget to include it ;-).
The hifive1 has only 16kB of memory. The tests tries to allocate 12
thread stacks with 1kB (default) stacksize each. The corresponding
malloc() fails for the last two threads, making the test fail silently.
Set a delay of three seconds at the beginning of the test. Otherwise,
the node will send a neighbour solicitation with a blank link local
address, it won't receive a reply, and the test will fail.
This patch is a reduced version of an earlier one, with the bare minimum
required to be able to run the test and get the release going.
Original description:
atoi() cannot detect errors. Many implementation return zero on error
and that is what was being checked here, making the "udp send" command
unable to parse integer values of zero. On top of this, the behavior on
errors does not seem to be specified in the standard (so it is not even
correct to check for zero even when zero is not an accepted value, like
for a port number).
The result of all this is that sending UDP packets of zero length (as
required by the Release Specs) was not possible.
This patch replaces atoi by strlen, which allows for robust error detection.
Sending zero length packets is possible.
Also remove binding of the DNS server to 2001:db8::1. It causes
`dnsmasq` to send router advertisements from that address, which is
not a [valid source for RAs][RFC 4861], so a default route is never
configured on the RIOT to reach the DNS server.
[RFC 4861]: https://tools.ietf.org/html/rfc4861#section-6.1.2
This allows querying the build system if there are test available.
Before, one should rely on 'info-debug-variable-TESTS' to print the list
of test files. But was not reliable as sometime the build system printed
messages anyway.
BOARD=esp32-wroom-32 make --silent --no-print-directory \
-C examples/hello-world/ info-debug-variable-TESTS
ESP32_SDK_DIR should be defined as /path/to/esp-idf directory
ESP32_SDK_DIR is set by default to /opt/esp/esp-idf
# empty line here
Now the return code can be trusted.
This commit adds a README.md to the testing folder.
It explains the basic about how to run a test with testrunner.
It adds a reference so it will be displayed on the doxygen docs.
There currently is not obvious documentation for running tests.
If the memory is exhausted during the allocation of the new `head` structure, subsequent accesses to `head` will result in dereferencing of a NULL pointer.
Update the test as sem_timedwait is not supposed to return before the
given abstime.
Source: http://pubs.opengroup.org/onlinepubs/9699919799.2016edition/functions/sem_timedwait.html
The timeout shall expire when the absolute time specified by abstime
passes, as measured by the clock on which timeouts are based (that is,
when the value of that clock equals or exceeds abstime), or if the
absolute time specified by abstime has already been passed at the time
of the call.
The build system contains several instances of
INCLUDES += -I$(RIOTBASE)/sys/posix/include
This is bypassing the module management system, by directly accesing
headers without depending on a module. The module is the posix module.
That line is also added when one of the posix_* modules is requested.
According to the docs, the posix module provides headers only, but in
reality there is also inet.c.
This patch:
- Moves `inet.c` into `posix_inet`, leaving `posix` as a headers-only
module.
- Rename `posix` as `posix_headers` to make it clear the module only
includes headers.
- Makes `posix_*` modules depend on `posix_headers`, thus removing the
explicit `INCLUDES+=...` in `sys/Makefile.include`.
- Ocurrences of `INCLUDES+=...` are replaced by an explicit dependency
on `posix_headers`.
Added arduino-nano to BOARD_INSUFFICIENT_MEMORY/BOARD_BLACKLIST following suit
of how arduino-uno is marked, as arduino-nano is mostly an Uno in a different
form factor.
Test motor_driver API by making 2 motors turn clockwise and
counter-clockwise alternatively.
Speed varies from 0 to max PWM duty cycle.
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
FLASHFILE is now a generated file when doing `make all`.
This prepares also for when flashers will use `FLASHFILE` as a file to
be flashed.
It currently still needs the hack below for openocd and edbg.
This also fixes the issue when building 'riotboot' in docker that was
being built with the host toolchain.
Even if using `%f` the `printf_float` module was not used.
When running the test on `samr21-xpro` and `arduino-mega2560` the float
is not printed correctly.
* samr21-xpro ` false positive rate.`
* arduino-mega2560 `? false positive rate.`
As the arduino-mega2560 does not handle printf_float use
`fmt/print_float`.
The output should be flushed before using fmt/print functions if
available as they do not use `printf` buffer.
When running the test on `arduino-mega2560` printing the float failed
and was printed as ` ?`.
Calculated ? bits of entropy from 10000 samples.
Replace using `printf` floating point printing by using `fmt/print_float`.
Now the test succeeds on `arduino-mega2560`.
As `print_float` does not buffer and is used with `printf` the output
should be flushed before calling it if `fflush` is available.
cpp check is reporting the following error
error (shiftTooManyBitsSigned):
Shifting signed 32-bit value by 31 bits is undefined behaviour
Fix by ensuring the `1` is an `uint32_t` before shifting.