From 43e8074e505ec17713682bf6f0b87da8311e9ec9 Mon Sep 17 00:00:00 2001 From: Naresh Kamboju Date: Wed, 18 Jan 2017 15:51:02 +0530 Subject: automated: Improve ltp testcase run LTP test definitions improved to support non package manager distributions. pipe0_status () function being used for runltp and get return status. Stop adding total number of test cases in LAVA results summary. Fixed shellcheck issues. Change-Id: I8eaeaddbb7ad113604144ee563868f6e256515fb Signed-off-by: Naresh Kamboju --- automated/linux/ltp/ltp.sh | 45 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 27 deletions(-) (limited to 'automated') diff --git a/automated/linux/ltp/ltp.sh b/automated/linux/ltp/ltp.sh index 90ae06a..b2f88cd 100755 --- a/automated/linux/ltp/ltp.sh +++ b/automated/linux/ltp/ltp.sh @@ -4,10 +4,10 @@ OUTPUT="$(pwd)/output" RESULT_FILE="${OUTPUT}/result.txt" # Absolute path to this script. /home/user/bin/foo.sh -SCRIPT="$(readlink -f $0)" +SCRIPT="$(readlink -f "${0}")" # Absolute path this script is in. /home/user/bin -SCRIPTPATH="$(dirname $SCRIPT)" -echo "Script path is: "${SCRIPTPATH}"" +SCRIPTPATH="$(dirname "${SCRIPT}")" +echo "Script path is: ${SCRIPTPATH}" # List of test cases TST_CMDFILES="" # List of test cases to be skipped @@ -18,7 +18,7 @@ LTP_VERSION="20160920" LTP_PATH=/opt/ltp usage() { - echo "Usage: $0 [-T mm,math,syscalls] [-S skipfile-lsk-juno] [-s ] [-v LTP_VERSION]" 1>&2 + echo "Usage: ${0} [-T mm,math,syscalls] [-S skipfile-lsk-juno] [-s ] [-v LTP_VERSION]" 1>&2 exit 0 } @@ -26,18 +26,19 @@ while getopts "T:S:s:v:" arg; do case "$arg" in T) TST_CMDFILES="${OPTARG}" + # shellcheck disable=SC2001 LOG_FILE=$(echo "${OPTARG}"| sed 's,\/,_,') ;; S) OPT=$(echo "${OPTARG}" | grep "http") if [ -z "${OPT}" ] ; then # LTP skipfile - SKIPFILE="-S "${SCRIPTPATH}"/"${OPTARG}"" + SKIPFILE="-S ${SCRIPTPATH}/${OPTARG}" else # Download LTP skipfile from speficied URL - wget "${OPTARG}" - SKIPFILE=$(echo "${OPTARG##*/}") - SKIPFILE="-S $(pwd)/${SKIPFILE}" + wget "${OPTARG}" -O "skipfile" + SKIPFILE="skipfile" + SKIPFILE="-S ${SCRIPTPATH}/${SKIPFILE}" fi ;; # SKIP_INSTALL is true in case of Open Embedded builds @@ -51,7 +52,9 @@ done install_ltp() { rm -rf /opt/ltp mkdir -p /opt/ltp + # shellcheck disable=SC2164 cd /opt/ltp + # shellcheck disable=SC2140 wget https://github.com/linux-test-project/ltp/releases/download/"${LTP_VERSION}"/ltp-full-"${LTP_VERSION}".tar.xz tar --strip-components=1 -Jxf ltp-full-"${LTP_VERSION}".tar.xz ./configure @@ -59,14 +62,6 @@ install_ltp() { make SKIP_IDCHECK=1 install } -parse_ltp_summary() { - for TEST in "Total Tests" "Total Skipped Tests" "Total Failures"; do - NO_OF_TESTS="$(grep "$TEST" "$1" | awk '{print $NF}')" - TEST=$(echo "$TEST" | tr -s ' ' '-') - add_metric "$TEST" "pass" "${NO_OF_TESTS}" "testcases" - done -} - # Parse LTP output parse_ltp_output() { egrep "PASS|FAIL|CONF" "$1" | awk '{print $1" "$2}' | sed s/CONF/SKIP/ >> "${RESULT_FILE}" @@ -74,18 +69,12 @@ parse_ltp_output() { # Run LTP test suite run_ltp() { + # shellcheck disable=SC2164 cd "${LTP_PATH}" - exec 4>&1 - error_statuses="$(((./runltp -p -q -f "${TST_CMDFILES}" \ - -l "${OUTPUT}/LTP_${LOG_FILE}.log" \ - -C "${OUTPUT}/LTP_${LOG_FILE}.failed" "${SKIPFILE}" \ - || echo "0:$?" >&3) | (tee "${OUTPUT}/LTP_${LOG_FILE}.out" \ - || echo "1:$?" >&3)) 3>&1 >&4)" - exec 4>&- + pipe0_status "./runltp -p -q -f ${TST_CMDFILES} -l ${OUTPUT}/LTP_${LOG_FILE}.log -C ${OUTPUT}/LTP_${LOG_FILE}.failed ${SKIPFILE}" "tee ${OUTPUT}/LTP_${LOG_FILE}.out" + check_return "runltp_${LOG_FILE}" - echo "${error_statuses}" - parse_ltp_summary "${OUTPUT}/LTP_${LOG_FILE}.log" parse_ltp_output "${OUTPUT}/LTP_${LOG_FILE}.log" } @@ -101,17 +90,19 @@ if [ "${SKIP_INSTALL}" = "True" ] || [ "${SKIP_INSTALL}" = "true" ]; then info_msg "install_ltp skipped" else dist_name + # shellcheck disable=SC2154 case "${dist}" in Debian|Ubuntu) pkgs="xz-utils flex bison build-essential wget curl net-tools" + install_deps "${pkgs}" "${SKIP_INSTALL}" ;; CentOS|Fedora) pkgs="xz flex bison make automake gcc gcc-c++ kernel-devel wget curl net-tools" + install_deps "${pkgs}" "${SKIP_INSTALL}" ;; *) - error_msg "Unsupported distribution!" + warn_msg "Unsupported distribution: package install skipped" esac - install_deps "${pkgs}" "${SKIP_INSTALL}" info_msg "Run install_ltp" install_ltp fi -- cgit v1.2.3