diff --git a/automated/lib/sh-test-lib b/automated/lib/sh-test-lib index c38bf4d25..c7f3d0140 100755 --- a/automated/lib/sh-test-lib +++ b/automated/lib/sh-test-lib @@ -477,7 +477,7 @@ create_out_dir() { } generate_skipfile() { - # Generate a skipfile and set the SKIPFILE variable based on SKIPFILE_YAML, + # Generate a skipfile and write it to SKIPFILE_PATH, based on SKIPFILE_YAML, # BOARD, BRANCH, and ENVIRONMENT. # # In: diff --git a/automated/linux/ltp/ltp.sh b/automated/linux/ltp/ltp.sh index 9dfe11ab2..bca6f20ed 100755 --- a/automated/linux/ltp/ltp.sh +++ b/automated/linux/ltp/ltp.sh @@ -14,7 +14,7 @@ echo "Script path is: ${SCRIPTPATH}" # List of test cases TST_CMDFILES="" # List of test cases to be skipped -SKIPFILE="" +SKIPFILE_PATH="" # List of test cases to be skipped in yaml/skipgen format SKIPFILE_YAML="" BOARD="" @@ -69,31 +69,26 @@ while getopts "M:T:S:b:d:g:e:i:s:v:R:r:u:p:t:c:n:w:k:" arg; do LOG_FILE=$(echo "${OPTARG}"| sed 's,\/,_,') ;; S) - if [ -z "${OPTARG##*http*}" ]; then - if [ -z "${OPTARG##*yaml*}" ]; then - # Skipfile is of type yaml - SKIPFILE_TMP="http-skipfile.yaml" - SKIPFILE_YAML="${SCRIPTPATH}/${SKIPFILE_TMP}" - else - # Skipfile is normal skipfile - SKIPFILE_TMP="http-skipfile" - SKIPFILE="-S ${SCRIPTPATH}/${SKIPFILE_TMP}" - fi - # Download LTP skipfile from specified URL - if ! wget "${OPTARG}" -O "${SKIPFILE_TMP}"; then - error_msg "Failed to fetch ${OPTARG}" - fi - elif [ "${OPTARG##*.}" = "yaml" ]; then - # yaml skipfile; use skipgen to generate a skipfile - SKIPFILE_YAML="${SCRIPTPATH}/${OPTARG}" - else - # Regular LTP skipfile. Absolute or relative path? - if [ "${OPTARG:0:1}" == "/" ]; then - SKIPFILE="-S ${OPTARG}" - else - SKIPFILE="-S ${SCRIPTPATH}/${OPTARG}" - fi - fi + case "${OPTARG}" in + *http*yaml*|*yaml*http*) + SKIPFILE_YAML="http-skipfile.yaml" + if ! wget "${OPTARG}" -O "${SKIPFILE_YAML}"; then + error_msg "Failed to fetch ${OPTARG}" + fi + ;; + *http*) + SKIPFILE_PATH="http-skipfile" + if ! wget "${OPTARG}" -O "${SKIPFILE_PATH}"; then + error_msg "Failed to fetch ${OPTARG}" + fi + ;; + *.yaml) + SKIPFILE_YAML="${OPTARG}" + ;; + *) + SKIPFILE_PATH="${OPTARG}" + ;; + esac ;; b) export BOARD="${OPTARG}" @@ -155,15 +150,25 @@ while getopts "M:T:S:b:d:g:e:i:s:v:R:r:u:p:t:c:n:w:k:" arg; do esac done +# A relative skipfile path is resolved against this script +case "${SKIPFILE_PATH}" in + ""|/*) ;; + *) SKIPFILE_PATH="${SCRIPTPATH}/${SKIPFILE_PATH}" ;; +esac +case "${SKIPFILE_YAML}" in + ""|/*) ;; + *) SKIPFILE_YAML="${SCRIPTPATH}/${SKIPFILE_YAML}" ;; +esac + TEST_TARFILE=https://github.com/linux-test-project/ltp/releases/download/"${LTP_VERSION}"/ltp-full-"${LTP_VERSION}".tar.xz if [ -n "${SKIPFILE_YAML}" ]; then export SKIPFILE_PATH="${SCRIPTPATH}/generated_skipfile" generate_skipfile - if [ ! -f "${SKIPFILE_PATH}" ]; then - error_msg "Skipfile ${SKIPFILE} does not exist"; - fi - SKIPFILE="-S ${SKIPFILE_PATH}" +fi + +if [ -n "${SKIPFILE_PATH}" ] && [ ! -f "${SKIPFILE_PATH}" ]; then + error_msg "Skipfile ${SKIPFILE_PATH} does not exist" fi parse_ltp_json_results() {