diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 932f9e0f698..1af783ab1c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1288,8 +1288,7 @@ arm64_a630_vk: extends: arm64_a630_gles2 variables: DEQP_VER: vk - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 50 + DEQP_FRACTION: 50 VK_DRIVER: freedreno # Force binning in the main run, which makes sure we render at # least 2 bins. This is the path that impacts the most different @@ -1304,8 +1303,7 @@ arm64_a630_vk_sysmem: extends: - arm64_a630_vk variables: - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 10 + DEQP_FRACTION: 10 DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*" DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt TU_DEBUG: sysmem @@ -1359,8 +1357,7 @@ arm64_a306_gles3: variables: DEQP_VER: gles3 DEQP_PARALLEL: 1 - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 25 + DEQP_FRACTION: 25 # Fractional runs with debug options. Note that since we're not # hitting the iommu faults, we can run in parallel (derive from gles2, not gles3). @@ -1398,16 +1395,14 @@ arm64_a530_gles3: variables: DEQP_VER: gles3 DEQP_PARALLEL: 1 - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 40 + DEQP_FRACTION: 40 arm64_a530_gles31: extends: - arm64_a530_gles3 variables: DEQP_VER: gles31 - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 10 + DEQP_FRACTION: 10 # RADV CI .test-radv: diff --git a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh b/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh index c10d4b5bd58..d2bb08be7c0 100755 --- a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh +++ b/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh @@ -11,8 +11,7 @@ EXIT=0 if ! env \ DEQP_RESULTS_DIR=results/gmem \ DEQP_VER=gles31 \ - CI_NODE_INDEX=1 \ - CI_NODE_TOTAL=5 \ + DEQP_FRACTION=5 \ FD_MESA_DEBUG=nobypass \ /install/deqp-runner.sh; then EXIT=1 @@ -22,8 +21,7 @@ fi if ! env \ DEQP_RESULTS_DIR=results/bypass \ DEQP_VER=gles31 \ - CI_NODE_INDEX=1 \ - CI_NODE_TOTAL=5 \ + DEQP_FRACTION=5 \ FD_MESA_DEBUG=nogmem \ DEQP_EXPECTED_FAILS=deqp-freedreno-a630-bypass-fails.txt \ /install/deqp-runner.sh; then diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh index 1e102f4c96a..b1851124b93 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_CONFIG \ DEQP_EXPECTED_FAILS \ DEQP_EXPECTED_RENDERER \ + DEQP_FRACTION \ DEQP_HEIGHT \ DEQP_NO_SAVE_RESULTS \ DEQP_FLAKES \ diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index 0010550d293..2bb89d92145 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -57,8 +57,15 @@ else SUITE=KHR fi -# If the job is parallel, take the corresponding fraction of the caselist. -# Note: N~M is a gnu sed extension to match every nth line (first line is #1). +# If the caselist is too long to run in a reasonable amount of time, let the job +# specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu +# sed extension to match every nth line (first line is #1). +if [ -n "$DEQP_FRACTION" ]; then + sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt +fi + +# If the job is parallel at the gitab job level, take the corresponding fraction +# of the caselist. if [ -n "$CI_NODE_INDEX" ]; then sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt fi diff --git a/docs/ci/index.rst b/docs/ci/index.rst index e4cea23768d..c9350c6b24d 100644 --- a/docs/ci/index.rst +++ b/docs/ci/index.rst @@ -111,8 +111,7 @@ no ``parallel`` field set and: .. code-block:: yaml variables: - CI_NODE_INDEX: 1 - CI_NODE_TOTAL: 10 + DEQP_FRACTION: 10 to just run 1/10th of the test list.