Commit graph

5778 commits

Author SHA1 Message Date
Torsten Rasmussen
66b475a3aa scripts: remove board name from the qualifiers in list_boards.py
Fixes: #69329

The board name was printed as part of printing board qualifiers because
those was being concatenated in the `board_v2_qualifiers()` method.

Keep the qualifiers separated from the board name and let the caller
concatenate the strings when required.

Completion scripts are also updated to handle the corrected behaviour.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-22 12:42:49 +00:00
Torsten Rasmussen
1497104de4 unittest: update unittest to hwmv2
Follow-up: fe25709a9c twister: add unit_testing soc and board

Moving the soc.yml and board.yml to subsys/testsuite tree.
Introduce subsys/testsuite/arch/archs.yml with unit_testing arch.

Update the Zephyr CMake module unittest.cmake to include HWMv2 and
reorder includes to follow same order as zephyr_default.cmake.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-22 11:51:58 +01:00
Torsten Rasmussen
fd772f8e77 scripts: remove boards_legacy sub-folder from list_boards.py
Fixes: #69785

The boards_legacy sub-folder was temporarily introduce in collab-hwm
branch during porting to HWMv2.

This should have been removed before merging collab-hwm to main as it
prevent looking up boards in oot roots.

Removing the temporary sub-folder for HWMv2.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-22 11:51:58 +01:00
Anas Nashif
f73af06f2b twister: better help for --no-update option
Add some more details to the --no-update option.

Fixes #70173

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-22 10:24:22 +01:00
Alberto Escolar Piedras
11e9c71059 twister bsim harness: Fix for hwmv2 platfrom names
The new hwmv2 platform names have "/" and "@" in
their names, we need to replace those with "_".
Otherwise the harness will produce a FileNotFoundError
exception when trying to create the executable.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-03-22 10:23:52 +01:00
Jamie McCrae
a43029418c scripts: kconfig: Add substring function
Adds a substring function

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-03-21 20:10:46 +01:00
Torsten Rasmussen
732c504e4c terminology: adopt CMake, python, and Kconfig code to use qualifiers
Followup: #69905

Adopting new board terminology for CMake, python, and Kconfig code to
use qualifiers instead of identifiers.

Also adjusted to board target where applicable.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-21 15:32:17 +01:00
Piotr Kosycarz
c3b96ffbab scripts: twister: handlers: pass dev-id for nrfutil
Needed to distinguish boards.

Signed-off-by: Piotr Kosycarz <piotr.kosycarz@nordicsemi.no>
2024-03-20 16:52:39 +00:00
Ederson de Souza
67bb6db3f8 syscall: Export all emitted syscalls, enabling them for extensions
Linkable loadable extensions can only use syscalls if they are exported
via EXPORT_SYSCALL (or EXPORT_SYMBOL). Instead of enabling used syscalls
one by one, this patch exports all of them automatically via
`gen_syscalls.py`. If CONFIG_LLEXT=n, the section where the exported
symbols live is discarded, so it should be a non-op when llext is not
enabled.

This patch also removes the now redundant EXPORT_SYSCALL macro. Note
that EXPORT_SYMBOL is still useful on different situations (and is
indeed used by the code generated by `gen_syscalls.py`).

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2024-03-20 16:26:54 +00:00
Alberto Escolar Piedras
f532937e92 tests|scripts/net: Change native_posix references to native_sim
* As we are replacing native_posix with native_sim, let's
  refer to native_sim instead of native_posix in the comments
  of why we have 1 extra interface.

