Commit Graph

1455 Commits

Author SHA1 Message Date
Manuel Argüelles
2d49ab6623 tests: mqtt: disable debug log level
Avoid to use debug log level for all modules and keep it only for MQTT
and NET related modules.

mr_canhubk3 board will fail to initialize the on-board watchdog within
the expected window causing a board reset, due to the amount of log
messages being printed. Other boards may also be affected.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2023-09-12 10:56:35 +02:00
Huifeng Zhang
662a14a25e tests: net: lib: lwm2m: fix the missing float support
The tests `content_json` and `content_plain_test` depend on the float
support of libc. After PR##57340, Picolibc would be selected in
these two tests and the `PICOLIBC_IO_FLOAT` won't be selected if
the platform doesn't select `FPU`.

This commit select `CONFIG_PICOLIBC` and `CONFIG_PICOLIBC_IO_FLOAT`
for these two tests.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
2023-09-11 16:58:10 -04:00
Seppo Takalo
4798187801 test: lwm2m: Fix minor timing issue
RD client tests work well on emulated (fast) environments
but tend to fail on real HW with real time sleeps.
This change refactors wait_for_service() to be a bit more
syncronous on background service, instead of relying hardcoded
sleeps.

Fixes #61824

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-09-11 19:56:08 +02:00
Robert Lubos
16870cd664 tests: net: tcp: Add test case for SYN/RST+ACK scenario
Add TCP test case which verifies that if RST+ACK packet is received
during TCP handshake, the connection is brought down and
net_context_connect() fails.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-09-07 11:41:52 +02:00
Florian Grandel
fa4f15a7d5 tests: net: conn_mgr_monitor: increase stack size
Fixes the broken conn_mgr_monitor test.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-09-06 09:32:36 +02:00
Alberto Escolar Piedras
4f0b2a0bf6 tests lwm2m_rd_client: Allow only on native_posix
This test is too dependent on the exact order of events,
and known to fail in most platforms but native_posix.
To mitigate the issue and avoid blocking development
due to failed CI tests, let's only allow the test in
native_posix.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-09-01 13:59:12 +02:00
Jukka Rissanen
7aa4904b5a net: socket: Change SO_BINDTODEVICE to use interface name
Make sure we use the network interface name (if configured)
instead of device name when binding to certain network
interface.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2023-08-31 14:43:36 +02:00
Jukka Rissanen
bb5885580f tests: net: iface: Add unit test for interface name support
Check that we can set and get the network interface name.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2023-08-31 14:43:36 +02:00
Georges Oates_Larsen
b25ea4742e net: conn_mgr: Rename connectivity monitor
The connectivity monitoring subfeature of conn_mgr is currently also
named conn_mgr, which is confusing.

This commit renames it to conn_mgr_monitor, or conn_mgr_mon for short,
for clarity.

Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
2023-08-29 16:13:37 +02:00
Georges Oates_Larsen
6d2ce0b30b net: conn_mgr: Create separate connectivity implementation API.
Splits many definitions from conn_mgr_connectivity.h off into their own
header, conn_mgr_connectivity_impl.h

conn_mgr_connectivity.h now focuses solely on user/application-facing
APIs, and conn_mgr_connectivity_impl now contains all functions, utils,
definitions intended for use by connectivity implementations, including
conn_mgr_if_get_binding, which is now available for use by connectivity
implementations.

This lays the foundation for allowing connectivity implementations
easier and safer access to their internal state through internal APIs.

Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
2023-08-29 16:13:37 +02:00
Robert Lubos
9a90440226 tests: net: sockets: misc: Add getsockname() tests
Add tests which verify that getsockname() function works as expected.

Additionally, add a teardown delay in tests involving TCP, to make sure
all resources are released before the test ends, not to interfere with
other tests.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-08-27 07:35:34 -04:00
Georgij Cernysiov
986fb1e85d tests: net: lib: coap: test coap_packet_set_path
Adds testing of 'coap_packet_set_path'.

Signed-off-by: Georgij Cernysiov <geo.cgv@gmail.com>
2023-08-25 13:15:12 +02:00
Robert Lubos
e8a00b7ef6 tests: net: socket: udp: Add test to verify connected socket behavior
Add test cases which verify that when UDP socket is connected, it only
accepts datagrams from a remote peer it was connected to, and not
others.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-08-25 10:31:19 +02:00
Seppo Takalo
e977fde7ee tests: lwm2m: Add more tests to LwM2M registry
Add module tests for all data types and most of deprecated
functions as well.

