aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlab-ci/build-cts-runner.sh
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-11-04 10:54:41 -0800
committerEric Anholt <[email protected]>2019-11-12 12:54:04 -0800
commitf08c810028ba0ef264fb48d5ef0ddac08feef773 (patch)
tree94fdff594b5ae41f1c5463c2a21fee021ac91396 /.gitlab-ci/build-cts-runner.sh
parent7f52df7fc9bbfcd862320be8fbab4b82649aadf3 (diff)
ci: Use cts_runner for our dEQP runs.
This runner is a little project by Bas, written in C++, that spawns threads that then loop grabbing chunks of the (randomly shuffled but consistently so) test list and hand it to a dEQP instance. As the remaining list gets shorter, so do the chunks, so hopefully the threads all complete effectively at once. It also handles restarting after crashes automatically. I've extended the runner a bit to do what I was doing in the bash scripts before, like the skip list and expected failures handling. This project should also be a good baseline for extending to handle retesting of intermittent failures. By switching to it, we can have the swrast tests just take up one job slot on the shared runners and keep their allotment of CPUs busy, instead of taking up job slots with single-threaded dEQP jobs. It will also let us (eventually, once I reprovision) switch the freedreno runners over to threading within the job instead of running concurrent jobs, so that memory scribbles in one pipeline don't affect unrelated pipelines, and I can experiment with their parallelism (particularly on a306 where we are frequently backed up) without trashing other people's jobs. What we lose in this process is per-test output in the log (not a big loss, I think, since we summarize fails at the end and reducing log length keeps chrome from choking on our logs so badly). We also drop the renderer sanity checking, since it's not saving qpa files for us to go poke through. Given that all the drivers involved have fail lists, if we got the wrong renderer somehow, we'd get a job failure anyway. v2: Rebase on droppong of the autoscale cluster and the arm64 build/test split. Use a script to deduplicate the cts-runner build. v3: Rebase on the amd64 build/test container split. Acked-by: Daniel Stone <[email protected]> (v1) Reviewed-by: Tomeu Vizoso <[email protected]> (v2)
Diffstat (limited to '.gitlab-ci/build-cts-runner.sh')
-rw-r--r--.gitlab-ci/build-cts-runner.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/.gitlab-ci/build-cts-runner.sh b/.gitlab-ci/build-cts-runner.sh
new file mode 100644
index 00000000000..2622819f2e5
--- /dev/null
+++ b/.gitlab-ci/build-cts-runner.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -ex
+
+git clone https://github.com/anholt/cts_runner.git --depth 1 -b anholt-mesa-ci-2
+cd cts_runner
+meson build/
+ninja -C build -j4 install
+cd ..
+rm -rf cts_runner