diff --git a/.gitlab-ci/vkd3d-proton/run.sh b/.gitlab-ci/vkd3d-proton/run.sh index 8ef00f7c6f6..e508a80bd75 100755 --- a/.gitlab-ci/vkd3d-proton/run.sh +++ b/.gitlab-ci/vkd3d-proton/run.sh @@ -14,7 +14,7 @@ RESULTS=$(realpath -s "$PWD"/results) # Modifiying here directly LD_LIBRARY_PATH may cause problems when # using a command wrapper. Hence, we will just set it when running the # command. -export __LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/" +export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/" # Sanity check to ensure that our environment is sufficient to make our tests @@ -44,12 +44,8 @@ quiet() { set -x } -SANITY_MESA_VERSION_CMD="vulkaninfo | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\"" - -RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD" - set +e -eval $RUN_CMD +vulkaninfo | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\" if [ $? -ne 0 ]; then printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION" @@ -62,31 +58,37 @@ else mkdir "$RESULTS" fi -VKD3D_PROTON_TESTSUITE_CMD="/vkd3d-proton-tests/x64/bin/d3d12 >$RESULTS/vkd3d-proton.log" - quiet printf "%s\n" "Running vkd3d-proton testsuite..." -RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $VKD3D_PROTON_TESTSUITE_CMD" set +e -eval $RUN_CMD +/vkd3d-proton-tests/x64/bin/d3d12 > $RESULTS/vkd3d-proton.log -VKD3D_PROTON_RESULTS="${VKD3D_PROTON_RESULTS:-vkd3d-proton-results}" -RESULTSFILE="$RESULTS/$VKD3D_PROTON_RESULTS.txt" -mkdir -p .gitlab-ci/vkd3d-proton -grep "Test failed" "$RESULTS"/vkd3d-proton.log > "$RESULTSFILE" +if [ $? != 0 ]; then + quiet print_red printf "%s\n" "Failed, see vkd3d-proton.log!" -if [ -f "$INSTALL/$VKD3D_PROTON_RESULTS.txt" ]; then - cp "$INSTALL/$VKD3D_PROTON_RESULTS.txt" \ - ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" -else - touch ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" + # Collect all the failures + VKD3D_PROTON_RESULTS="${VKD3D_PROTON_RESULTS:-vkd3d-proton-results}" + RESULTSFILE="$RESULTS/$VKD3D_PROTON_RESULTS.txt" + mkdir -p .gitlab-ci/vkd3d-proton + grep "Test failed" "$RESULTS"/vkd3d-proton.log > "$RESULTSFILE" + + # Gather the list expected failures + if [ -f "$INSTALL/$VKD3D_PROTON_RESULTS.txt" ]; then + cp "$INSTALL/$VKD3D_PROTON_RESULTS.txt" \ + ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" + else + touch ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" + fi + + # Make sure that the failures found in this run match the current expectation + if ! diff -q ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"; then + quiet print_red printf "%s\n" "Changes found, see vkd3d-proton.log!" + quiet diff --color=always -u ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE" + fi + + exit 1 fi -if diff -q ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"; then - echo "SUCCESS: No changes found!" - exit 0 -fi +printf "%s\n" "vkd3d-proton execution: SUCCESS" -quiet print_red printf "%s\n" "Changes found, see vkd3d-proton.log!" -quiet diff --color=always -u ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE" -exit 1 +exit 0 diff --git a/src/amd/ci/gitlab-ci.yml b/src/amd/ci/gitlab-ci.yml index 0676ed79a16..0c84e70b640 100644 --- a/src/amd/ci/gitlab-ci.yml +++ b/src/amd/ci/gitlab-ci.yml @@ -430,7 +430,7 @@ radv-fossils: extends: - .b2c-test-radv-vk variables: - B2C_JOB_SUCCESS_REGEX: 'SUCCESS: No changes found!\r$' + B2C_JOB_SUCCESS_REGEX: 'vkd3d-proton execution: SUCCESS\r$' HWCI_TEST_SCRIPT: ./install/vkd3d-proton/run.sh .vkd3d-kabini-valve: