#!/bin/bash RESULT_LOG="result.log" DUMP_FRAMES_DIR="/root/dump-frames" generate_igtrc() { cd "$HOME" || exit 1 mkdir -p "${DUMP_FRAMES_DIR}" cat > ".igtrc" <<-EOF [Common] FrameDumpPath=${DUMP_FRAMES_DIR} [DUT] SuspendResumeDelay=15 [Chamelium] URL=http://${CHAMELIUM_IP}:9992 [Chamelium:${HDMI_DEV_NAME}] ChameliumPortID=3 EOF cd - > /dev/null 2>&1 || exit 1 } generate_chamelium_testlist() { echo "Generate test list" TEST_LIST=igt-chamelium-test.testlist # Skip Display Port/VGA and Suspend/Hibrnate related tests ${TEST_SCRIPT} -l | grep chamelium | grep -v "dp\|vga\|suspend\|hibernate" | tee "${IGT_DIR}"/"${TEST_LIST}" } generate_igt_all_testlist() { echo "Generate igt all test list" TEST_LIST=igt-all-test.testlist # Skip Intel/AMD, Display Port/VGA and Suspend/Hibrnate related tests ${TEST_SCRIPT} -l | grep -v "dp\|vga\|suspend\|hibernate\|i915\|amdgpu" | tee "${IGT_DIR}"/"${TEST_LIST}" } usage() { echo "usage: $0 -c -h -d [-t ]" 1>&2 exit 1 } while getopts ":c:h:d:t:" opt; do case "${opt}" in c) CHAMELIUM_IP="${OPTARG}" ;; h) HDMI_DEV_NAME="${OPTARG}" ;; d) IGT_DIR="${OPTARG}" ;; t) TEST_LIST="${OPTARG}" ;; *) usage ;; esac done if [ -z "${CHAMELIUM_IP}" ] || [ -z "${HDMI_DEV_NAME}" ] || [ -z "${IGT_DIR}" ]; then usage fi TEST_SCRIPT="${IGT_DIR}/scripts/run-tests.sh" export IGT_TEST_ROOT="/usr/libexec/igt-gpu-tools" # new run-tests.sh needs '-p' to run the tests with piglit ${TEST_SCRIPT} --help | grep -q '\-p' && TEST_SCRIPT="${TEST_SCRIPT} -p" # generate ~/.igtrc if [ ! -f "$HOME/.igtrc" ]; then echo "Generate ~/.igtrc" generate_igtrc fi echo "Before download piglit" df -h # Download Piglit git config --global http.postBuffer 157286400 if [ ! -d "${IGT_DIR}/piglit" ]; then echo "Download Piglit.." time ${TEST_SCRIPT} -d fi echo "After download piglit" df -h # If test list is not assigned, generate it if [ -z "${TEST_LIST}" ]; then generate_chamelium_testlist elif [ "${TEST_LIST}" = "ALL" ]; then generate_igt_all_testlist elif [ -n "${TEST_LIST}" ];then cp ${TEST_LIST} ${IGT_DIR} fi # Run tests echo "Run ${TEST_LIST}" ${TEST_SCRIPT} -T "${IGT_DIR}"/"${TEST_LIST}" -v -s | tee tmp.log grep -e '^pass' -e '^skip' -e '^fail' tmp.log|awk -F':\ ' '{print $2" "$1}' > ${RESULT_LOG}