Refactor event wainting to expect_lwm2m_rd_client_event() which
does not care about the index, just the order.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-24 22:07:32 +01:00
Seppo Takalo
0da806736e tests: lwm2m: Add engine tests on security and socket opts
Add tests regarding socket options and various security
options.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-24 22:07:32 +01:00
Seppo Takalo
40dd0c1fa0 tests: lwm2m: Add bootstrap tests into RD client tests
Add bootstrap and few corner cases into RD client tests
to improve code coverage.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-24 22:07:32 +01:00
Sjors Hettinga
2adc95ae7a tests: net: tcp: Add testcase for validating retransmitted FIN seq
Implemented testcase to check if the retransmitted FIN packet
from the FIN1 state has the correct sequence number.
Also fix the endianness conversion of sequence numbers in the
tests to use 32-bit as it should instead of 16-bit.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2023-08-22 10:00:14 +02:00
Sjors Hettinga
330561e47a tests: net: tcp: Add a testcase for data beyond TCP socket closure
After the TCP socket has been closed, it should not accept any new data
and send a RST packet if it does receive some.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2023-08-22 10:00:14 +02:00
Christopher Friedt
9d16fbb70c tests: net: socket: tcp: reduce number of file descriptors
For some reason, tests/net/socket/tcp/net.socket.tcp.preempt
was failing to link for vmu_rt1170 with these changes, and
for some reason reducing CONFIG_POSIX_MAX_FDS from 20 to 10
resolves that issue.

ld.bfd: scripts/build/gen_kobject_placeholders.py \
  did not reserve enough space for kobject rodata.
Memory region         Used Size  Region Size  %age Used
           FLASH:      287860 B        64 MB      0.43%
             RAM:       86460 B       512 KB     16.49%
           OCRAM:          0 GB       256 KB      0.00%
          OCRAM1:          0 GB       512 KB      0.00%
          OCRAM2:          0 GB       512 KB      0.00%
            ITCM:          0 GB       256 KB      0.00%
            DTCM:       13908 B       256 KB      5.31%
        IDT_LIST:          0 GB         2 KB      0.00%
collect2: error: ld returned 1 exit status

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
4cc5102225 net: sockets: udp: test FIONREAD with ipv4 and ipv6 sockets
The FIONREAD ioctl (or rather ZFD_IOCTL_FIONREAD) returns the
number of bytes available on the socket that can be read
immediately.

Test that the ioctl behaves according to the expectation.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
0f139736f3 tests: net: socket: udp: clear fdtable in after()
Add an `after()` function that is executed after each test in
the testsuite.

Previously, even if one one test failed, it would calls almost
all subsequent tests to fail. This way, other tests can still
succeed.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
e7182beb40 tests: net: socket: tcp: clear fdtable in after()
Add an `after()` function that is executed after each test in
the testsuite.

Previously, even if one one test failed, it would calls almost
all subsequent tests to fail. This way, other tests can still
succeed.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
37ca8e0697 net: sockets: tcp: test FIONREAD with ipv4 and ipv6 TCP sockets
The FIONREAD ioctl (or rather ZFD_IOCTL_FIONREAD) returns the
number of bytes available on the socket that can be read
immediately.

Test that the ioctl behaves according to the expectation.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
f1d7c0b196 tests: net: socketpair: use a test fixture to deduplicate code
A fair bit of setup / teardown code was being duplicated in many
test cases in the socketpair testsuite.

Take advantage of the `setup()`, `before()`, and `after()`
functions in the new ZTest API.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
2116c553a1 tests: net: socketpair: add fionread test
Add a test to exercise
`zsock_ioctl(fd, ZFD_IOCTL_FIONREAD, &avail)`.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Christopher Friedt
0f143c9ec9 tests: net: socketpair: reduce requirements for test
Reduce additional requirements for the socketpair testsuite.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-08-22 09:59:44 +02:00
Lukas Woodtli
6277a3904a net: coap: Add function for removing CoAP options
The provided function allows to remove a CoAP option in a
message. This is useful for reusing parts of a message.

Signed-off-by: Lukas Woodtli <lukas.woodtli@husqvarnagroup.com>
2023-08-16 17:06:41 +02:00
Seppo Takalo
fbabc0cd3d test: lwm2m: Allow longer waits and stop properly
RD-client tests should wait longer for expected events.
Also the stubbed service worker should be stopped properly
after tests.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-16 10:21:46 +02:00
Seppo Takalo
01dab8690a net: lwm2m: Do not immediately close connection at Bootstrap
When BOOTSTRAP FINNISH message was received, it caused
engine to immediately switch to BOOTSTRAP_TRANS_DONE state
which then closed the connection.
Ack packet was still on the send-queue so it never got send before close().

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-16 10:21:46 +02:00
Daniel Leung
efeb2d13a7 tests: net: renames shadow variables
Renames	shadow variables found by -Wshadow.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2023-08-10 08:14:43 +00:00
Robert Lubos
68be56d282 tests: net: tcp: Fix server tests
Fixing the bug with shadowed ret variable (and hence not returning
timeout error) reveled another bug in TCP server tests. Here, the
listening context was incorrectly used to receive new data, and since it
never arrived, the function timed out.

This commits fixes that issue, and limits the retransmission timeout to
ensure that Nagle's algorithm impact does not affect test timings.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-08-09 20:01:39 -04:00
Sjors Hettinga
9d2c17dee2 tests: net: tcp: Default disable logging in TCP socket test
Accidentally statements to enable logging in the TCP socket test
where pushed. This broke some tests running on real devices due
to the additional code size.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2023-08-09 08:34:06 +00:00
Benjamin Perseghetti
79796d5c74 tests: net/socket/socketpair: exclude vmu and 1160
This has failed in repeated CI runs. Filed an issue
for having it checked. Excluding it until it's
fixed.

Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
2023-08-08 12:09:10 -05:00
Sjors Hettinga
5b640ec9db net: tcp: Implement TCP new Reno collision avoidance
To avoid a TCP connection from collapsing a link, implement a collision
avoidance algorithm. Initially TCP new Reno is implemented for its
simplicity.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2023-08-04 15:05:17 +02:00
Alberto Escolar Piedras
957ea755bb test lwm2m/engine: Fix build warning
Fix a build warning that is generated by new
enough compilers, when they detect the sprintf()
may overflow the destination buffer lenght.

The code which was generating the warnig was
actually not used, so we just remove it.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-08-02 23:33:37 +02:00
Jaxson Han
3509f8b977 tests: net: lib: lwm2m: Use 1 cpu only as a workaround
These testcases are not SMP-safe, will fail on all SMP boards. Simply
turning them to 1cpu test  can not fix the issue.

So, setting CONFIG_MP_MAX_NUM_CPUS to 1 as a workaround.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2023-08-02 16:34:04 +02:00
Seppo Takalo
518bbc1303 net: lwm2m: Refactor RD client to be tickless
Call RD client service only when there is state transitioning.
Remove periodic 500 ms timer.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-01 12:07:12 +02:00
Seppo Takalo
1dfa711167 net: lwm2m: Create socketpair that can wake up zsock_poll()
Allow socket-loop to wake up immediately, if there are changes,
instead of waiting for zsock_poll() to timeout.
This change makes engine more reactive and removes
hard coded timeout from zsock_poll().

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-08-01 12:07:12 +02:00
Florian Grandel
a4cd5cee40 drivers: ieee802154: consistent high res timestamps
The IEEE 802.15.4 API and networking subsystem were using several
inconsistent timestamp resolutions and types. This change defines all
timestamps with nanosecond resolution and reduces the number of
available types to represent timestamps to two:
* `struct net_ptp_time` for PTP timestamps
* `net_time_t` for all other high resolution timestamps

All timestamps (including PTP timestamps) are now referred to a
"virtual" local network subsystem clock source based on the well-defined
types above. It is the responsibility of network subsystem L2/driver
implementations (notably Ethernet and IEEE 802.15.4 L2 stacks) to ensure
consistency of all timestamps and radio timer values exposed by the
driver API to such a network subsystem uptime reference clock
independent of internal implementation details.

The "virtual" network clock source may be implemented based on arbitrary
hardware peripherals (e.g. a coarse low power RTC counter during sleep
time plus a high resolution/high precision radio timer while receiving
or sending). Such implementation details must be hidden from API
clients, as if the driver used a single high resolution clock source
instead.

For IEEE 802.15.4, whenever timestamps refer to packet send or receive
times, they are measured when the end of the IEEE 802.15.4 SFD (message
timestamp point) is present at the local antenna (reference plane).

Due to its limited range of ~290 years, net_time_t timestamps (and
therefore net_pkt timestamps and times) must not be used to represent
absolute points in time referred to an external epoch independent of
system uptime (e.g.  UTC, TAI, PTP, NTP, ...).

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-28 09:06:35 +00:00
Robert Lubos
ea9d8b7295 tests: net: if: Add tests to verify net_if_ipv4/6_addr_foreach()
Add tests cases which verify that net_if_ipv4/6_addr_foreach() executes
callbacks properly on assigned addresses.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2023-07-25 14:18:54 +02:00
Seppo Takalo
27a695dda0 tests: coap_client: Zero-initialize address structures
Even though tests don't use the address, it causes warnings
on static analyzers.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2023-07-18 16:22:10 +02:00
Florian Grandel
b106c21acd net: l2: ieee802154: unified assertion order
Small refactoring that unifies the assertion order for improved
consistency across tests - placing the SUT before the expected value
everywhere.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-14 09:38:01 +02:00
Florian Grandel
cffb1a448e net: l2: ieee802154: test disassociation from coordinator
Introduces an integration test that simulates an incoming disassociaton
notification from a coordinator.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-14 09:38:01 +02:00
Florian Grandel
111a87efb1 net: l2: ieee802154: test enddevice disassociation
Adds test coverage for the disassociation shell command that
disassociates the enddevice by notifying its coordinator.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-14 09:38:01 +02:00
Florian Grandel
81c1f19f1b net: l2: ieee802154: shell set_ext_addr test coverage
Introduces an integration test that covers the set_ext_addr shell
command.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-14 09:38:01 +02:00
Chaitanya Tata
980ad00f10 tests: wifi: Add Wi-Fi test suite
This adds Wi-Fi tests for both offloaded and newly introduced network
manager managed interface. Only scan op is used to verify the network
manager code.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2023-07-11 14:55:30 +02:00
Florian Grandel
27bfe68204 net: l2: ieee802154: mgmt: improve association procedure spec compliance
This change introduces test coverage for association request and
response. Based on this coverage, several closely related issues were
found in the association process which cannot be split into separate
changes without breaking the build.

Most notably did the associate and disassociate net_mgmt commands send
already encoded IEEE 802.15.4 MPDUs to L3 rather than L2. L3 treated
them as payload and made L2 wrap them with another LL header/footer
which produced invalid packets.

The tests also enforce better aligment of the association process with
the IEEE 802.15.4-2020 standard:

* Association requests now ask for ACK as required by the standard. The
  fake driver was enhanced to produce ACK packages when requested.
* macPanId and macCoordinator* MAC PIB attributes are set in the right
  order for improved filtering of association responses.
* The coordinator may decide not to assign a short address to the end
  device even when associated. This is now supported.
* The coordinator may or may not use a short address. Coordinators
  choosing not to support short addresses are now supported.
* Updating the association will now remove any previously added short
  address from the hardware filter.
* The short address may no longer be changed by the user while
  associated to a PAN. Only the coordinator is allowed to allocate short
  addresses.
* Validation of outgoing and incoming association request/response
  packets is improved.

All changes are documented by pointers into the spec.

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-10 09:29:10 +02:00
Marcin Gasiorek
eb16ab551f tests: net: pkt_filter: Add TCs for new hooks
Add new TCs to cover new hooks functionality.
These tests implement simple IP filter.

Signed-off-by: Marcin Gasiorek <marcin.gasiorek@nordicsemi.no>
2023-07-10 09:27:47 +02:00
Georges Oates_Larsen
ad6fdaf2c2 net: conn_mgr: Bulk convenience functions
To further reduce the need for networking boilerplate in applications,
provide bulk versions of net_if_up, net_if_down, conn_mgr_if_connect,
and conn_mgr_if_disconnect that affect all available / eligible ifaces
at once.

Since it is not intuitive whether these functions should affect ifaces
which conn_mgr is ignoring, these functions take an argument that allows
this to be specified by the application.

Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
2023-06-30 16:10:23 +02:00
Georges Oates_Larsen
b65613e79c net: conn_mgr: Support Auto-Down
To reduce the amount of boiler-plate needed in applications, this commit
grants conn_mgr the ability to automatically take ifaces that have given
up on connecting into the admin-down state.

Tests adjusted as appropriate.

This behavior can be disabled globally by disabling
NET_CONNECTION_MANAGER_AUTO_IF_DOWN, or disabled per-iface using the
CONN_MGR_IF_NO_AUTO_DOWN flag.

Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
2023-06-30 16:10:23 +02:00