Commit Graph

1769 Commits

Author SHA1 Message Date
Daniel DeGrasse
793d8bb3d2 tests: net: wifi: exclude RW612 ethernet variant
Ethernet board variant was missed in commit 138e9591f8 (tests: net:
wifi: exclude RW612 based boards), but is the sole variant that actually
was running this test. Exclude this variant only, since it cannot build
this test due to requiring binary blobs.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-09-18 19:56:18 +01:00
Arkadiusz Cholewinski
9d9089edd0 ztest: Add Support for Multiple Test Runs.
Introduces new kconfig options to enable multiple test runs in the ztest.

Signed-off-by: Arkadiusz Cholewinski <arkadiuszx.cholewinski@intel.com>
2024-09-18 15:32:28 +02:00
Valerio Setti
91fa8a2b63 tests: net: socket_tls: test different TLS configurations with sockets
This commit adds a test to showcase how to configure TLS 1.2 and 1.3
socket connections against an OpenSSL server. Only a limited number
of combinations are available for now:

- TLS 1.2
	- RSA certificate and key exchange.
	- ECDSA certificate and ECDHE key exchange.

- TLS 1.3 only supports ephemeral (ECDHE) key exchange with/without
  session tickets.

Since the goal is to test TLS connection and not low level ethernet
functionalities or similar, the only supported platform is "native_sim"
where Linux sockets are used to connect to the OpenSSL server locally.

The idea is that the Zephyr application acts a client and tries to connect
to the OpenSSL server running on the same PC. For sake of simplificity a
bash script is provided to start the OpenSSL server properly.
For completeness a bash script is also provided to re-generate
certificates and keys.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-09-12 13:31:20 -04:00
Jukka Rissanen
b9a3edc43a tests: net: cm: Increase event wait time
This was seen in CI

START - test_cycle_ready_CC

  Assertion failed at ...tests/net/conn_mgr_monitor/src/main.c:262:
    cycle_ready_ifaces: (stats.conn_count_gen not equal to 1)
    NET_EVENT_L4_CONNECTED should be fired when connectivity is gained.
FAIL - test_cycle_ready_CC in 0.015 seconds

As the event wait timeout is very short (1ms) by default, increase
it to 10ms so that we will not miss the event.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-09-10 12:37:38 -04:00
Robert Lubos
ac51e30957 tests: net: lib: lwm2m: content_link_format: Update BS discovery test
Align bootstrap discovery tests case with the enabler version reporting
changes.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-09-10 11:43:18 +02:00
Henrik Brix Andersen
83e30552ab tests: lib: net_buf: move network buffer tests to tests/lib/net_buf
Move the network buffer tests to tests/lib/net_buf as their implementation
now lives outside of the networking subsystem.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-09-07 11:19:05 -05:00
Henrik Brix Andersen
159f7dbbb1 lib: net_buf: rename header file from zephyr/net/buf.h to zephyr/net_buf.h
Move the network buffer header file from zephyr/net/buf.h to
zephyr/net_buf.h as the implementation now lives outside of the networking
subsystem.

Add (deprecated) zephyr/net/buf.h header to maintain compatibility with old
file path.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-09-07 11:19:05 -05:00
Henrik Brix Andersen
ced80b13bf lib: net_buf: move the network buffer implementation to lib
Move the net_buf implementation from the networking subsystem to a library
as they have no dependency on the networking subsystem.

Network buffers are used in subsystems outside of networking
(e.g. Bluetooth, USB).

Fixes: #36374

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-09-07 11:19:05 -05:00
Jukka Rissanen
5355920f98 tests: net: bridge: Update the bridging tests
Make sure that tests work after overhaul.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-09-06 18:01:15 -04:00
Matt Rodgers
0c8bdbc45d net: lib: http_server: allow application to access request headers
Allow application to register certain HTTP request headers to be stored
by the server. These stored headers can then be accessed from a dynamic
resource callback.

Signed-off-by: Matt Rodgers <mrodgers@witekio.com>
2024-09-06 11:27:37 -04:00
Chaitanya Tata
a449b748cb Revert "tests: wifi: nm: exclude nrf7002dk"
This reverts commit 65af3ab34c.

Build only mode is now supported without FW blobs.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-09-02 12:31:06 -04:00
Daniel DeGrasse
138e9591f8 tests: net: wifi: exclude RW612 based boards
Exclude RW612 based boards from the WiFi testsuite, as these boards
require binary blobs be downloaded in order to build as expected

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-08-27 12:44:22 +02:00
Axel Le Bourhis
179c85aa06 tests: net: socket: udp: clear control data buffer before recvmsg
Currently, the test doesn't clear the control data buffer before
calling recvmsg. This leads to recvmsg being unable to add the new
control data, which corresponds to the current received data.
This commit aims to clear the control data buffer to match most use
cases, when the control data buffer is empty before calling recvmsg.

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2024-08-23 15:50:37 +01:00
Pisit Sawangvonganan
b7d55d8ec6 style: tests: comply with MISRA C:2012 Rule 15.6
Add missing braces to comply with MISRA C:2012 Rule 15.6 and
also following Zephyr's style guideline.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-08-20 10:33:51 +02:00
Alberto Escolar Piedras
1aaea30adb tests/net/lib/lwm2m: Switch description to native_sim
native_posix is deprecated, let's switch the
description & comments to refer to native_sim instead.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-08-16 11:20:34 +01:00
Henrik Brix Andersen
69fe9b0c50 net: buf: remove use of special putter and getter functions
Convert users of net_buf_put() and net_buf_get() functions to use
non-wrapped putters and getters k_fifo_put() and k_fifo_get().

Special handling of net_bufs in k_fifos is no longer needed after commit
3d306c181f, since these actions are now
atomic regardless of any net_buf fragments.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2024-08-16 09:55:11 +02:00
Bjarki Arge Andreasen
65af3ab34c tests: wifi: nm: exclude nrf7002dk
The nrf7002dk board's wifi chip requires blobs to build wifi driver.
Therefore it can not be built by CI. Exclude the board and its
variants from the wifi test suite.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2024-08-13 18:21:01 -04:00
Robert Lubos
d5fc86ed0a tests: net: mqtt: Make publisher/subscriber test suites self contained
The MQTT publisher/subscriber/pubsub tests suites are currently
depending on an external MQTT broker being available. In result, the
test suites cannot be executed in twister and need to be run manually,
which makes them kind of pointless from the CI perspective.

This commit reworks the tests, so that they no longer rely on an
external broker being available, but rather implement minimalistic
broker functionality for test purposes only. This will make the tests
self contained, and thus executable in the CI.

Since it makes not point to duplicate the effort between the test
suites, the test suites have been merged into a single mqtt_client test
suite.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-08-08 20:22:33 -04:00
Robert Lubos
71375d1414 tests: net: mqtt: Group existing MQTT 3.1.1 test suites
Currently existing tests suites verify MQTT 3.1.1 functionality,
therefore group them together under "mqtt/v3_1_1" directory, so
that the test base can be extended easily in the future with MQTT 5.0
tests without collision.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-08-08 20:22:33 -04:00
Torsten Rasmussen
b939e720a6 tests: source Zephyr before project() call
Fixes: #73831

find_package(Zephyr) should be called before first project() call.

Zephyr package will test and force-set the correct toolchain, especially
the C compiler.
The project() will also set the C compiler, if not set already.

If project() is called first, then conflict arises on the C compiler
selection and thus the following message is seen:
> You have changed variables that require your cache to be deleted.
> Configure will be re-run and you may have to reset some variables.
> The following variables have changed:
> CMAKE_C_COMPILER= /usr/bin/gcc

This cache deletion results in other errors, such as a missing BOARD
setting.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-08-05 16:27:09 +02:00
Chris Friedt
91e0a4b9ac misc: move lorem ipsum text to zephyr/misc/lorem_ipsum.h
Instead of duplicating Lorem Ipsum in several places, let's
consolidate in one location.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-08-02 03:31:06 -04:00
Robert Lubos
9764755bf8 tests: net: http_server: tls: Reduce test memory footprint
Tweak some Kconfig variables to reduce the overall memory footprint of
the test application. For some reason x86 MMu throws errors when
accessing iterable section entries when the image size is too large.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-08-01 16:40:03 +02:00
Gerhard Jörges
1eed39e4ac tests: net: http_server: Add static fs tests
Add a test that checks whether the extensions are correctly assigned to
content types.

Signed-off-by: Gerhard Jörges <joerges@metratec.com>
2024-07-31 10:08:16 +02:00
Fabian Pflug
055800ba76 net: l2: ieee802154: test association permit bit
Beacon frames can be received with association permit bit set or not,
but the correct information should be in the data given to the
application.

Signed-off-by: Fabian Pflug <fabian.pflug@grandcentrix.net>
2024-07-31 10:08:03 +02:00
Fabian Pflug
240223971f net: l2: ieee802154: decrease time for testcase
When trying to implement a testcase for the previous commit, an error
occoured, that stopped the test from executing.

