diff --git a/package/ci/android-x86-gles.sh b/package/ci/android-x86-gles.sh index 2c4a73a75..9fb709fce 100755 --- a/package/ci/android-x86-gles.sh +++ b/package/ci/android-x86-gles.sh @@ -113,7 +113,13 @@ circle-android wait-for-boot if [[ "$TARGET_GLES2" == "OFF" ]]; then EXCLUDE_GL_TESTS="-E (GLTest|GLBenchmark)" fi -CORRADE_TEST_COLOR=ON ctest -V $EXCLUDE_GL_TESTS +# `adb push` uploads timeout quite often, and then CircleCI waits 10 minutes +# until it aborts the job due to no output. CTest can do timeouts on its own, +# but somehow the default is 10M seconds, which is quite a lot honestly. +# Instead set the timeout to 120 seconds (to account for GL tests), and try ten +# more times if it gets stuck. We're sending quite a few files for shader +# tests, so three isn't enough. +CORRADE_TEST_COLOR=ON ctest -V $EXCLUDE_GL_TESTS --timeout 120 --repeat after-timeout:10 # Test install, after running the tests as for them it shouldn't be needed ninja install diff --git a/package/ci/android-x86-vulkan.sh b/package/ci/android-x86-vulkan.sh index 334e38e49..64053e43f 100755 --- a/package/ci/android-x86-vulkan.sh +++ b/package/ci/android-x86-vulkan.sh @@ -101,7 +101,12 @@ ninja $NINJA_JOBS # Wait for emulator to start (done in parallel to build) and run tests circle-android wait-for-boot -CORRADE_TEST_COLOR=ON ctest -V +# `adb push` uploads timeout quite often, and then CircleCI waits 10 minutes +# until it aborts the job due to no output. CTest can do timeouts on its own, +# but somehow the default is 10M seconds, which is quite a lot honestly. +# Instead set the timeout to 15 seconds which should be enough even for very +# heavy future benchmarks, and try two more times if it gets stuck. +CORRADE_TEST_COLOR=ON ctest -V --timeout 15 --repeat after-timeout:3 # Test install, after running the tests as for them it shouldn't be needed ninja install diff --git a/package/ci/circleci.yml b/package/ci/circleci.yml index d2ad49c8d..520e63b76 100644 --- a/package/ci/circleci.yml +++ b/package/ci/circleci.yml @@ -568,6 +568,11 @@ jobs: TARGET_GLES2: "ON" steps: - install-base-android + # We need ctest --timeout for flaky adb push, which is since 3.17. The + # image had 3.16.3 by default, so it's just a small jump. + - install-cmake: + version: "3.17.5" + sudo: sudo - build: script: android-x86-gles.sh @@ -578,6 +583,11 @@ jobs: TARGET_GLES2: "OFF" steps: - install-base-android + # We need ctest --timeout for flaky adb push, which is since 3.17. The + # image had 3.16.3 by default, so it's just a small jump. + - install-cmake: + version: "3.17.5" + sudo: sudo - build: script: android-x86-gles.sh @@ -585,6 +595,11 @@ jobs: executor: android-29 steps: - install-base-android + # We need ctest --timeout for flaky adb push, which is since 3.17. The + # image had 3.16.3 by default, so it's just a small jump. + - install-cmake: + version: "3.17.5" + sudo: sudo - build: script: android-x86-vulkan.sh