chronos is indirectly blacklisted because of missing periph_uart feature. hamilton doesn't provide periph_uart when stdio_rtt is disabled (because of ethos dependency to stdio_uart) and ruuvitag/thingy52 provide the periph_uart feature so stdio_uart can work on these boards.
Test description
The entire GNRC TCP test consists of several test cases. Each test is ran via its own python script in the tests directory.
-
01-conn_lifecycle_as_client.py This test covers TCP connection establishment and teardown with GNRC_TCP acting as tcp client.
-
02-conn_lifecycle_as_server.py This test covers TCP connection establishment and teardown with GNRC_TCP acting as tcp server.
-
03-send_data.py This test covers sending of a byte stream from GNRC_TCP to the host system. The amount of data to send is large enough to force GNRC_TCP to split the given stream into multiple packets.
-
04-receive_data.py This test covers receiving of a byte stream from the host system. The received data is causing window opening and closing as well as data transmission over multiple packets.
-
05-garbage-pkts.py This test mostly is a regression test for issues that were found through fuzzing. It uses
scapyto interact with the node. -
06-receive_data_closed_conn.py This test covers accessing received data after receiving a FIN packet. If the connection was closed by the peer, a call to gnrc_tcp_recv must return directly with all currently received data or zero if there is no data. The function must return immediatly dispite any given timeout.
Setup
The test requires a tap-device setup. This can be achieved by running 'dist/tools/tapsetup/tapsetup' or by executing the following commands:
sudo ip tuntap add tap0 mode tap user ${USER}
sudo ip link set tap0 up
Usage
make BOARD=<BOARD_NAME> all flash
sudo make BOARD=<BOARD_NAME> test
'sudo' is required due to ethos and raw socket usage.