* scripts/net/run-sample-tests.sh builds for native_sim now,
  not native_posix => let's fix it

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-03-20 15:43:05 +01:00
Gerard Marull-Paretas
78706dffdb scripts: west_commands: runners: nrf_common: update nRF54H support
nRF54H can only be flashed using nrfutil now, so some workaround present
in the nrf_common module are no longer needed, e.g. UICR erasing.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-03-20 11:35:47 +01:00
Gerard Marull-Paretas
acc0a43fb9 scripts: west_commands: runners: nrfutil: provide live feedback
nrfutil runner uses the batch-mode, so no live feedback is provided to
the user. However, batch-mode reports batch progress containing
human-readable strings of the operation being done. This patch changes
the _exec() implementation to parse the subprocess output in real-time,
logging to info the 'batch_update' reports. Note that only the first
batch update of a sequence (percentage = 0) is logged because first,
percentage resolution seems to be pretty bad, and, because logging
messages cannot be easily _appended_.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-03-20 11:35:47 +01:00
Gerard Marull-Paretas
0387214bfc scripts: west_commands: runners: nrfutil: use x-execute-batch
execute-batch is now named x-execute-batch, as it is an experimental
option.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-03-20 11:35:47 +01:00
Gerard Marull-Paretas
7bea89ac44 scripts: west_commands: runners: nrfjprog: drop nRF54H support
nRF54Hx series is no longer supported in nrfjprog. nrfutil is now
required.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-03-20 11:35:47 +01:00
Torsten Rasmussen
c531e4c2ac scripts: test for imported ELFFile instead of setting it to None
mypy fails with:
Incompatible types in assignment
        (expression has type "None", variable has type "Type[ELFFile]")

this happens because of the code:
    try:
        from elftools.elf.elffile import ELFFile
    except ImportError:
        ELFFile = None

ELFFile is set to None to allow later code to check if ELFFile was
imported by checking against None. Instead of setting ELFFile to None,
then update testing code to check if the class has been loaded, as:
    if globals().get('ELFFile') is None:

Update the try-catch to `pass`.

Removed ELFFile cargo cult from intel_cyclonev.py and fix pylint
warnings.

Disable duplicate code check. The intel_cyclonev.py is already based
upon openocd.py, so although the duplication detection is correct then
this should not prevent other code changes / fixes to those files from
being applied.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-20 09:59:27 +01:00
Hake Huang
decf714f7a twister: add linkserver support with hardwaremap
in hardwaremap the dev-id is used to select debug probe
and linkserver accept the --probe. so and this support

Signed-off-by: Hake Huang <hake.huang@oss.nxp.com>
2024-03-19 21:13:08 -05:00
Anas Nashif
313d135cb2 twister: do not use non-existing architectures
Do not use non-existing architectures, we now have an enum in the
schema.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-19 18:28:06 -04:00
Alberto Escolar Piedras
a4b0e8a706 twister tests: Let's use native_sim instead of native_posix
native_posix is being replaced with native_sim, let's
use native_sim instead in twister tests.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-03-19 13:15:48 -05:00
Filip Kokosinski
053e5f93ac twister: use enum for the arch field in Twister platform schema
This commit adds an enum to the `arch` field of the Twister platform
schema. This helps better filter boards for testcases which use
architecture-based filters, and helps maintain uniformity in naming
convetion.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
2024-03-19 07:55:58 -04:00
Maciej Perkowski
5af2140927 twister: Use proper warnings-to-errors command for sysbuild
If sysbuild is used a flag SB_CONFIG_COMPILER_WARNINGS_AS_ERRORS
has to be used in order to turn warings to errors on all images.
Align pytest tests with the change.

Fixes: #67360

Signed-off-by: Maciej Perkowski <Maciej.Perkowski@nordicsemi.no>
2024-03-18 15:41:53 +01:00
Glenn Andrews
bc55924004 twister: qemu: Fix device tests skipped when QEMU not installed
https://github.com/zephyrproject-rtos/zephyr/pull/67595
introduces a bug where if QEMU_BIN_PATH is not set on a Windows
PC, on-device tests are skipped. This fixes that issue.

Signed-off-by: Glenn Andrews <glenn.andrews.42@gmail.com>
2024-03-15 06:29:05 -04:00
Marc Herbert
251f52cbce list_hardware.py: sort rglob(SOC_YML) HWMv2 results
This makes .config, autoconf.h, and configs.c deterministic again.

Directory listing is not deterministic, it must always be sorted.
https://reproducible-builds.org/docs/stable-inputs/

