#!/bin/bash # SPDX-License-Identifier: MIT set -ex function generate_testlist { set +x while read -r line; do if [ "$line" = "TESTLIST" ] || [ "$line" = "END TESTLIST" ]; then continue fi tests=$(echo "$line" | tr ' ' '\n') for test in $tests; do output=$(/igt/libexec/igt-gpu-tools/"$test" --list-subtests || true) if [ -z "$output" ]; then echo "$test" else echo "$output" | while read -r subtest; do echo "$test@$subtest" done fi done done < /igt/libexec/igt-gpu-tools/test-list.txt > /igt/libexec/igt-gpu-tools/ci-testlist.txt set -x } git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools.git --single-branch --no-checkout cd igt-gpu-tools git checkout $IGT_VERSION if [[ "$KERNEL_ARCH" = "arm" ]]; then . ../.gitlab-ci/container/create-cross-file.sh armhf EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt" fi MESON_OPTIONS="-Doverlay=disabled \ -Dchamelium=disabled \ -Dvalgrind=disabled \ -Dman=enabled \ -Dtests=enabled \ -Drunner=enabled \ -Dlibunwind=enabled \ -Dprefix=/igt" if [[ "$KERNEL_ARCH" = "arm64" ]] || [[ "$KERNEL_ARCH" = "arm" ]]; then MESON_OPTIONS="$MESON_OPTIONS -Dxe_driver=disabled" fi mkdir -p /igt meson build $MESON_OPTIONS $EXTRA_MESON_ARGS ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 ninja -C build install if [[ "$KERNEL_ARCH" = "arm64" ]]; then export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib/aarch64-linux-gnu elif [[ "$KERNEL_ARCH" = "arm" ]]; then export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib else export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib64 fi echo "Generating ci-testlist.txt" generate_testlist mkdir -p artifacts/ tar -cf artifacts/igt.tar /igt # Pass needed files to the test stage S3_ARTIFACT_NAME="igt.tar.gz" gzip -c artifacts/igt.tar > ${S3_ARTIFACT_NAME} ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}