[OE-core] [PATCH v2 2/2] parallel-oe-selftest.sh: runs oe-selftest in parallel
Andre McCurdy
armccurdy at gmail.com
Mon Dec 18 20:26:32 UTC 2017
On Mon, Dec 18, 2017 at 9:43 AM,
<leonardo.sandoval.gonzalez at linux.intel.com> wrote:
> From: Leonardo Sandoval <leonardo.sandoval.gonzalez at linux.intel.com>
>
> Parallelize oe-selftest execution using GNU/Parallel: for each test
> defined, a job will be launched and at any time at maximun of jobs will
Typo.
> be executing (defaults to 4).
>
> 1. Run all modules
>
> parallel-oe-selftest.sh
>
> 2. Run certaing modules and print results in order (see parallel man page for
Typo.
> more info)
>
> parallel-oe-selftest.sh wic bblayers
>
> Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez at linux.intel.com>
> ---
> scripts/contrib/parallel-oe-selftest.sh | 80 +++++++++++++++++++++++++++++++++
> 1 file changed, 80 insertions(+)
> create mode 100755 scripts/contrib/parallel-oe-selftest.sh
>
> diff --git a/scripts/contrib/parallel-oe-selftest.sh b/scripts/contrib/parallel-oe-selftest.sh
> new file mode 100755
> index 0000000000..b2690f34fd
> --- /dev/null
> +++ b/scripts/contrib/parallel-oe-selftest.sh
> @@ -0,0 +1,80 @@
> +#!/bin/sh
> +
> +# paralell-oe-selftest: executes oe-selftest in 'parallel'. The tests (modules, clases or test methods, same
Two typos.
> +# as oe-selftest --run-tests) to be executed can be piped to this script; if this is not the case, all modules
> +# are executed
> +#
> +# Copyright (c) 2013-2017 Intel Corporation
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License version 2 as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License along
> +# with this program; if not, write to the Free Software Foundation, Inc.,
> +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +#
> +
> +# Before anything else, check oe-core environment
> +if [ -z "$BUILDDIR" ]; then
> + echo "Please initialize the OE-Core environment through oe-init-build-env script"
> + exit 1
> +fi
> +
> +usage() {
> +CMD=$(basename $0)
> +cat <<EOM
> +Usage: $CMD [-h] [-j jobs] [test1 test2 ..]
> + -j jobs Number of jobs to be running concurrently
> + -h Display this help message
> +
> + Examples:
> + # run all found testcases
> + $CMD
> +
> + # just run wic and bblayers
> + $CMD wic bblayers
> +
> +EOM
> +}
> +
> +JOBS=4
> +# Parse and validate arguments
> +while getopts "hj:" OPT; do
> + case $OPT in
> + j)
> + JOBS="$OPTARG"
> + ;;
> + h)
> + usage
> + exit 0
> + ;;
> + --)
> + shift
> + break
> + ;;
> + esac
> +done
> +
> +
> +shift "$((OPTIND - 1))"
> +TESTCASES="$@"
> +
> +# Parallelization is done through GNU/Paralell, so it must be present in host machine
Typo.
> +which parallel 2>&1 >/dev/null || { echo "Please install GNU/Parallel"; exit 1; }
> +
> +# no test cases given, running all found
> +if [ -z "$TESTCASES" ]; then
> + TESTCASES="$(oe-selftest -m | awk '{ print $NF } ' | grep -v ':')"
> +fi
> +
> +if [ -z "$TESTCASES" ]; then
> + echo $TESTCASES | time parallel --keep-order --progress --jobs $JOBS oe-selftest -r
Since $TESTCASES is an empty variable here, why echo it?
> +else
> + time parallel -d ' ' --keep-order --progress --jobs $JOBS oe-selftest -r ::: $TESTCASES
> +fi
> --
> 2.12.3
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list