Commit graph

16700 commits

Author SHA1 Message Date
Håvard Reierstad
9c3ca4573a bsim: Bluetooth: Mesh: Add gatt suspension test
Adds two test-cases to `test_suspend.c`, both checking that gatt
advertisement is stopped when suspending Mesh, and that is started again
when Mesh is resumed.

The first test-case involves suspending and resuming Mesh, and
the second test-case involves suspending Mesh and disabling Bluetooth,
then re-enabling Bluetooth and resuming Mesh.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-01-08 13:21:58 -05:00
Håvard Reierstad
0480367d77 bsim: Bluetooth: Mesh: refactor suspend test
Renames tx to DUT and rx to Tester to clarify roles in test.

Re-uses the same body for suspend/resume and suspend/disable/resume
for DUT with a parameter to toggle disabling BT.

Re-uses the same Tester config in both existing test-cases as the
previous configs were duplicates.

Updates the dut suspension status in the message handler.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-01-08 13:21:58 -05:00
Håvard Reierstad
ee337087fa bsim: Bluetooth: Mesh: extract common adv logic
Extracts logic related to waiting for packets from
`test_advertiser.c` and `test_beacon.c` to use in a sync mechanism.
Introduces a sync mechanism in bsim with the functions
`bt_mesh_test_send_over_adv` and `bt_mesh_test_wait_for_packet`

Extracts gatt-related logic from `test_advertiser.c` into a separate
file so it can be re-used.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2024-01-08 13:21:58 -05:00
Yong Cong Sin
c7ce871a04 tests: exclude renode from tests requiring unsimulated peripherals
Physical boards work on these tests but some of the required
peripherals are not simulated by `renode`, executing the tests
with renode-simulated board in CI will fail.

Exclude `renode` simulation from these tests.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-01-08 16:17:43 +00:00
Bartosz Bilas
fcb9f41259 boards: xtensa: add Kincony KC868-A32 module suppport
Add support for the KC868-A32 ESP32 home automation relay module.

Signed-off-by: Bartosz Bilas <bartosz.bilas@hotmail.com>
2024-01-08 14:21:30 +01:00
Aleksandr Khromykh
b4dc12b42b tests: Bluetooth: Mesh: optimize proxy beacon test
Emitting network beacons in parallel to proxy functionality
causes collisions. The commit disables network beacons and
allows the test scenario to be more precise.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2024-01-08 14:17:04 +01:00
Bryan Zhu
6f84f34647 tests: counter: counter_basic_api: Add support for ambiq_counter device
Update counter test to test ambiq_counter devices

Signed-off-by: Bryan Zhu <bzhu@ambiq.com>
2024-01-08 14:16:13 +01:00
Jai Arora
a7c1a5f9d6 posix: Adds test case for clock_getcpuclockid function
Adds ZTEST for clock_getcpuclockid function

Signed-off-by: Jai Arora <infolinesoni@gmail.com>
2024-01-08 12:44:45 +01:00
Hudson C. Dalpra
410684c7b0 drivers: w1: add zephyr-gpio driver
The zephyr-gpio w1 driver introduced in this commit implements
all routines for the w1 api on top of the zephyr gpio driver.
W1 bit read, write, and reset operations are executed by
bit-banging the selected gpio.

Signed-off-by: Hudson C. Dalpra <hudson@bduncanltd.com>
2024-01-08 12:43:52 +01:00
Yong Cong Sin
8f6be9661e tests: build_all: plic: add test for PLIC_SHELL build
Add a build-only test for the `PLIC_SHELL` configuration.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-01-08 12:35:52 +01:00
Peter Mitsis
8d40d3ba30 tests: latency_measure: Update sample output
Updates the sample output in the latency_measure benchmark's
README file to cover events.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-08 10:10:21 +01:00
Peter Mitsis
a8914c56d2 tests: latency_measure: Add events
Adds events to the latency_measure benchmark.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-08 10:10:21 +01:00
Arkadiusz Cholewinski
b3e1cc9f4f PM: Add testing pm_device_state_str function.
Add testing pm_device_state_str function in device_driver_init testcase.