As the tests require a full IPv6 stack, the usual router solicitation
(RS) messages will be scheduled by the net stack. To avoid conflict
with RS messages the active scan test must be kept shorter than one
second, otherwise a race condition with additional packages being
reported by the fake driver might occur.

Signed-off-by: Fabian Pflug <fabian.pflug@grandcentrix.net>
2024-07-31 10:08:03 +02:00
Robert Lubos
3eafc19835 tests: net: http_server: Remove harness requirement
The HTTP server tests are self-contained, they do not require network
environment to execute, hence should not specify "harness: net".

The consequence of specifying the harness was that HTTP server tests in
the CI were only built, and not executed, which doesn't make much sense.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-30 18:30:36 +01:00
Robert Lubos
dd0a95ec15 tests: net: lib: http_server: core: Add test for RST_STREAM frame
Add test case verifying that stream is closed when RST_STREAM frame is
received.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
338e41a063 tests: net: lib: http_server: core: Add test for trailing header frame
Add test case covering a scenario when a client sends a trailing header
frame in a request.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
a99f70ce42 tests: net: lib: http_server: core: Add tests for continuation frame
Add test cases for continuation frame processing.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
71e0b9fac2 tests: net: lib: http_server: core: Add tests for header with priority
Add test cases verifying that request containing header frame with
priority flag set is processed properly.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
1da42b6626 tests: net: lib: http_server: core: Add tests for frames with padding
Add tests verifying that requests which include frames with padding are
processed correctly.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
d1ebddb110 tests: net: lib: http_server: core: Add tests for dynamic POST/GET
Add tests cases covering interaction with dynamic resources with
POST/GET requests.

Simplify HTTP2 request generation to facilitate adding more tests.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
938088641c tests: net: lib: http_server: core: Add test for connection close
Add test case verifying that the server keeps the connection open if no
Connection: close header is present in the request.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
a6d494b16f tests: net: lib: http_server: core: Clarify existing tests
Remove pointless helper functions, the test code can simply be included
in the test case w/o code duplication.

Clarify the naming of existing test cases. Backward compatibility simply
tests HTTP1. The upgrade test wasn't really testing HTTP upgrade, so
rename the test case too. Add a new test case actually verifying HTTP
upgrade.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
ff65815a3b tests: net: lib: http_server: core: Extend start/stop test
Ensure it's possible to restart the server w/o issues after a client
connected.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
5a23c2d602 tests: net: lib: http_server: core: Cleanup before adding more tests
Do some cleanup regarding naming used in the test suite to prepare it
for adding more test cases.

Extract common setup/teardown into respective before and after ztest
functions to simplify test code. Proper before and after functions also
ensure that individual test case failure does not disrupt other tests
operation.

Split the tests into two separate test suites, one for those which
require pre-setup and second for those which don't.

Finally, enable receive timeout on the client socket to ensure tests
won't stall in case of errors.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
1e2b2c79a5 tests: net: lib: http_server: Rename prototype test suite
"prototype" is ambiguous in this regard, as it doesn't really tell what
the test suite is testing. As tests in this test suite verify core HTTP
server functionality, rename it to "core".

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 15:08:40 +03:00
Robert Lubos
dfbdfb05da tests: net: sockets: misc: Fix SO_BINDTODEVICE test
The test case for SO_BINDTODEVICE socket option was flaky, the client
socket always sent the datagram to the IP address of the second
interface, so in theory every packet should end up on that interface.
In practice though, due to imperfect loopback packet handling, the test
worked as the packet ended up on the interface it was sent from.

The test should send datagrams to the IP addresses of the interface 1
and 2 alternatively. The server socket binds to ANY address, so w/o
interface binding it should receive all datagrams, so it allows to
verify if SO_BINDTODEVICE filtering works fine.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-27 10:44:48 +03:00
Seppo Takalo
9fc2048bcc tests: lwm2m: Add Portfolio testcases
Add testcases:
* LightweightM2M-1.1-int-1630 - Create Portfolio Object Instance
* LightweightM2M-1.1-int-1635 - Delete Portfolio Object Instance

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-07-27 10:44:12 +03:00
Fabian Pflug
ca53d2bf80 net: l2: ieee802154: mgmt: allow beacon payload
The standard does allow for a optional beacon payload, which gets lost
during scan, that could be interesting for the application to access
in the NET_EVENT_IEEE802154_SCAN_RESULT callback.

