From e23173433f78414d43ca91137ccd05cecbcf2cf0 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 25 Mar 2020 15:37:35 -0700 Subject: igt: Make it compatible with igt_runner and piglit Signed-off-by: Arthur --- automated/linux/igt/igt-test.sh | 33 ++++++++++++++++---------------- automated/linux/igt/igt-test.yaml | 3 ++- automated/linux/igt/print-test-result.py | 29 +++++++++++++++------------- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/automated/linux/igt/igt-test.sh b/automated/linux/igt/igt-test.sh index 634afae..c770e44 100755 --- a/automated/linux/igt/igt-test.sh +++ b/automated/linux/igt/igt-test.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -x - RESULT_LOG="result.log" DUMP_FRAMES_DIR="/root/dump-frames" @@ -31,6 +29,15 @@ generate_chamelium_testlist() { ${TEST_SCRIPT} -l | grep chamelium | grep -v "dp\|vga\|suspend\|hibernate" | tee "${IGT_DIR}"/"${TEST_LIST}" } +download_piglit() { + # Download Piglit + git config --global http.postBuffer 157286400 + if [ ! -d "${IGT_DIR}/piglit" ]; then + echo "Download Piglit.." + time ${TEST_SCRIPT} -d + fi +} + usage() { echo "usage: $0 -d -t [-c ] [-h ]" 1>&2 exit 1 @@ -50,38 +57,32 @@ if [ -z "${IGT_DIR}" ] || [ -z "${TEST_LIST}" ]; then usage fi -if [ "${TEST_LIST}" == "CHAMELIUM" ] && [ -z "${CHAMELIUM_IP}" -o -z "${HDMI_DEV_NAME}" ]; then +if [ "${TEST_LIST}" == "CHAMELIUM" ] && [ -z "${CHAMELIUM_IP}" ] || [ -z "${HDMI_DEV_NAME}" ]; then usage fi TEST_SCRIPT="${IGT_DIR}/scripts/run-tests.sh" -export GIT_SSL_NO_VERIFY=1 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" - -# Download Piglit -git config --global http.postBuffer 157286400 -if [ ! -d "${IGT_DIR}/piglit" ]; then - echo "Download Piglit.." - time ${TEST_SCRIPT} -d +if [ ! -f "${IGT_DIR}/runner/igt_runner" ]; then + ${TEST_SCRIPT} --help | grep -q '\-p' && TEST_SCRIPT="${TEST_SCRIPT} -p" + download_piglit fi if [ "${TEST_LIST}" == "CHAMELIUM" ]; then - echo "Going to test igt Chamelium test" + echo "Going to run igt Chamelium test" if [ ! -f "$HOME/.igtrc" ]; then echo "Generate ~/.igtrc" generate_igtrc fi generate_chamelium_testlist else - echo "Going to test ${TEST_LIST}" - cp ${TEST_LIST} ${IGT_DIR} + echo "Going to run ${TEST_LIST}" + cp "${TEST_LIST}" "${IGT_DIR}" fi # Run tests echo "Run ${TEST_LIST}" -${TEST_SCRIPT} -T "${IGT_DIR}"/"${TEST_LIST}" -v -s | tee tmp.log +${TEST_SCRIPT} -T "${IGT_DIR}"/"${TEST_LIST}" -v | 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 index 4339561..a69046f 100644 --- a/automated/linux/igt/igt-test.yaml +++ b/automated/linux/igt/igt-test.yaml @@ -47,7 +47,8 @@ run: - echo "**********************************************"; - echo "************ Dump IGT test result ************"; - echo "**********************************************"; - - bzcat ${IGT_DIR}/results/results.json.bz2 | python print-test-result.py + - if [ -f "${IGT_DIR}/results/results.json.bz2" ]; then bunzip2 ${IGT_DIR}/results/results.json.bz2; fi + - python print-test-result.py -f ${IGT_DIR}/results/results.json - 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/print-test-result.py b/automated/linux/igt/print-test-result.py index c65660c..929a895 100755 --- a/automated/linux/igt/print-test-result.py +++ b/automated/linux/igt/print-test-result.py @@ -5,22 +5,25 @@ import json def print_result(results): - try: - for test, content in results['tests'].iteritems(): - print '' % test - print '************************************************************************************************************************************' - print '%-15s %s' % ('Test:', test) - print '%-15s %s' % ('Result:', content['result']) + for test, content in results['tests'].iteritems(): + print '' % test + print '************************************************************************************************************************************' + print '%-15s %s' % ('Test:', test) + print '%-15s %s' % ('Result:', content['result']) + + try: print '%-15s %s' % ('Command:', content['command']) print '%-15s %s' % ('Environment:', content['environment']) print '%-15s %s' % ('Returncode:', content['returncode']) - print '%-15s %s' % ('Stdout:', content['out'].replace('\n', '\n ')) - print '%-15s %s' % ('Stderr:', content['err'].replace('\n', '\n ')) - print '%-15s %s' % ('dmesg:', content['dmesg'].replace('\n', '\n ')) - print '' % (test, content['result']) - print '' % test - except: - print "Can not find required data" + except KeyError: + pass + + print '%-15s %s' % ('Stdout:', content['out'].replace('\n', '\n ')) + print '%-15s %s' % ('Stderr:', content['err'].replace('\n', '\n ')) + print '%-15s %s' % ('dmesg:', content['dmesg'].replace('\n', '\n ')) + print '' % (test, content['result']) + print '' % test + if __name__ == '__main__': parser = argparse.ArgumentParser() -- cgit v1.2.3