[Buildroot] [PATCH v6 for-next 1/2] utils/test-pkg: add mode to only prepare .config files
From: Romain Naour <hidden>
Date: 2021-08-21 13:47:02
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: "Yann E. MORIN" <redacted>
Currently, running test-pkg is only done locally on the developpers
machine.
In a follow up commit, we'll add the possibility to run test-pkg in a
gitlab-ci pipeline and, to speed up things, with one job per buildable
configuration.
As such, we will need that test-pkg only ever prepares the
configuration, and that it does not build them.
Add such a mode, with a new option, --prepare-only
Signed-off-by: Yann E. MORIN <redacted>
Cc: Romain Naour <redacted>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <redacted>
Signed-off-by: Romain Naour <redacted>
---
v6: Remove terse option for --prepare-only (Arnout)
rename local variable "defer" to "prepare-only"
v5: split off from the next patch into this patch
---
utils/test-pkg | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/utils/test-pkg b/utils/test-pkg
index 54c6c5e8fe..526b95b1fb 100755
--- a/utils/test-pkg
+++ b/utils/test-pkg@@ -12,13 +12,13 @@ do_clean() { main() { local o O opts - local cfg dir pkg random toolchains_csv toolchain all number mode + local cfg dir pkg random toolchains_csv toolchain all number mode prepare_only local ret nb nb_skip nb_fail nb_legal nb_tc build_dir keep local -a toolchains local pkg_br_name o='hakc:d:n:p:r:t:' - O='help,all,keep,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:' + O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:' opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")" eval set -- "${opts}"
@@ -27,6 +27,7 @@ main() { keep=0 number=0 mode=0 + prepare_only=0 toolchains_csv="${TOOLCHAINS_CSV}" while [ ${#} -gt 0 ]; do case "${1}" in
@@ -39,6 +40,9 @@ main() { (-k|--keep) keep=1; shift 1 ;; + (--prepare-only) + prepare_only=1; shift 1 + ;; (-c|--config-snippet) cfg="${2}"; shift 2 ;;
@@ -127,7 +131,7 @@ main() { toolchain="$(basename "${toolchainconfig}" .config)" build_dir="${dir}/${toolchain}" printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc} - build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" && ret=0 || ret=${?} + build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" "${prepare_only}" && ret=0 || ret=${?} case ${ret} in (0) printf "OK\n";; (1) : $((nb_skip++)); printf "SKIPPED\n";;
@@ -147,6 +151,7 @@ build_one() { local toolchainconfig="${2}" local cfg="${3}" local pkg="${4}" + local prepare_only="${5}" mkdir -p "${dir}"
@@ -170,6 +175,11 @@ build_one() { # Remove file, it's empty anyway. rm -f "${dir}/missing.config" + # Defer building the job to the caller (e.g. a gitlab pipeline) + if [ ${prepare_only} -eq 1 ]; then + return 0 + fi + if [ -n "${pkg}" ]; then if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then return 2
@@ -257,6 +267,10 @@ Options: Note: the logfile and configuration is always retained, even without this option. + --prepare-only + Only prepare the .config files, but do not build them. Output the + list of build directories to stdout, and the status on stderr. + Example: Testing libcec would require a config snippet that contains:
--
2.31.1
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot