diff mbox series

utils/test-pkg: add new option -T/--toolchain-name

Message ID 20250508142356.91867-1-titouan.christophe@mind.be
State New
Headers show
Series utils/test-pkg: add new option -T/--toolchain-name | expand

Commit Message

Titouan Christophe May 8, 2025, 2:23 p.m. UTC
Recently when trying to reproduce a build error with test-pkg on the toolchain
br-arm-basic, I had to create a new CSV file with that toolchain only to be
able to run the test in that single case.

I believe having a command-line option right away in test-pkg would make this
much easier, as I can now run: `./utils/test-pkg -T br-arm-basic -p redis`

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 utils/test-pkg | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/utils/test-pkg b/utils/test-pkg
index 19d8713d6a..6f1b33a45d 100755
--- a/utils/test-pkg
+++ b/utils/test-pkg
@@ -17,8 +17,8 @@  main() {
     local -a toolchains
     local pkg_br_name
 
-    o='hakc:d:n:p:r:t:'
-    O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
+    o='hakc:d:n:p:r:t:T:'
+    O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:,toolchain-name:'
     opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")"
     eval set -- "${opts}"
 
@@ -61,6 +61,9 @@  main() {
         (-t|--toolchains-csv)
             toolchains_csv="${2}"; shift 2
             ;;
+        (-T|--toolchain-name)
+            toolchain_name="${2}"; shift 2
+            ;;
         (--)
             shift; break
             ;;
@@ -107,7 +110,9 @@  main() {
     # E.g.: http://server/path/to/name.config,arch,libc
     #  -->  http://server/path/to/name.config
     mapfile -t toolchains < <(sed -r -e 's/,.*//; /internal/d; /^#/d; /^$/d;' "${toolchains_csv}" \
-                                | if [ "${random}" -gt 0 ]; then \
+                                | if [ -n "${toolchain_name}" ]; then \
+                                    grep -E "[/^]${toolchain_name}.config"
+                                elif [ "${random}" -gt 0 ]; then \
                                     sort -R | head -n "${random}"
                                 elif [ "${number}" -gt 0 ]; then \
                                     head -n "${number}"
@@ -278,6 +283,12 @@  Options:
         try. If not specified, the toolchains in ${TOOLCHAINS_CSV} will be
         used.
 
+    -T NAME, --toolchain-name NAME
+        Name of the single toolchain to use. It must be defined in the CSV
+        list of toolchains (see also -t / --toolchains-csv). If this option
+        is specified, then a single build will be performed on that
+        specific toolchain only.
+
     -k, --keep
         Keep the build directories even if the build succeeds.
         Note: the logfile and configuration is always retained, even without