From 687ede45a260573b92e16ecfb11df276893f1351 Mon Sep 17 00:00:00 2001 From: Naresh Kamboju Date: Tue, 30 May 2017 15:02:23 +0530 Subject: automated: linux: kselftest: Adding SKIPLIST and SKIPFILE parameters Known unsupported test cases list can be provided by using, SKIPLIST or SKIPFILE parameters which will be skipped from the run. Change-Id: I844dd6a9cded5a18bd1a21bc63320f4a3a3e7d83 Signed-off-by: Naresh Kamboju --- automated/linux/kselftest/kselftest-skipfile | 0 automated/linux/kselftest/kselftest.sh | 44 ++++++++++++++++++++++++++-- automated/linux/kselftest/kselftest.yaml | 8 ++++- 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 automated/linux/kselftest/kselftest-skipfile (limited to 'automated/linux/kselftest') diff --git a/automated/linux/kselftest/kselftest-skipfile b/automated/linux/kselftest/kselftest-skipfile new file mode 100644 index 0000000..e69de29 diff --git a/automated/linux/kselftest/kselftest.sh b/automated/linux/kselftest/kselftest.sh index 3369c46..d0c2596 100755 --- a/automated/linux/kselftest/kselftest.sh +++ b/automated/linux/kselftest/kselftest.sh @@ -8,20 +8,44 @@ RESULT_FILE="${OUTPUT}/result.txt" LOGFILE="${OUTPUT}/kselftest.txt" TESTPROG="kselftest_armhf.tar.gz" KSELFTEST_PATH="/usr/bin/kselftests" + +SCRIPT="$(readlink -f "${0}")" +SCRIPTPATH="$(dirname "${SCRIPT}")" +# List of known unsupported test cases to be skipped +SKIPFILE="" +SKIPLIST="" + if [ "$(uname -m)" = "aarch64" ] then TESTPROG="kselftest_aarch64.tar.gz" fi usage() { - echo "Usage: $0 [-t kselftest_aarch64.tar.gz | kselftest_armhf.tar.gz] [-s true|false]" 1>&2 + echo "Usage: $0 [-t kselftest_aarch64.tar.gz | kselftest_armhf.tar.gz] + [-s True|False] + [-L List of skip test cases] + [-S kselftest-skipfile]" 1>&2 exit 1 } -while getopts "t:s:h" opt; do +while getopts "t:s:L:S:h" opt; do case "${opt}" in t) TESTPROG="${OPTARG}" ;; s) SKIP_INSTALL="${OPTARG}" ;; + # List of known unsupported test cases to be skipped + L) SKIPLIST="${OPTARG}" ;; + S) + OPT=$(echo "${OPTARG}" | grep "http") + if [ -z "${OPT}" ] ; then + # kselftest skipfile + SKIPFILE="${SCRIPTPATH}/${OPTARG}" + else + # Download kselftest skipfile from speficied URL + wget "${OPTARG}" -O "skipfile" + SKIPFILE="skipfile" + SKIPFILE="${SCRIPTPATH}/${SKIPFILE}" + fi + ;; h|*) usage ;; esac done @@ -63,6 +87,22 @@ else cd "kselftest" fi +if [ -n "${SKIPLIST}" ]; then + # shellcheck disable=SC2086 + for test_name in ${SKIPLIST}; do + # shellcheck disable=SC2086 + sed -i "/.\/${test_name}/c\echo \"selftests: ${test_name} [SKIP]\"" run_kselftest.sh + done +fi + +# Ignore SKIPFILE when SKIPLIST provided +if [ -f "${SKIPFILE}" ] && [ -z "${SKIPLIST}" ]; then + while read -r test_name; do + # shellcheck disable=SC2086 + sed -i "/.\/${test_name}/c\echo \"selftests: ${test_name} [SKIP]\"" run_kselftest.sh + done < "${SKIPFILE}" +fi + # run_kselftest.sh file generated by kselftest Makefile and included in tarball ./run_kselftest.sh 2>&1 | tee "${LOGFILE}" parse_output diff --git a/automated/linux/kselftest/kselftest.yaml b/automated/linux/kselftest/kselftest.yaml index c5465c8..ba81bbd 100644 --- a/automated/linux/kselftest/kselftest.yaml +++ b/automated/linux/kselftest/kselftest.yaml @@ -20,11 +20,17 @@ params: # TESTPROG: kselftest_aarch64.tar.gz TESTPROG: kselftest_armhf.tar.gz SKIP_INSTALL: "false" + # List of known unsupported test cases to be skipped + SKIPLIST: "" + # SKIPFILE can be a filename from dir ./automated/linux/kselftest/ or an open URL + # SKIPFILE: "kselftest-skipfile" + SKIPFILE: "" + run: steps: - cd ./automated/linux/kselftest/ - - ./kselftest.sh -t "${TESTPROG}" -s "${SKIP_INSTALL}" + - ./kselftest.sh -t "${TESTPROG}" -s "${SKIP_INSTALL}" -L "${SKIPLIST}" -S "${SKIPFILE}" parse: pattern: "^selftests:\\s(?P\\S+)\\s[[](?P(FAIL|PASS|SKIP))[]]" -- cgit v1.2.3