- make local functions / variables static
- adhere to the 80 column limit
- don't increment total if head could not be allocated
- allow to overwrite CHUNK_SIZE
A naive implementation may set a RTC alarm in 30s by calling
struct tm now;
rtc_get_time(&now);
now.tm_sec += 30;
rtc_set_alarm(&now, _cb, NULL);
This works for RTC implementations that use a RTT internally and call
mktime() to convert the struct tm to a unix timestamp, as mktime() will
normalize the struct in the process.
Call rtc_tm_normalize() when the RTC uses separate registers for time / date
components to ensure it is normalized.
This also modifies tests/periph_rtc to exercise this case.
The default channel configuration is managed within the Makefiles of many
examples and tests. This commit moves the default channel logic to
`makefiles/default-channel.ink.mk` to ease maintenance. All Makefiles that
previously managed the default channel configuration themself have been
updated to include that file.
The default channel configuration of the cc110x has been added
The test randomly fails on `native` due to timers being not accurate but
it cannot be otherwise. So better disable it than raising fake errors.
...
151 diff=3
150 diff=4
149 diff=3539
148 diff=4
147 diff=3
....
min/max error: 1/3539
too large difference.
Test Failed.
Timeout in expect script at "child.expect_exact("Test complete.")"
(tests/xtimer_periodic_wakeup/tests/01-run.py:22)
The test randomly fails on `native` due to timers being not accurate but
it cannot be otherwise. So better disable it than raising fake errors.
main(): This is RIOT! (Version: buildtest)
Testing generic evtimer
This should list 2 items
ev #1 offset=1000
ev #2 offset=500
This should list 4 items
ev #1 offset=659
ev #2 offset=341
ev #3 offset=500
ev #4 offset=2454
Are the reception times of all 4 msgs close to the supposed values?
At 662 ms received msg 0: "#2 supposed to be 659"
At 1009 ms received msg 1: "#0 supposed to be 1000"
At 1511 ms received msg 2: "#1 supposed to be 1500"
Traceback (most recent call last):
File "/tmp/dwq.0.3125418833043728/ef3af88c4b3615788b164464a437df5c/tests/evtimer_msg/tests/01-run.py", line 33, in <module>
sys.exit(run(testfunc))
File "/tmp/dwq.0.3125418833043728/ef3af88c4b3615788b164464a437df5c/dist/pythonlibs/testrunner/__init__.py", line 29, in run
testfunc(child)
File "/tmp/dwq.0.3125418833043728/ef3af88c4b3615788b164464a437df5c/tests/evtimer_msg/tests/01-run.py", line 26, in testfunc
assert(actual in range(expected - ACCEPTED_ERROR, expected + ACCEPTED_ERROR))
AssertionError
The warning issued when the PID and VID are set to the default values should
not be printed on `make clean` and other targets, only with `make all` and it
should be a proper target.
To do: replace shell echos with proper $(warning ..) calls.
Add make only function to convert strings to lowercase and uppercase.
This can replace the `$(shell echo $(var) | tr 'a-z-' 'A-Z_')` pattern.
Using the 'make' implementation results in being around 100 times faster.
Check the interaction with a board through make term.
It is using a shell without echo or prompt for reference.
It currently checks that there is no local echo.
Rename TMP006 to TMP00x
Add TMP007 sensor support to TMP00X
Change uint8_t reg to uint16_t
Add to doxygen documentation group
Expose compile time configurations
Move defines from .c to .h
Change double to float, because double is not needed
Add TMP007 register information
This moves 'unittests/tests-cpp_ctors' to its own test.
It prevents requiring 'cpp' in the 'unittests' that forced almost all
architectures to link the unittests with `g++`.
It also removes the need to have disabled tests for architectures.
Some boards were actually not big enough to compile unittests.
But were hidden by the 'cpp' missing feature.
Blacklist boards that were disabled for cpp test even though they
provide the 'cpp' feature.
* use names with RFC
* add terminating comma
* remove newlines between tests values
This prepares for the format of the next commit adding all RFC tests.
This will reduce the number of changes in upcoming commit.
The test assumes that 'printf/puts' are non interruptible operations.
Use a mutex to guarantee it.
Without this, the automated test was failing in some configurations with
lines being cut by others.
Reduce the amount of tested values by a 100.
This makes the testing time go from 3 minutes to 2 seconds on
`frdm-kw41z`.
Testing that the integer calculation matches the float one does not need
to be performed on the full range on boards. Checking some values should
be enough to detect overflow issues.
The full range checking is kept on native.
The test fails on both murdock and on my machine due to the process
exiting directly.
pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
HACK, the test currently fails in CI for `native` due to `utf-8` handling.
HACK, the test implementation can fail due being de-scheduled during printf.
The test application provides:
- RIOT's basic network utilities such as `ping6`
- A custom `cc110x` shell command that can be used print the low level device
and driver state. This is mostly useful for debugging.
- Removed cc110x driver
- Updated all makefiles
- Kept both board specific configurations and support for it in RIOT's
upper layers, so re-implementations don't need to start from zero
Python dictionaries are not guaranteed to be ordered until version
3.7. In 3.6 they are ordered too, but that is an implementation
detail. riotdocker seems to be using 3.5.
As it stands now, it would not be a problem if the test commands
are run in a random order, except that:
- It would result in non-reproduceable tests.
- It hinders testing other functionality, such as exiting the shell.
For test scripts, a terminal that does not modify the input and output
streams, configured without local echo, is preferred as it ensures the
test setup is introducing as little noise as possible.
Use test_utils_interactive_sync for synchronizing some case treat
the output before `reset` as the start of the test,
which fails for some boards/configurations.
Remove unconditionally setting 'BOARD' to an hardwritten value.
The definition must be moved before including 'Makefile.tests_common' as
it defines 'BOARD ?= native'.
Changes the test so that EVENT_QUEUE_INIT_DETACHED is used for the initialization of detached event queue. Without this change, a compilation problem was not recognized for ESP8266, MSP430 and MIPS.
Previously this was not tested and excepted KERNEL_PID_UNDEF == 0 as
legal value for received `gnrc_netif_hdr`s (which except for the
loopback interface is wrong)
The evtimer_msg test is expanded to also delete entries.
Furthermore the messages that are printed should now show
numbers that are very close (if not equal). Something like
this:
At 740 ms received msg 0: "#2 supposed to be 740"
At 1081 ms received msg 1: "#0 supposed to be 1081"
At 1581 ms received msg 2: "#1 supposed to be 1581"
At 4035 ms received msg 3: "#3 supposed to be 4035"
The function evtimer_print is also called to show the
intermediate status of evtimer entries.
The mips-malta board is a maintainance burden, has no working UART input
and is unobtainable and thus must be removed.
1. Unobtainable board
=====================
The mips-malta board is not an off-the-shelf part. A quick web
search only show the MIPS website where one is told to "contact sales".
I could find it on ebay, used, at €155 and from single seller.
Not having access to the board means:
a. We cannot maintain it. In fact it could be broken right now.
b. Potential RIOT uses have not access to the board either. In other
words, it is pointless to run on hardware nobody has.
2. No working UART input
========================
Not all applications need UART input, but that is no excuse for not supporting
it:
a. Makes development & debugging way harder.
b. It is impossible to run interactive tests.
b.1. Constrains the rest of the platforms by providing an incentive to not
make tests interactive.
c. The lack of UART is a witness to the poor quality of the port.
I want to stress point (c). If something as basic as a serial port cannot work,
how can we expect more complex fucntionality to work. The answer is impossible
to know, because of point (1).
3. Maintainance burden
======================
The RIOT project has limited time and human resources which can be better spent.
a. Compiling for mips-malta wastes CPU time.
b. Blacklisting the board in the test wastes contributor's time.
c. Adapting the board's makefile during build system rework takes time and makes
the reworks harder.
c.1. Add to that that the changes are most of the time not even tested on the board
because of (1). Look at the github issues/PRs and you will see it.
d. Developers usually stick to the lowest common denominator. Issue (2) sets this
denominator unacceptably low.
MIPS platform in general
========================
In commits I will address general issues in the MIPS platform and why it should all
be removed.