See section 7.3.1.6 in IEEE Std 802.15.4 for more information about
the beacon payload field. And section 7.3.1 and figure 7-5 about general
beacon frame format.

Signed-off-by: Fabian Pflug <fabian.pflug@grandcentrix.net>
2024-07-27 10:42:45 +03:00
Jukka Rissanen
794d7cf3c5 net: sockets: Remove async service support
As found in PR #75525, we should not modify the polled fd array
in multiple places. Because of this fix, the async version of
the socket service could start to trigger while it is being handled
by the async handler. This basically means that the async version
cannot work as intended so remove its support.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-07-10 11:36:59 +02:00
Robert Lubos
b4cfee090d net: lib: http_server: Implement proper CONTINUATION frame processing
CONTINUATION frames are tricky, because individual header fields can be
split between HEADERS frame and CONTINUATION frame, or two CONTINUATION
frames. Therefore, some extra logic is needed when header parsing
returns -EAGAIN, as we may need to remove the CONTINUATION frame header
from the stream before proceeding with headers parsing.

This commit implements the above logic and additionally adds more checks
to detect when CONTINUATION frame is expected. Not receiving a
CONTINUATION frame when expect should be treated as a protocol error.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-09 15:20:57 -04:00
Robert Lubos
adfdc54434 net: lib: http_server: Update HTTP2-specific structs/enums naming
For HTTP2-specific structures and enums, use "http2_" prefix to clearly
indicate the distinction from the generic HTTP stuff.

Additionally, some structures/enums describing HTTP2 protocol details
had "server" in the name, while in reality they describe nothing
server-specific. Hence, drop the "server" part where applicable.

Remove unused macros.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-09 15:20:57 -04:00
Alberto Escolar Piedras
1df86af309 Revert "net: sockets: move poll implementation to zvfs"
This reverts commit 93973e2ead.

PR #73978 introduced a regression.
Unfortunately this PR cannot be reverted without reverting also
Let's revert both PRs to stabilize main again towards the 3.7 release.

For more details on the issue see
https://github.com/zephyrproject-rtos/zephyr/issues/75205

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-07-03 15:03:05 -04:00
Chris Friedt
93973e2ead net: sockets: move poll implementation to zvfs
Move the implementation of zsock_poll to zvfs_poll. This allows
other types of file descriptors to also make use of poll()
functionality even when the network subsystem is not enabled.

Additionally, it partially removes a dependency cycle between
posix and networking by moving functionality into a mutual
dependency.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-06-27 09:01:23 -04:00
Jukka Rissanen
4fefde2f09 tests: net: socket: Add tests for tracing
Make sure we at least build test the network socket tracing
support. The tracing tests do not enable networking so do the
socket tracing tests here.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-06-26 15:49:43 +02:00
Chris Friedt
9ada52f060 fdtable: replace z_ prefix with zvfs_ for fdtable.h functions
For each of the fdtable.h functions listed below, convert the
z_ prefixed semi-private functions to use the zvfs_ prefix.

ZVFS stands for Zephyr Virtual File System and
is intended to be a common library used by the C library,
POSIX API, Networking, Filesystem, and other areas.

There are already a few functions in fdtable.h that use the
zvfs_ prefix, so this change is mostly about unifying them in
a way that uses a suitable prefix ("namespace") so that it can
be considered a public API.

- z_alloc_fd
- z_fdtable_call_ioctl
- z_finalize_fd
- z_finalize_typed_fd
- z_free_fd
- z_get_fd_obj
- z_get_fd_obj_and_vtable
- z_get_obj_lock_and_cond
- z_reserve_fd

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-06-26 12:33:02 +02:00
Alberto Escolar Piedras
2dc67c56b4 tests/net/lib/http_server/hpack: Exclude native_posix
This test explicity enables the POSIX_API which is
not compatible with native_posix.
Let's exclude this target.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-06-24 13:01:38 +02:00
Jordan Yates
07870934e3 everywhere: replace double words
Treewide search and replace on a range of double word combinations:
    * `the the`
    * `to to`
    * `if if`
    * `that that`
    * `on on`
    * `is is`
    * `from from`

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-06-22 05:40:22 -04:00
Robert Lubos
5499a82850 tests: net: http_server: Add HPACK testsuite
Add tests suite covering HTTP2 HPACK header compression and Huffman
encoding.

Note - many HPACK encoding/decoding cases in tests look similar, but
there are subtle differences in HPACK header used. For decoding, we
should be able to decode all of them. For encoding, we only test what
we support (no dynamic indexing).

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-06-21 08:44:38 -04:00