Hi,
My setup is more or less correct. When I do
$ BOARD=sodaq-sara-sff make -C tests/evtimer_msg flash term
...
2020-05-26 21:50:39,186 # Are the reception times of all 4 msgs close to
the supposed values?
2020-05-26 21:50:39,187 # At 2361 ms received msg 0: "#2 supposed to
be 2361"
2020-05-26 21:50:39,187 # At 2702 ms received msg 1: "#0 supposed to
be 2701"
2020-05-26 21:50:39,670 # At 3202 ms received msg 2: "#1 supposed to
be 3202"
2020-05-26 21:50:42,116 # At 5656 ms received msg 3: "#3 supposed to
be 5656"
2020-05-26 21:50:42,127 # By now all msgs should have been received
2020-05-26 21:50:42,127 # If yes, the tests were successful
It connects nicely to the /dev/ttyACM0 with all the expected
output.
However, when I make the "test" target it fails to find /dev/ttyACM0
$ BOARD=sodaq-sara-sff make RIOT_CI_BUILD=1 CC_NOCOLOR=1
--no-print-directory -C /home/kees/src/RIOT/tests/evtimer_msg test
r
/home/kees/src/RIOT/dist/tools/pyterm/pyterm -p "/dev/ttyACM0" -b
"115200" --no-reconnect --noprefix --no-repeat-command-on-empty-line
Connect to serial port /dev/ttyACM0
could not open port /dev/ttyACM0: [Errno 2] No such file or directory:
'/dev/ttyACM0'
make[1]: *** [/home/kees/src/RIOT/Makefile.include:726: cleanterm] Error 2
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 166,
in read_nonblocking
s = os.read(self.child_fd, size)
OSError: [Errno 5] Input/output error
In fact, I'm trying to run compile_and_test_for_board.py, but that fails
on the "make test" command.
Is there a timeout value somewhere that needs to be increased?
Alexandre, do you have a suggestion?
Anyone?
Found it.
There is a MAKE_TERM_CONNECT_DELAY that defaults to 0. This is the time
between "make reset" and "make cleanterm".
In my case (and I'm guessing, all boards with Arduino bootloader) you
need a brief delay, for example 2 seconds.
The default of MAKE_TERM_CONNECT_DELAY can be overruled by setting
envvar TESTRUNNER_CONNECT_DELAY.
Hurray, my first successful test
$ TESTRUNNER_CONNECT_DELAY=3
~/src/RIOT/dist/tools/compile_and_test_for_board/compile_and_test_for_board.py
~/src/RIOT sodaq-sara-sff ~/src/RIOT/results --applications
tests/evtimer_msg
INFO:sodaq-sara-sff:Saving toolchain
INFO:sodaq-sara-sff.tests/evtimer_msg:Board supported: True
INFO:sodaq-sara-sff.tests/evtimer_msg:Board has enough memory: True
INFO:sodaq-sara-sff.tests/evtimer_msg:Application has test: True
INFO:sodaq-sara-sff.tests/evtimer_msg:Run compilation
INFO:sodaq-sara-sff.tests/evtimer_msg:Run test
INFO:sodaq-sara-sff.tests/evtimer_msg:Run test.flash
INFO:sodaq-sara-sff.tests/evtimer_msg:Success
INFO:sodaq-sara-sff:Tests successful
Hi,
There's the TESTRUNNER_CONNECT_DELAY environnement variable that can be set for this purpose from the board Makefile.include file.
This is normally used for any samd21 based board with an Arduino bootloader. Maybe increase the TERM_DELAY variable from the command line or in the Makefile.include here [1].
Alex
[1] https://github.com/RIOT-OS/RIOT/blob/master/boards/common/samd21-arduino-bootloader/Makefile.include#L27
Ok, I replied in the meantime 
Good to know that you solved your issue!
I was wondering why TERM_DELAY is only defined if
ifeq ($(PROGRAMMER),bossa)
...
ifneq (,$(filter reset flash flash-only, $(MAKECMDGOALS)))
...
TERM_DELAY ?= 2
Because now we have to set an envvar to do a "make test"