Skip to contentSkip to conversation

utils/test-pkg: fix long option parsing

PATCH Superseded Thomas De Schampheleire 1 participant 3 messages Feb 5, 2019

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 utils/test-pkg: fix long option parsing

From: Thomas De Schampheleire <[email protected]>

The long option parsing of test-pkg is broken because:
- some long options are not declared
- there should be a comma between long options, the colon does not replace it.

This change also revealed that the declaration of 'toolchains-dir' should have been 'toolchains-csv', originally introduced in commit ed59f81a3cb4ddb.

---
 utils/test-pkg | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

v2: new patch

utils/test-pkg +2 -2
index 1995fa8578..087f9ddca9 100755
@@ -5,12 +5,12 @@ TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
 
 main() {
     local o O opts
-    local cfg dir pkg random toolchains_dir toolchain all number mode
+    local cfg dir pkg random toolchains_csv toolchain all number mode
     local ret nb nb_skip nb_fail nb_legal nb_tc build_dir
     local -a toolchains
 
     o='hac:d:n:p:r:t:'
-    O='help,config-snippet:build-dir:package:,random:,toolchains-dir:'
+    O='help,all,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
     opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")"
     eval set -- "${opts}"
 
Signature · 1 line
2.19.2
#1 lore raw

PATCH v2 2/2 utils/test-pkg: clean output dir for successful builds

From: Thomas De Schampheleire <[email protected]>

test-pkg will use gigabytes of space when testing all toolchains. Nevertheless, you are normally only interested in the actual build / host tree when there is a build failure.

Do a 'make clean' for successful builds to save disk space, unless the new option '-k/--keep' is set.
Note that the logfile and configuration is always retained for inspection.

---
 utils/test-pkg | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

v2: make the feature optional via '--keep' (feedback Arnout and Peter)

utils/test-pkg +13 -3
index 087f9ddca9..ef865c80fe 100755
@@ -6,16 +6,17 @@ TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
 main() {
     local o O opts
     local cfg dir pkg random toolchains_csv toolchain all number mode
-    local ret nb nb_skip nb_fail nb_legal nb_tc build_dir
+    local ret nb nb_skip nb_fail nb_legal nb_tc build_dir keep
     local -a toolchains
 
-    o='hac:d:n:p:r:t:'
-    O='help,all,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
+    o='hakc:d:n:p:r:t:'
+    O='help,all,keep,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
     opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")"
     eval set -- "${opts}"
 
     random=0
     all=0
+    keep=0
     number=0
     mode=0
     toolchains_csv="${TOOLCHAINS_CSV}"
@@ -27,6 +28,9 @@ main() {
         (-a|--all)
             all=1; shift 1
             ;;
+        (-k|--keep)
+            keep=1; shift 1
+            ;;
         (-c|--config-snippet)
             cfg="${2}"; shift 2
             ;;
@@ -161,6 +165,12 @@ build_one() {
     if ! make O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then
         return 3
     fi
+
+    # If we get here, the build was successful. Clean up the build/host
+    # directories to save disk space, unless 'keep' was set.
+    if [ ${keep} -ne 1 ]; then
+        make O="${dir}" clean >> "${dir}/logfile" 2>&1
+    fi
 }
 
 help() {
Signature · 1 line
2.19.2
#2 lore raw

PATCH v2 2/2 utils/test-pkg: clean output dir for successful builds

El mar., 5 feb. 2019 a las 21:10, Thomas De Schampheleire (<[email protected]>) escribi?:

Quoted 55 lines

From: Thomas De Schampheleire <[email protected]>

test-pkg will use gigabytes of space when testing all toolchains. Nevertheless, you are normally only interested in the actual build / host tree when there is a build failure.

Do a 'make clean' for successful builds to save disk space, unless the new option '-k/--keep' is set.
Note that the logfile and configuration is always retained for inspection.

---
 utils/test-pkg | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

v2: make the feature optional via '--keep' (feedback Arnout and Peter)

utils/test-pkg +7 -3
index 087f9ddca9..ef865c80fe 100755
@@ -6,16 +6,17 @@ TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
 main() {
     local o O opts
     local cfg dir pkg random toolchains_csv toolchain all number mode
-    local ret nb nb_skip nb_fail nb_legal nb_tc build_dir
+    local ret nb nb_skip nb_fail nb_legal nb_tc build_dir keep
     local -a toolchains
 
-    o='hac:d:n:p:r:t:'
-    O='help,all,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
+    o='hakc:d:n:p:r:t:'
+    O='help,all,keep,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:'
     opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")"
     eval set -- "${opts}"
 
     random=0
     all=0
+    keep=0
     number=0
     mode=0
     toolchains_csv="${TOOLCHAINS_CSV}"
@@ -27,6 +28,9 @@ main() {
         (-a|--all)
             all=1; shift 1
             ;;
+        (-k|--keep)
+            keep=1; shift 1
+            ;;
         (-c|--config-snippet)
             cfg="${2}"; shift 2
             ;;

utils/test-pkg build_one() { · line 173

Quoted 9 lines
utils/test-pkg +6 -0
@@ -161,6 +165,12 @@ build_one() {
     if ! make O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then
         return 3
     fi
+
+    # If we get here, the build was successful. Clean up the build/host
+    # directories to save disk space, unless 'keep' was set.
+    if [ ${keep} -ne 1 ]; then
+        make O="${dir}" clean >> "${dir}/logfile" 2>&1
+    fi

Grmbl, I forgot to update the help text...