Signed-off-by: Arkadiusz Cholewinski <arkadiuszx.cholewinski@intel.com>
2024-01-05 14:47:14 -05:00
Piotr Narajowski
cf174804fb bluetooth: tester: Add CCP Tests
Adding support for remaining CCP test cases.
Also removing callback descriptions from btp files not to get confused
with header files.

Signed-off-by: Piotr Narajowski <piotr.narajowski@codecoup.pl>
2024-01-05 14:41:52 -05:00
Peter Mitsis
38010c111e test: latency_measure: Update sample output
Updates the sample output in the latency_measure benchmark's
README file.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-05 14:35:53 +01:00
Peter Mitsis
7103b0cdeb tests: latency_measure: Add FIFO support
Adds FIFO support to the latency_measure benchmark. This covers
both k_fifo_put() and k_fifo_get() with and without context switches
as well as variations for userspace support.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-05 14:35:53 +01:00
Peter Mitsis
c2d2cf6d2b tests: latency_measure: Add LIFO support
Adds LIFO support to the latency_measure benchmark test. This covers
both k_lifo_put() and k_lifo_get() with and without context switches
as well as variations for userspace support.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-05 14:35:53 +01:00
Peter Mitsis
911182c6b9 tests: latency_measure: Change reporting strings
Changes the summary lines used in the latency_measure benchmark
so that they follow a consistent pattern.

    OBJECT  action.<brief details about action>

This makes it easier to locate results belonging to a particular
object group. It also has the benefit to keep results colocated
should the output be sorted by an external tool.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-05 14:35:53 +01:00
Peter Mitsis
6291a57e67 tests: latency_measure: Tidy up header inclusions
Moves the inclusion of the app_memdomain header file into the
tests' utils.h so that any file that includes this can make
use of the BENCH_BMEM macro.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2024-01-05 14:35:53 +01:00
Jonathan Rico
7127c2a733 tests: Bluetooth: Add debug options to host/l2cap/stress
Enable quality-of-life kconfig options.
Add destroy callbacks to track lifetime of app buffers.

Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
2024-01-05 14:30:18 +01:00
Emil Gydesen
87c8b897b3 include: util: Add mem_xor functions
Add functions to do XOR on arrays of memory, with one that
takes arbitrary sizes and one for 32 bits and 128 bits as
those are common sizes for this functionality.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-01-05 09:06:36 +01:00
Erik Brockhoff
5f99c36ca1 Bluetooth: controller: fix procedure collision handling
If an instant based remote procedure 'overtakes' a local ditto
the local procedure will be 'completed' by remote rejection
but collision flag would not get set ensuring that a new local
conflicting procedure cannot be started before the remote is completed.
This can thus lead to invalid local initiation.

Added unittest to cover case

Fix by ensuring collision flag is set also in the above mentioned
scenario.

Signed-off-by: Erik Brockhoff <erbr@oticon.com>
2024-01-05 09:05:26 +01:00
Manuel Argüelles
7e2600d309 tests: drivers: pwm: add overlays for ucans32k1sic
Enable pwm tests on ucans32k1sic board.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2024-01-05 09:03:00 +01:00
Fabio Baltieri
e517af4cff charger: add a driver for bq25180
Add a driver for the TI BQ25180. Implement enable/disable and current
set/get.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-01-05 09:00:21 +01:00
Robert Lubos
312e000a5f tests: net: socket: tls: Fix race on TCP socket close
One of the tests closed the underlying TCP connection right after
establishing one. This caused a certain race between incoming TLS
handshake data and entering FIN1 state (experienced on nrF52840), where
the TLS handshake data could be received after the FIN1 state was
entered, causing the server side to send RST packet. This disrupted the
test flow, as graceful TCP connection teardown was expected.

Fix this, by adding a small delay for such case to avoid the race.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-01-04 17:10:15 -06:00
Christopher Friedt
80e3f4aee6 tests: posix: common: rwlock: remove overspecified pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Christopher Friedt
e14f362547 tests: posix: common: sem: remove overspecified pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Christopher Friedt
90021b81d5 tests: posix: common: pthread: do not overspecify pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

