[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