From 8c53d421100b965b7b6c805a64780ab0d3697ad7 Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Tue, 28 Jan 2020 10:22:58 -0800 Subject: [PATCH] Updated to latest xe-solutions test-image script Signed-off-by: James Ketrenos --- scripts/build-dockerfile.sh | 38 ++++++++++++++++---------------- scripts/build-image.sh | 31 +++++++++----------------- scripts/test-image.sh | 43 +++++++++++++++++-------------------- 3 files changed, 49 insertions(+), 63 deletions(-) diff --git a/scripts/build-dockerfile.sh b/scripts/build-dockerfile.sh index 64a05cb..bda73ec 100755 --- a/scripts/build-dockerfile.sh +++ b/scripts/build-dockerfile.sh @@ -11,28 +11,20 @@ for var in ${VARS[@]}; do export ${var} done -case "${OS_DISTRO}" in - rhel) - SOLUTION_SUFFIX=".rhel-8.0" - ;; - ubuntu) - SOLUTION_SUFFIX="" - ;; - *) - SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}" - [[ -d "templates/${OS_DISTRO}" ]] || { - echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'" - exit -1 - } - ;; -esac +SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}" +[[ -d "templates/${OS_DISTRO}" ]] || { + echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'" + exit -1 +} [[ ! -e "Dockerfile.solution${SOLUTION_SUFFIX}" ]] && { cat << EOF -'${OS_DISTRO}' set as OS_DISTRO, but Dockerfile.solution${SOLUTION_SUFFIX} does -not exist. -Using Dockerfile.solution instead. +OS_DISTRO and OS_RELEASE creates a solution suffix of '${OS_DISTRO}-${OS_RELEASE}'. +However, Dockerfile.solution${SOLUTION_SUFFIX} does not exist. + +Using 'Dockerfile.solution' as default. + EOF SOLUTION_SUFFIX="" @@ -43,7 +35,15 @@ export SOLUTION="Dockerfile.solution${SOLUTION_SUFFIX}" VARS+=("DOCKERFILE") VARS+=("SOLUTION") -echo "Using '${SOLUTION}' to generate '${DOCKERFILE}'." +cat << EOF +Using: + + ${SOLUTION} + +To generate: + + ${DOCKERFILE} +EOF # Build a SHELL-FORMAT value to pass to envsubst. # Only those variables matched in SHELL-FORMAT will diff --git a/scripts/build-image.sh b/scripts/build-image.sh index 2affa83..d31ecdb 100755 --- a/scripts/build-image.sh +++ b/scripts/build-image.sh @@ -18,31 +18,20 @@ RELEASE_INFO=${RELEASE_INFO:-N/A} TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} } -case "${OS_DISTRO}" in - rhel) - SOLUTION_SUFFIX=".rhel-8.0" - ;; - ubuntu) - SOLUTION_SUFFIX="" - ;; - *) - SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}" - [[ -d "templates/${OS_DISTRO}" ]] || { - echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'" - exit -1 - } - [[ ! -e "Dockerfile.solution.${SOLUTION_SUFFIX}" ]] && { - SOLUTION_SUFFIX="" - } - ;; -esac +SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}" +[[ -d "templates/${OS_DISTRO}" ]] || { + echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'" + exit -1 +} [[ ! -e "Dockerfile${SOLUTION_SUFFIX}" ]] && { cat << EOF -'${OS_DISTRO}' set as OS_DISTRO, but Dockerfile${SOLUTION_SUFFIX} does -not exist. -Using Dockerfile instead. +OS_DISTRO and OS_RELEASE creates a solution suffix of '${OS_DISTRO}-${OS_RELEASE}'. +However, Dockerfile${SOLUTION_SUFFIX} does not exist. + +Using 'Dockerfile' as default. + EOF SOLUTION_SUFFIX="" diff --git a/scripts/test-image.sh b/scripts/test-image.sh index 4a352db..ef9de37 100755 --- a/scripts/test-image.sh +++ b/scripts/test-image.sh @@ -3,10 +3,8 @@ # Bring in the variables from SOLUTION file, supporting # nested substitution . SOLUTION -. MANIFEST VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) -VARS+=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST)) for var in ${VARS[@]}; do export ${var} done @@ -18,8 +16,6 @@ RELEASE_INFO=${RELEASE_INFO:-N/A} TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} } -docker pull ${REGISTRY_URL}/${CONTAINER}:${TAG} - function fail { >&2 echo "$*" exit -1 @@ -28,31 +24,32 @@ function fail { VIDEO=$(getent group video | sed -E 's,^video:[^:]*:([^:]*):.*$,\1,') RENDER=$(getent group render | sed -E 's,^render:[^:]*:([^:]*):.*$,\1,') +docker pull ${REGISTRY_URL}/${CONTAINER}:${TAG} || fail "Unable to pull ${REGISTRY_URL}/${CONTAINER}:${TAG}" + + +[[ "${VIDEO}" != "" ]] || fail "No video group found." + +ADD_GROUPS="--group-add ${VIDEO}" +[[ "${RENDER}" != "" ]] && ADD_GROUPS+=" --group-add ${RENDER}" + +CMD="docker run \ + ${ADD_GROUPS} \ + --rm \ + --device=/dev/dri \ + ${REGISTRY_URL}/${CONTAINER}:${TAG} \ + test" + + cat << EOF Running test with: -video group : ${VIDEO} -render group: ${RENDER} +video group GID: ${VIDEO} +$( [[ "${RENDER}" != "" ]] && echo -e "render group GID: ${RENDER}\n" ) +${CMD} ------------------------------------------------------------------------------- EOF -echo -n "Downloading test content: " -mkdir $(pwd)/media -wget -q -O $(pwd)/media/AUD_MW_E.264 \ - https://fate-suite.libav.org/h264-conformance/AUD_MW_E.264 || - fail "Unable to download test content." -chmod -R 777 $(pwd)/media || fail "Unable to set permissions" -echo "done" - -docker run \ - --group-add ${VIDEO} \ - --group-add ${RENDER} \ - --rm \ - --device=/dev/dri \ - -e QSV_DEVICE=${QSV_DEVICE:-/dev/dri/renderD128} \ - --volume $(pwd)/media:/media \ - ${REGISTRY_URL}/${CONTAINER}:${TAG} \ - test || fail "Unable to execute 'test' on image." +${CMD} || fail "Unable to execute 'test' on ${REGISTRY_URL}/${CONTAINER}:${TAG}."