SCRIPT: run-regtests: avoid calling awk to compute the version
For each test, the version number is evaluated using a call to awk, which can be slow to start depending on the versions and OS. This is only needed for a printf() call to keep only leading digits of each component, multiply them by 1000 and pad them to 3 digits, something that's clearly doable in plain shell in a portable way. This is what this patch does, and it saves yet another 400 ms here on the full test sequence.
This commit is contained in:
parent
0b3eb81c6b
commit
b7a28e7bc8
@ -301,8 +301,13 @@ _process() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# compute a version from up to 4 sub-version components, each multiplied
|
||||||
|
# by a power of 1000, and padded left with 0, 1 or 2 zeroes.
|
||||||
_version() {
|
_version() {
|
||||||
echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\012", $1,$2,$3,$4); }';
|
OLDIFS="$IFS"; IFS="."; set -- $*; IFS="$OLDIFS"
|
||||||
|
set -- ${1%%[!0-9]*} 000${2%%[!0-9]*} 000${3%%[!0-9]*} 000${4%%[!0-9]*}
|
||||||
|
prf2=${2%???}; prf3=${3%???}; prf4=${4%???}
|
||||||
|
echo ${1}${2#$prf2}${3#$prf3}${4#$prf4}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user