ci/deqp: Allow specifying the caselist fraction separate from CI_NODE_INDEX.

To increase our VK coverage on a630, we want to have two jobs in parallel,
but we still can't hit full coverage so we need the fractional setting to
be separate from gitlab CI's flags for setting up parallel jobs.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6971>
This commit is contained in:
Eric Anholt 2020-11-06 15:55:24 -08:00 committed by Marge Bot
parent 2998a0b055
commit 6bc35c00e2
5 changed files with 18 additions and 18 deletions

View File

@ -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:

View File

@ -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

View File

@ -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 \

View File

@ -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

View File

@ -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.