ptest-runner: Allow running of specific tests

By default ptest-runner executes all ptests found in a system.
With this change, ptest-runner can be given a list of ptest
package names to run (the default is still available).

For example, to run only the zlib and rt-tests ptests:
"ptest-runner zlib rt-tests"

(From OE-Core rev: a13333c3e9ab601a11c10aba2a0a55c7fdea2e24)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ioan-Adrian Ratiu
2015-10-30 16:49:54 +02:00
committed by Richard Purdie
parent 54325b298b
commit 54df911748

55
meta/recipes-support/ptest-runner/files/ptest-runner Normal file → Executable file
View File

@@ -1,26 +1,53 @@
#!/bin/sh
ANYFAILED=no
echo "START: $0"
for libdir in /usr/lib*
do
[ ! -d "$libdir" ] && continue
for x in `ls -d $libdir/*/ptest 2>/dev/null`
determine_ptests_to_run()
{
for libdir in /usr/lib*
do
[ ! -f $x/run-ptest ] && continue
[ -h `dirname $x` ] && continue
[ ! -d "$libdir" ] && continue
for x in `ls -d $libdir/*/ptest 2>/dev/null`
do
[ ! -f $x/run-ptest ] && continue
[ -h `dirname $x` ] && continue
#found a ptest in the system
PTEST_FOUND=$(basename $(dirname $x))
# when no pkg-names were specified, by default run each one
if [[ -z $@ ]]; then
printf " $x"
else
#check if this ptest has been asked for and add it
if [[ $@ =~ $PTEST_FOUND ]]; then
printf " $x"
fi
fi
done
done
}
run_ptests()
{
ANYFAILED=no
#the paths were sanity-checked in determine_ptests_to_run()
for ptst_path in $PTESTS_TO_RUN
do
date "+%Y-%m-%dT%H:%M"
echo "BEGIN: $x"
cd "$x"
echo "BEGIN: $ptst_path"
cd "$ptst_path"
./run-ptest || ANYFAILED=yes
echo "END: $x"
echo "END: $ptest_path"
date "+%Y-%m-%dT%H:%M"
done
done
}
echo "START: $0"
PTESTS_TO_RUN=$(determine_ptests_to_run $@)
run_ptests
echo "STOP: $0"
if [ "$ANYFAILED" = "yes" ]; then
exit 1
fi