support/test-pkg: add option to limit the number of tests

Sometimes, it interesting to have a global overview of whether the
package builds at all or not, rather than test on all toolchains.

Add an option that allows testing on a limited set of randomly choosen
toolchains.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Luca Ceresoli <luca@lucaceresoli.net>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Yann E. MORIN 2017-02-08 21:15:27 +01:00 committed by Thomas Petazzoni
parent d5c58ceec2
commit 9e7885d5f7

View File

@ -5,14 +5,15 @@ TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-conf
main() { main() {
local o O opts local o O opts
local cfg dir pkg toolchain local cfg dir pkg random toolchain
local -a toolchains local -a toolchains
o='hc:d:p:' o='hc:d:p:r:'
O='help,config-snippet:build-dir:package:' O='help,config-snippet:build-dir:package:,random:'
opts="$( getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}" )" opts="$( getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}" )"
eval set -- "${opts}" eval set -- "${opts}"
random=0
while [ ${#} -gt 0 ]; do while [ ${#} -gt 0 ]; do
case "${1}" in case "${1}" in
(-h|--help) (-h|--help)
@ -27,6 +28,9 @@ main() {
(-p|--package) (-p|--package)
pkg="${2}"; shift 2 pkg="${2}"; shift 2
;; ;;
(-r|--random)
random="${2}"; shift 2
;;
(--) (--)
shift; break shift; break
;; ;;
@ -43,7 +47,12 @@ main() {
# E.g.: http://server/path/to/name.config,arch,libc # E.g.: http://server/path/to/name.config,arch,libc
# --> http://server/path/to/name.config # --> http://server/path/to/name.config
toolchains=( $( curl -s "${TOOLCHAINS_URL}" \ toolchains=( $( curl -s "${TOOLCHAINS_URL}" \
|sed -r -e 's/,.*//; /internal/d;' |sed -r -e 's/,.*//; /internal/d;' \
|if [ ${random} -gt 0 ]; then \
sort -R |head -n ${random}
else
cat
fi |sort
) )
) )
@ -159,6 +168,10 @@ Options:
Test-build the package PKG, by running 'make PKG'; if not specified, Test-build the package PKG, by running 'make PKG'; if not specified,
just runs 'make'. just runs 'make'.
-r N, --random N
Limit the tests to the N randomly selected toolchains, instead of
building with all toolchains.
Example: Example:
Testing libcec would require a config snippet that contains: Testing libcec would require a config snippet that contains: