Code coverage for all test suites can be collected with the following sequence.
The test step may time out unless you change repos/mesa_ci/build_support.py:35 to 'time_limit = NullTimeout()'
$ # configure the source tree
$ python3 fetch_sources.py --project all-test-vulkan
$ # obtain the docker container. Optionally run `docker-compose build conformance_m64` but edit line one of Dockerfile_m64 if necessary
$ cd docker
docker$ docker-compose pull conformance_m64
docker$ # enter the docker container and build all binaries
docker$ docker-compose run conformance_m64 /bin/bash
/sources$ python3 scripts/build_local.py --action clean,build --project all-test-vulkan
/sources$ # rebuild *mesa* with code coverage enabled
/sources$ LDFLAGS=-lgcov CFLAGS="-fprofile-arcs -ftest-coverage" CXXFLAGS="-fprofile-arcs -ftest-coverage" python3 mesa/build.py --action clean,build
/sources$ # execute all test suites (change --hardware to match your platform)
/sources$ python3 scripts/build_local.py --action test --hardware tgl --project all-test-vulkan
/sources$ # generate code coverage report
/sources$ lcov --no-external -c -d repos/mesa -o mesa.info
/sources$ genhtml -o coverage/ mesa.info
/sources$ exit
docker$ cd ..
$ # report is in coverage/index.html