1#!/bin/sh
2# SPDX-License-Identifier: MIT
3
4set -ex
5
6export IGT_FORCE_DRIVER=${DRIVER_NAME}
7export PATH=$PATH:/igt/bin/
8export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib/aarch64-linux-gnu/:/igt/lib/x86_64-linux-gnu:/igt/lib:/igt/lib64
9
10# Uncomment the below to debug problems with driver probing
11: '
12ls -l /dev/dri/
13cat /sys/kernel/debug/devices_deferred
14cat /sys/kernel/debug/device_component/*
15'
16
17# Dump drm state to confirm that kernel was able to find a connected display:
18# TODO this path might not exist for all drivers.. maybe run modetest instead?
19set +e
20cat /sys/kernel/debug/dri/*/state
21set -e
22
23# Cannot use HWCI_KERNEL_MODULES as at that point we don't have the module in /lib
24if [ "$IGT_FORCE_DRIVER" = "amdgpu" ]; then
25    mv /install/modules/lib/modules/* /lib/modules/.
26    modprobe amdgpu
27fi
28
29if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-skips.txt" ]; then
30    IGT_SKIPS="--skips /install/xfails/$DRIVER_NAME-$GPU_VERSION-skips.txt"
31fi
32
33if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-flakes.txt" ]; then
34    IGT_FLAKES="--flakes /install/xfails/$DRIVER_NAME-$GPU_VERSION-flakes.txt"
35fi
36
37if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-fails.txt" ]; then
38    IGT_FAILS="--baseline /install/xfails/$DRIVER_NAME-$GPU_VERSION-fails.txt"
39fi
40
41if [ "`uname -m`" = "aarch64" ]; then
42    ARCH="arm64"
43elif [ "`uname -m`" = "armv7l" ]; then
44    ARCH="arm"
45else
46    ARCH="x86_64"
47fi
48
49curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s ${FDO_HTTP_CACHE_URI:-}$PIPELINE_ARTIFACTS_BASE/$ARCH/igt.tar.gz | tar --zstd -v -x -C /
50
51set +e
52igt-runner \
53    run \
54    --igt-folder /igt/libexec/igt-gpu-tools \
55    --caselist /install/testlist.txt \
56    --output /results \
57    $IGT_SKIPS \
58    $IGT_FLAKES \
59    $IGT_FAILS \
60    --fraction-start $CI_NODE_INDEX \
61    --fraction $CI_NODE_TOTAL \
62    --jobs 1
63ret=$?
64set -e
65
66deqp-runner junit \
67   --testsuite IGT \
68   --results /results/failures.csv \
69   --output /results/junit.xml \
70   --limit 50 \
71   --template "See https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/results/{{testcase}}.xml"
72
73# Store the results also in the simpler format used by the runner in ChromeOS CI
74#sed -r 's/(dmesg-warn|pass)/success/g' /results/results.txt > /results/results_simple.txt
75
76cd $oldpath
77exit $ret
78