#!/bin/bash set -e set -o xtrace VERSION=`head -1 install/VERSION` ROOTDIR=`pwd` if [ -d results ]; then cd results && rm -rf ..?* .[!.]* * fi cd /piglit export OCL_ICD_VENDORS=$ROOTDIR/install/etc/OpenCL/vendors/ set +e unset DISPLAY export LD_LIBRARY_PATH=$ROOTDIR/install/lib clinfo # If the job is parallel at the gitlab job level, will take the corresponding # fraction of the caselist. if [ -n "$CI_NODE_INDEX" ]; then if [ "$PIGLIT_PROFILES" != "${PIGLIT_PROFILES% *}" ]; then echo "Can't parallelize piglit with multiple profiles" exit 1 fi USE_CASELIST=1 fi if [ -n "$USE_CASELIST" ]; then ./piglit print-cmd $PIGLIT_TESTS $PIGLIT_PROFILES --format "{name}" > /tmp/case-list.txt sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt PIGLIT_TESTS="--test-list /tmp/case-list.txt" fi ./piglit run -c -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS $PIGLIT_PROFILES $ROOTDIR/results retVal=$? if [ $retVal -ne 0 ]; then echo "Found $(cat /tmp/version.txt), expected $VERSION" fi set -e PIGLIT_RESULTS=${PIGLIT_RESULTS:-$PIGLIT_PROFILES} mkdir -p .gitlab-ci/piglit ./piglit summary console $ROOTDIR/results \ | tee ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.orig" \ | head -n -1 \ | grep -v ": pass" \ | sed '/^summary:/Q' \ > .gitlab-ci/piglit/$PIGLIT_RESULTS.txt if [ -n "$USE_CASELIST" ]; then # Just filter the expected results based on the tests that were actually # executed, and switch to the version with no summary cat .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.orig | sed '/^summary:/Q' | rev \ | cut -f2- -d: | rev | sed "s/$/:/g" > /tmp/executed.txt grep -F -f /tmp/executed.txt $ROOTDIR/install/$PIGLIT_RESULTS.txt \ > .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline || true else cp $ROOTDIR/install/$PIGLIT_RESULTS.txt .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline fi if diff -q .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}; then exit 0 fi ./piglit summary html --exclude-details=pass $ROOTDIR/results/summary $ROOTDIR/results echo Unexpected change in results: diff -u .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,} exit 1