diff options
-rw-r--r-- | automated/linux/igt/igt-chamelium-test.yaml | 2 | ||||
-rwxr-xr-x | automated/linux/igt/igt-test.sh | 85 | ||||
-rw-r--r-- | automated/linux/igt/igt-test.yaml | 45 |
3 files changed, 131 insertions, 1 deletions
diff --git a/automated/linux/igt/igt-chamelium-test.yaml b/automated/linux/igt/igt-chamelium-test.yaml index 4211e21..3b77e92 100644 --- a/automated/linux/igt/igt-chamelium-test.yaml +++ b/automated/linux/igt/igt-chamelium-test.yaml @@ -36,7 +36,7 @@ run: - echo "**********************************************"; - echo "************ Dump IGT test result ************"; - echo "**********************************************"; - - bzcat /usr/share/igt-gpu-tools/results/results.json.bz2 | python print-test-result.py + - bzcat ${IGT_DIR}/results/results.json.bz2 | python print-test-result.py - if [ -n "${ARTIFACTORIAL_TOKEN}" -a -n "${ARTIFACTORIAL_URL}" ]; then - UPLOAD_TOOL="../../utils/upload-to-artifactorial.sh" - if [ -d "/root/dump-frames/" -a -n "`ls /root/dump-frames/`" ]; then echo "Got error frames.." ; tar -C /root -zcf dump-frames.tar.gz dump-frames/; diff --git a/automated/linux/igt/igt-test.sh b/automated/linux/igt/igt-test.sh new file mode 100755 index 0000000..bce7f6c --- /dev/null +++ b/automated/linux/igt/igt-test.sh @@ -0,0 +1,85 @@ +#!/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}" +} + +usage() { + echo "usage: $0 -d <igt-gpu-tools dir> -t <test-list> [-c <chamelium ip address>] [-h <HDMI device name>]" 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 "${IGT_DIR}" ] || [ -z "${TEST_LIST}" ]; then + usage +fi + +if [ "${TEST_LIST}" == "CHAMELIUM" ]; then + if [ -z "${CHAMELIUM_IP}" ] || [ -z "${HDMI_DEV_NAME}" ]; then + usage + fi +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" + +if [ "${TEST_LIST}" == "CHAMELIUM" ]; then + # generate ~/.igtrc + if [ ! -f "$HOME/.igtrc" ]; then + echo "Generate ~/.igtrc" + generate_igtrc + fi + generate_chamelium_testlist +else + cp ${TEST_LIST} ${IGT_DIR} +fi + +# Download Piglit +git config --global http.postBuffer 157286400 +if [ ! -d "${IGT_DIR}/piglit" ]; then + echo "Download Piglit.." + time ${TEST_SCRIPT} -d +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} diff --git a/automated/linux/igt/igt-test.yaml b/automated/linux/igt/igt-test.yaml new file mode 100644 index 0000000..bc54430 --- /dev/null +++ b/automated/linux/igt/igt-test.yaml @@ -0,0 +1,45 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: igt-test + description: "Run igt-gpu-tools with a given test list" + maintainer: + - arthur.she@linaro.org + os: + - debian + - ubuntu + - openembedded + scope: + - functional + devices: + - dragonboard-410c + - x15 + +params: + HDMI_DEV_NAME: "HDMI-A-1" + IGT_DIR: "/igt-gpu-tools" + # Chanelium HDMI related tests + TEST_LIST: "CHAMELIUM" + ARTIFACTORIAL_URL: "" + ARTIFACTORIAL_TOKEN: "" + +run: + steps: + - cd ./automated/linux/igt + - OPT="-d ${IGT_DIR} -t ${TEST_LIST}" + # ${CHAMELIUM_IP} is from LAVA device dictionary + - if [ -n "${CHAMELIUM_IP}" ]; then OPT="${OPT} -c ${CHAMELIUM_IP}"; fi + - if [ -n "${HDMI_DEV_NAME}" ]; then OPT="${OPT} -h ${HDMI_DEV_NAME}"; fi + - ./igt-test.sh ${OPT} + # Dump igt test result and upload artifact to Artifactorial + - ifconfig; pwd; ls -l + - echo "**********************************************"; + - echo "************ Dump IGT test result ************"; + - echo "**********************************************"; + - bzcat ${IGT_DIR}/results/results.json.bz2 | python print-test-result.py + - if [ -n "${ARTIFACTORIAL_TOKEN}" -a -n "${ARTIFACTORIAL_URL}" ]; then + - UPLOAD_TOOL="../../utils/upload-to-artifactorial.sh" + - if [ -d "/root/dump-frames/" -a -n "`ls /root/dump-frames/`" ]; then echo "Got error frames.." ; tar -C /root -zcf dump-frames.tar.gz dump-frames/; + - echo "*********************************************"; + - echo "************ Upload dump frames *************"; + - echo "*********************************************"; + - ${UPLOAD_TOOL} -a "dump-frames.tar.gz" -u "${ARTIFACTORIAL_URL}" -t "${ARTIFACTORIAL_TOKEN}"; fi; fi |