| #!/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} |