Felix Singer has submitted this change. ( https://review.coreboot.org/c/flashrom/+/66475 )
Change subject: test_build.sh: Build all programmers individually using Meson ......................................................................
test_build.sh: Build all programmers individually using Meson
The test build script already builds each programmer individually when Make is used. To check if the Meson build system is working properly, build each programmer individually and in addition to that build-test the programmer groups individually.
Builds are done in the directory `out`, while for each build a new subdirectory with the name of the programmer option is created.
Also, return when scan-build is used and the group `all` isn't selected, since it's not needed to run scan-build in combination with the other options.
Signed-off-by: Felix Singer felixsinger@posteo.net Change-Id: I703127a2dc31d316d3d1c842b5bcb0b22c39c0d4 Reviewed-on: https://review.coreboot.org/c/flashrom/+/66475 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Anastasia Klimchuk aklm@chromium.org Reviewed-by: Angel Pons th3fanbus@gmail.com Reviewed-by: Patrick Georgi patrick@coreboot.org --- M test_build.sh 1 file changed, 50 insertions(+), 3 deletions(-)
Approvals: build bot (Jenkins): Verified Patrick Georgi: Looks good to me, approved Angel Pons: Looks good to me, but someone else must approve Anastasia Klimchuk: Looks good to me, but someone else must approve
diff --git a/test_build.sh b/test_build.sh index 8f48ba1..2ca8de5 100755 --- a/test_build.sh +++ b/test_build.sh @@ -12,6 +12,14 @@ BUSPIRATE_SPI DEDIPROG DEVELOPERBOX_SPI SATAMV LINUX_MTD LINUX_SPI IT8212 \ CH341A_SPI DIGILENT_SPI JLINK_SPI"
+meson_programmer_opts="all auto group_ftdi group_i2c group_jlink group_pci group_serial group_usb \ + atahpt atapromise atavia buspirate_spi ch341a_spi dediprog developerbox_spi \ + digilent_spi drkaiser dummy ft2232_spi gfxnvidia internal it8212 \ + jlink_spi linux_mtd linux_spi parade_lspcon mediatek_i2c_spi mstarddc_spi \ + nic3com nicintel nicintel_eeprom nicintel_spi nicnatsemi nicrealtek \ + ogp_spi pickit2_spi pony_spi raiden_debug_spi rayer_spi realtek_mst_i2c_spi \ + satamv satasii serprog stlinkv3_spi usbblaster_spi" +
if [ "$(basename "${CC}")" = "ccc-analyzer" ] || [ -n "${COVERITY_OUTPUT}" ]; then is_scan_build_env=1 @@ -38,12 +46,24 @@
build_meson () { build_dir=out + meson_opts="-Dtests=enabled" + ninja_opts="-j $(nproc)"
rm -rf ${build_dir}
- meson $build_dir -Dtests=enabled - ninja -C $build_dir - ninja -C $build_dir test + for programmer in ${meson_programmer_opts}; do + programmer_dir="${build_dir}/${programmer}" + + # In case of clang analyzer we don't want to run it on + # each programmer individually. Thus, just return here. + if [ ${is_scan_build_env} -eq 1 ] && [ "${programmer}" != "all" ]; then + return + fi + + meson ${programmer_dir} ${meson_opts} -Dprogrammer=${programmer} + ninja ${ninja_opts} -C ${programmer_dir} + ninja ${ninja_opts} -C ${programmer_dir} test + done }