diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh index 27a5c40de2e..224c31fc89e 100644 --- a/.gitlab-ci/bare-metal/rootfs-setup.sh +++ b/.gitlab-ci/bare-metal/rootfs-setup.sh @@ -31,6 +31,7 @@ for var in \ DEQP_EXPECTED_FAILS \ DEQP_EXPECTED_RENDERER \ DEQP_NO_SAVE_RESULTS \ + DEQP_FLAKES \ DEQP_PARALLEL \ DEQP_RUN_SUFFIX \ DEQP_SKIPS \ diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index b96f2720828..c81229d530d 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -291,6 +291,27 @@ if [ $DEQP_EXITCODE -ne 0 ]; then cp /tmp/deqp_runner.*.txt $RESULTS/ egrep -v ",Pass|,Skip|,ExpectedFail" $RESULTSFILE > $UNEXPECTED_RESULTSFILE + # deqp-runner's flake detection won't perfectly detect all flakes, so + # allow the driver to list some known flakes that won't intermittently + # fail people's pipelines (while still allowing them to run and be + # reported to IRC in the usual flake detection path). If we had some + # fails listed (so this wasn't a total runner failure), then filter out + # the known flakes and see if there are any issues left. + if [ -n "$DEQP_FLAKES" -a -s $UNEXPECTED_RESULTSFILE ]; then + set +x + while read line; do + line=`echo $line | sed 's|#.*||g'` + if [ -n "$line" ]; then + sed -i "/$line/d" $UNEXPECTED_RESULTSFILE + fi + done < $INSTALL/$DEQP_FLAKES + set -x + + if [ ! -s $UNEXPECTED_RESULTSFILE ]; then + exit 0 + fi + fi + if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then echo "Some unexpected results found (see cts-runner-results.txt in artifacts for full results):" head -n 50 $UNEXPECTED_RESULTSFILE diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh index e92063da948..a6328ab5f80 100755 --- a/.gitlab-ci/prepare-artifacts.sh +++ b/.gitlab-ci/prepare-artifacts.sh @@ -34,8 +34,7 @@ cp -Rp .gitlab-ci/fossils.yml install/ cp -Rp .gitlab-ci/fossils install/ cp -Rp .gitlab-ci/fossilize-runner.sh install/ cp -Rp .gitlab-ci/deqp-runner.sh install/ -cp -Rp .gitlab-ci/deqp-*-fails.txt install/ -cp -Rp .gitlab-ci/deqp-*-skips.txt install/ +cp -Rp .gitlab-ci/deqp-*.txt install/ # Tar up the install dir so that symlinks and hardlinks aren't each # packed separately in the zip file.