Fixes commit 61bbfb5ba25f ("scripts: introduce list_hardware.py for
listing of architectures and SoCs") in collab-hwm branch which was
squashed in mega HWMv2 commit 8dc3f85622 ("hwmv2: Introduce Hardware
model version 2 and convert devices")

SOF CI builds with both Windows and Linux and compares the outputs. This
catches practically 100% of build reproducibility issues and caught this
one too:

 https://github.com/thesofproject/sof/actions/runs/8241692987/job/22539664560

HWMv2 was a "big bang" integration on both the Zephyr and SOF sides. So
this `rglob()` was a needle in a haystack but with hindsight, this issue
is really trivial to reproduce and verify:

```
apt-get install disorderfs
mkdir disorderedWorkspace/
disorderfs --shuffle-dirents=yes  workspace/ disorderedWorkspace/
```

... then just build `samples/hello_world/` twice in disorderedWorkspace/
with any --board and compare the build directories.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-03-13 11:16:21 +00:00
Kamil Paszkiet
c63ad6c915 scripts: tests: Blackbox test expansion - coverage
Adds tests related to coverage flags:
--coverage-tool
--coverage-basedir
--coverage-formats

Move to coverage.py:
--coverage
--enable-coverage

Signed-off-by: Kamil Paszkiet <kamilx.paszkiet@intel.com>
2024-03-13 11:09:59 +00:00
Anas Nashif
35176b993d twister: fix exception message
'Handling of handler...' is a bit weird to read.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-13 08:39:37 +01:00
Anas Nashif
dbc3246723 tests: twister: use assert_called_with for multiple calls
Do not use assert_called_once_with, we can some functions more than once
and test should not prevent that.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-13 08:39:37 +01:00
Anas Nashif
6eb3c2e4c1 twister: harness: match exact charachters when we detect tests
Avoid detecting garbage.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-13 08:39:37 +01:00
Anas Nashif
233b2e1100 twister: handler: update missing status of failed tests
Some tests report no status even without timeout, so address this case
as well.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-13 08:39:37 +01:00
Anas Nashif
be60134421 west: add native_sim flash, debugserver command
Add 'west flash' support which in the case of native_sim just start the
built application.
Reuse existing runner and rename it to be more generic as it does more
than just debugging now.

Also add debugserver command.

Fixes #36706

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-12 12:57:18 -04:00
Patryk Kuniecki
a10b842991 scripts: tests: twister_blackbox: Add test test_verbose.py
Add new test to twister blackbox tests

Signed-off-by: Patryk Kuniecki <patryk.kuniecki@intel.com>
2024-03-11 21:11:17 -05:00
Lukasz Mrugala
36c12482c6 scripts: tests: --package-artifacts fix, blackbox tests
Requirements added for bz2.
Blackbox test for --package-artifacts added.
package.py no longer includes twister-out no matter the outdir.

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-11 16:12:55 -04:00
Jamie McCrae
b680a6ec72 scripts: snippets: Fix path output on windows
Fixes an issue with paths being output in windows-style with back
slashes, this causes issues for certain escape sequences when
cmake interprets them. Replace these paths with posix paths so
that they are not treated as possible escape sequences.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2024-03-11 07:57:14 -04:00
Benjamin Cabé
cb26820c51 hwmv2: scripts: handle Kconfig sources in a Windows compatible way
Move away from os.join.path and only rely on pathlib magic, and serialize
all paths using POSIX path separators.
This fixes documentation build and compliance check script on Windows.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-03-08 15:19:04 +00:00
Lyle Zhu
40cf23daff Bluetooth: Rename BT_BREDR to BT_CLASSIC
Rename BT_BREDR to BT_CLASSIC
Rename CONFIG_BT_BREDR to CONFIG_BT_CLASSIC

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2024-03-07 11:26:45 +02:00
Anas Nashif
e10665531f spelling: add enabeld typo
add typo of enabeld.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-06 19:27:28 -05:00
Armin Brauns
99fd397147 scripts/check_compliance: pass --no-ext-diff to git diff
If $GIT_EXTERNAL_DIFF is set, this difftool is used instead of the default
internal unified diff, which breaks the Checkpatch check.

Signed-off-by: Armin Brauns <armin.brauns@embedded-solutions.at>
2024-03-06 14:34:22 +01:00
Anas Nashif
961b83a431 twister: normalize platform name when packaging
When creating a package, normalize platform names.

Fixes #69793

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-06 09:28:31 +01:00
Lukasz Mrugala
621b621007 script: tests: Blackbox test expansion - report
Adds tests related to report flags:
*     --enable-size-report
*     --detailed-skipped-report

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:58:12 +01:00
Lukasz Mrugala
dc68b11432 scripts: tests: Blackbox test expansion - testlist
Adds tests related to the flags creating testlists:
* -E, --save-tests
* -F, --load-tests

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:57:25 +01:00
Lukasz Mrugala
8b1ef285cb scripts: tests: Move --quarantine-list test to test_quarantine.py
Brings the previously-created --quarantine-list test
to its test section file.

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:57:09 +01:00
Lukasz Mrugala
6ae873d4c2 scripts: tests: Blackbox test expansion - quarantine
Adds tests related to the quarantine flags:
*     --quarantine-verify

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:57:09 +01:00
Lukasz Mrugala
c0d6e9f29b scripts: tests: Blackbox test expansion - printouts
Adds tests related to the flags
creating alternate printouts instead of
running Twister tests:
* -z, --size

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:56:53 +01:00
Lukasz Mrugala
93a377e674 scripts: tests: Blackbox test expansion - outfile
Adds tests related to the changing of the output files:
* -c, --clobber-output
* -n, --no-clean
* -M, --runtime-artifact-cleanup
*     --short-build-path
*     --prep-artifacts-for-testing

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:56:04 +01:00
Lukasz Mrugala
600c4d8a45 scripts: tests: Blackbox test expansion - filter
Adds tests related to the flags
that filter the tests:
* -e, --exclude-tag
* -S, --enable-slow
*     --enable-slow-only

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:55:27 +01:00
Lukasz Mrugala
32f4c17374 scripts: tests: Blackbox test expansion - output
Adds tests related to the flags
that change the console outputs:
*     --detailed-test-ids
*     --no-detailed-test-ids
* -i, --inline-logs

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 15:54:13 +01:00
Michal Smola
3bf61528cc twister: qemu: add QEMU support on Windows in twister
Twister does not support running tests on QEMU on Windows.
Add a new twister handler called QEMUWinHandler which supports running
tests on Windows. Enable running tests in testinstance, only if
QEMU_BIN_PATH environment variable exists on Windows.
Modify pytest test for testinstance to reflect the change in
runnability of QEMU on Windows.
Tested by running several Ztest and console harness tests.

Signed-off-by: Michal Smola <michal.smola@nxp.com>
2024-03-05 08:20:49 -05:00
Arkadiusz Cholewinski
0e2a25b066 ci: coverage: add coverage analysis reports
Extend codecov workflow to include coverage analysis.

Signed-off-by: Arkadiusz Cholewinski <arkadiuszx.cholewinski@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-03-05 08:03:51 -05:00
Lukasz Mrugala
0db5d5194a scripts: tests: Blackbox test expansion - footprint
Adds tests related to report flags:
*     --compare-report
* -m, --last-metrics
* -D, --all-deltas
*     --footprint-threshold
*     --show-footprint
*     --footprint-from-buildlog

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 07:45:39 -05:00
Lukasz Mrugala
9d8600136d scripts: tests: Move blackbox config tests to test_config.py
Moved tests related to the test_config.yaml files to test_config.py.
* test_level

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 07:44:51 -05:00
Lukasz Mrugala
a815f70177 scripts: tests: Blackbox test expansion - config
Adds tests related to the flags concerned with config files:
*     --alt-config-root

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 07:44:51 -05:00
Lukasz Mrugala
b583f3ad4b scripts: tests: Blackbox test expansion - shuffle
Adds tests related to the shuffling of the tests:
* -B, --subset
*     --shuffle-tests
*     --shuffle-tests-seed

Signed-off-by: Lukasz Mrugala <lukaszx.mrugala@intel.com>
2024-03-05 07:44:06 -05:00