This is only a partial cleanup for pthread.c

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Christopher Friedt
d9cffcfc36 tests: posix: common: mutex: remove overspecified pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Christopher Friedt
bfb4a5141c tests: posix: common: mqueue: remove overspecified pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Christopher Friedt
aefbbe2788 tests: posix: common: key: remove overspecified pthread_attr_t
Much of tests/posix/common still overspecifies pthread_attr_t
options.

Default thread attributes are perfectly fine for the vast
majority of spawned threads in this testsuite, so simply use
a NULL pthread_attr_t* argument.

This fixes piles of bugs because we have not properly used
pthread_attr_destroy() appropriately.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 15:13:47 -05:00
Rodrigo Peixoto
2cfd28e5ca tests: zbus: add HLP priority boost tests
Add the dedicated tests for HLP priority boost.

Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
2024-01-04 09:41:54 +01:00
Rodrigo Peixoto
73f0bcc7fc tests: zbus: fix unit tests to work with priority boost
The test considers using zbus inside ISR.

Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
2024-01-04 09:41:54 +01:00
Sebastian Bøe
c25ac487af tests: crypto: rand32: Check return code of sys_csrand_get
Check the return code of sys_csrand_get when testing the function.

Ignoring it is bad practice and can also be a security issue if users
copy-paste this test code.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2024-01-03 23:57:13 -06:00
Christopher Friedt
67a74e4350 tests: posix: test_realtime: improve test reliability
Previously posix_apis.test_realtime was failing (very)
frequently in CI, and in particular, when running on Qemu,
POSIX, or SMP targets.

We are using CLOCK_REALTIME for this test, which incurs an
additional syscall overhead above CLOCK_MONOTONIC. The act
of sleeping itself also incurs a syscall overhead.

The latency from one iteration to the next of the internal
loop is a bit of a random process due to scheduler or clock
noise (although the noise itself is still bounded).

In order to make this test robust against such noise, assert
only on the average time from one iteration to the next,
rather than the instantaneous time.

Rather than calculating a sample mean, use a running average
(aka Cumulative Moving Average) to save some bytes.

Report results, including low and high watermarks before
asserting that the average iteration time within expected
range.

==============================================================
START - test_realtime
I: n: 20, sleep: 100, margin: 10, lo: 110, avg: 110, hi: 110
 PASS - test_realtime in 2.198 seconds
==============================================================

Expect to see the low and high watermarks change more on
Qemu and POSIX platforms when running several jobs in parallel
with twister (such as in CI).

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 08:27:29 +09:00
Christopher Friedt
1695b5a0b2 tests: unit: util: add array for-each tests
Add tests for the following two macros

* ARRAY_FOR_EACH(array, idx_var)
* ARRAY_FOR_EACH_PTR(array, ptr_var)

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2024-01-04 08:27:29 +09:00
Jukka Rissanen
fa0e04e2ed tests: net: dhcpv6: Adjust the source address of test pkt
We would drop the received packet if the source address is our
address so tweak the test and make source address different.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-01-03 19:00:33 +00:00
Jukka Rissanen
155e2149f2 tests: net: ipv6: Adjust the source address of test pkt
We would drop the received packet if the source address is our
address so tweak the test and make source address different.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-01-03 19:00:33 +00:00
Robert Lubos
48601fde96 tests: net: socket: tls: Make sure sockets are closed on test failure
Add after() function for the test suite, which does cleanup on still
open sockets. Otherwise, an individual test case failure affects all
other test cases, blurring the test suite results.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-01-03 19:00:15 +00:00
Robert Lubos
f70715eeb3 tests: net: socket: tls: Add more tests covering poll()
Add new test cases, covering TLS/DTLS socket poll() functionality.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-01-03 19:00:15 +00:00
Krzysztof Chruściński
c0bb064d4e tests: unit: util: Fix compliance check warnings
As code is moved from test.inc to main.c a compliance check is
run for the first time on that code. Fixing warnings.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-01-02 16:01:11 +00:00
Krzysztof Chruściński
7b872d11ba tests: unit: util: Rework test structure for C++ testing
Rework test structure to handle C++ test in a better way. Similar
approach already applied in other tests which are executed for C
and C++. Getting rid of test.inc which due to non-standard extension
was not covered by complience check.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-01-02 16:01:11 +00:00
Jeremy Bettis
5a727a382a drivers: Add level intrs in gpio_ite_it8xxx2_v2
Implement level based gpio interrupts, by using a worker queue to
repeatedly call the gpio callbacks until the gpio is no longer active.

Update unit test for new interrupts.

Bug #66401

Signed-off-by: Jeremy Bettis <jbettis@google.com>
2024-01-02 10:10:39 +01:00
Jeremy Bettis
6c567d4899 tests: Add unittest for gpio_ite_it8xxx2_v2
Add a unittest for 100% of the lines in gpio_ite_it8xxx2_v2. The test
fakes the registers by overriding the ECREG macro to call a function
provided by the test.

Does not test the code guarded by
CONFIG_SOC_IT8XXX2_GPIO_GROUP_K_L_DEFAULT_PULL_DOWN

Bug #66401

Signed-off-by: Jeremy Bettis <jbettis@google.com>
2024-01-02 10:10:39 +01:00
cyliang tw
d00125875c tests: drivers: adc: adc_api: support numaker_pfm_m467
Add support for Nuvoton numaker board numaker_pfm_m467.

Signed-off-by: cyliang tw <cyliang@nuvoton.com>
2024-01-02 10:10:27 +01:00
Mariusz Skamra
4a77bdb4e8 tests: Bluetooth: tester: Add initial support for HAP
This adds initial support for Hearing Aid Profile BTP service commands.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2024-01-02 10:10:15 +01:00
Christopher Friedt
10156f5f1d posix: mqueue: pop mode as int with va_arg()
There was some discussion about whether it was suitable to have
an architecture-specific workaround in mqueue.c after that
workaround was copied to a different source file in a PR.

The original issue was that newlib and picolibc declare mode_t
to be unsigned short instead of unsigned long when __svr4__
is not defined along with __sparc__. This is specifically
impactful, because va_arg() deals (mainly) with 32-bit and
64-bit values that are all naturally aligned to 4 bytes.

#if defined(__sparc__) && !defined(__sparc_v9__)
#ifdef __svr4__
typedef unsigned long __mode_t;
#else
typedef unsigned short __mode_t;
#endif

A uint16_t is naturally aligned to 2 bytes, so not only would
a 16-bit mode_t be corrupted, it would also generate a warning
with recent gcc versions which is promoted to error (rightfully
so) when run through CI.

mqueue.c:61:35: error: 'mode_t' {aka 'short unsigned int'} is
  promoted to 'int' when passed through '...' [-Werror]
   61 |                 mode = va_arg(va, mode_t);

Instead of using an architecture-specific workaround, simply
add a build assert that the size of mode_t is less than or
equal to the size of an int, and use an int to retrieve it
via va_arg().

Signed-off-by: Christopher Friedt <cfriedt@meta.com>

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Fri Dec 29 10:06:44 2023 -0500
#
# On branch posix-mqueue-always-use-int-for-mode-t-va-arg
# Changes to be committed:
#	modified:   lib/posix/mqueue.c
#	modified:   tests/posix/common/testcase.yaml
#
2024-01-01 16:36:31 -05:00
Krzysztof Chruściński
b46d961abf tests: lib: cbprintf_package: Add test case for cbprintf_convert
Add test case for converting statically generated package which
contains RO and RW indexes. Converting shall append RW string
and discard RO index.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2023-12-28 12:18:50 +00:00
Pieter De Gendt
cc920696ed tests: unit: util: Add tests for IF_DISABLED
Add a testcase for the IF_DISABLED macro.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2023-12-28 12:06:28 +00:00
Christopher Friedt
1f67dcbd89 posix: remove deprecated non-standard PTHREAD_MUTEX_DEFINE, etc
Remove the previously deprecated and non-standard macros
* PTHREAD_MUTEX_DEFINE()
* PTHREAD_COND_DEFINE()

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-12-28 03:40:57 -05:00