Skip to content

twister: sysbuild: Bluetooth: build harness apps with sysbuild for multiple boards testing #87980

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

JingsaiLu
Copy link
Contributor

@JingsaiLu JingsaiLu commented Apr 1, 2025

continue to promote this proposal, #83643
and accept all the comments in the v1 implementation, #83641

in this PR,

  • build harness apps with sysbuild
  • add one optional app_type for each image in domains.yaml (west flash will be able to flash the harness image into different boards with this flag)
  • add one sample for samples/bluetooth/central_ht, which is usually tested with samples/bluetooth/peripheral_ht on HW boards

Test on both west and twister commands on different platforms (frdm_mcxw71 and qemu_cortex_m3)

  • west build -p always -b frdm_mcxw71 samples/bluetooth/central_ht --sysbuild -DSB_CONFIG_HARNESS_APPS='"samples/bluetooth/peripheral_ht"'
  • west twister --platform qemu_cortex_m3 -T samples/bluetooth/central_ht

image

image

@JingsaiLu JingsaiLu force-pushed the feature/harness_build_v2 branch 4 times, most recently from d970729 to 7eb3f8e Compare April 2, 2025 09:39
…S_APPS

add on kconfig option, SB_CONFIG_HARNESS_APPS for sysbuild
to config harness app list,
iterate each harness app to build with ExternalZephyrProject_Add

Signed-off-by: Jingsai Lu <jingsai.lu@nxp.com>
west flash will be able to read this APP_TYPE info and then
flash the image into different boards for multiple devices testing

Signed-off-by: Jingsai Lu <jingsai.lu@nxp.com>
@JingsaiLu JingsaiLu force-pushed the feature/harness_build_v2 branch from 7eb3f8e to 9e46f48 Compare April 3, 2025 08:27
@nordicjm
Copy link
Contributor

nordicjm commented Apr 3, 2025

Whilst the ability to flash multiple boards for tests is a good idea, this really isn't how sysbuild is designed, it is designed for building multiple images for one project on one board. So for example you can have your main image and a bootloader, now how is this going to work if you build for 2 different boards? Or if you enable a bootloader in the build? This will completely fall apart

@JingsaiLu
Copy link
Contributor Author

Whilst the ability to flash multiple boards for tests is a good idea, this really isn't how sysbuild is designed, it is designed for building multiple images for one project on one board. So for example you can have your main image and a bootloader, now how is this going to work if you build for 2 different boards? Or if you enable a bootloader in the build? This will completely fall apart

hi @nordicjm , happy to know you also recognized this requirement, :)
for your questions,
I want to make this harness solution for tests as simple as possible,
so I suppose the DuT and harness devices will be the same boards, even if I see the sysbuild could config the different boards and bootloader apps.

and yes, I am also feeling that the sysbuild seems to be designed for multi-applications for one board,

may need to discuss more, as @PerMac commented in #83643 (comment)

@tejlmand
Copy link
Contributor

and yes, I am also feeling that the sysbuild seems to be designed for multi-applications for one board,

Sysbuild itself was intended to be just the foundation from where we could extend.
First and most important part was to support build multiple images for a single board (SoC) and flash this, but the foundation should not prevent us from extending sysbuild to cover more complete systems.
From sysbuild perspective there is little difference between a board with multiple SoCs, and then multiple boards, each with single SoC, although it does require sysbuild itself to be extended when someone has the time.

Ref: #40555 (comment)

Copy link

This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time.

@github-actions github-actions bot added the Stale label Jul 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants