[igt-dev] [PATCH v3 12/12] ci: Add job for testing changes to tests in Qualcomm devices

Tomeu Vizoso tomeu.vizoso at collabora.com
Thu Apr 21 07:28:48 UTC 2022



On 4/4/22 1:00 PM, Petri Latvala wrote:
> On Fri, Mar 11, 2022 at 03:13:00PM +0100, Tomeu Vizoso wrote:
>> Will allow for more efortless testing of changes to tests that could
>> affect Qualcomm devices.
>>
>> With these changes, it should be fairly trivial to add testing on other
>> KMS and GPU drivers.
>>
>> v2: Update expectations after 9f32d552afd7 ("tests/kms_setmode: Use dynamic subtests")
>>
>> v3: Use igt_runner and store a list of subtests for msm CI
>>
>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
>> ---
>>   .gitlab-ci.yml            | 49 +++++++++++++++++++
>>   ci/msm_results.txt        | 98 ++++++++++++++++++++++++++++++++++++++
>>   ci/run_tests.sh           | 14 ++++++
>>   tests/msm_ci/msm.testlist | 99 +++++++++++++++++++++++++++++++++++++++
>>   4 files changed, 260 insertions(+)
>>   create mode 100644 ci/msm_results.txt
>>   create mode 100755 ci/run_tests.sh
>>   create mode 100644 tests/msm_ci/msm.testlist
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index f820661496c4..ec865bef5e28 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -325,6 +325,55 @@ default:
>>         test -e "${CI_JOB_JWT_FILE}" &&
>>         export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
>>         rm "${CI_JOB_JWT_FILE}"
>> +
>> +.lava-test:arm64:
>> +  image: $CI_REGISTRY/$CI_PROJECT_PATH/build-debian:commit-$CI_COMMIT_SHA
>> +  variables:
>> +    BASE_SYSTEM_HOST_PREFIX: "${MINIO_HOST}/mesa-lava"
>> +    FDO_UPSTREAM_REPO: gfx-ci/rootfs
>> +    ARCH: arm64
>> +    # Tag corresponding to artifacts from https://gitlab.freedesktop.org/gfx-ci/rootfs/
>> +    KERNEL_ROOTFS_TAG: "2022-03-11-jq--2022-03-08-bzip2--290b79e0e78eab67a83766f4e9691be554fc4afd"
>> +    BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${KERNEL_ROOTFS_TAG}/${ARCH}"
>> +    JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
>> +    JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.gz"
>> +    MINIO_ARTIFACT_NAME: igt-arm64
>> +    BUILD_PATH: "${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.gz"
>> +    JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz"
>> +    KERNEL_IMAGE_NAME: Image
>> +    KERNEL_IMAGE_TYPE: "image"
>> +    VISIBILITY_GROUP: "Collabora+fdo"
>> +    HWCI_TEST_SCRIPT: "/install/ci/run_tests.sh"
>> +  dependencies:
>> +    - build:tests-debian-meson-arm64
>> +  needs:
>> +    - build-containers:build-debian
>> +    - build:tests-debian-meson-arm64
>> +  script:
>> +    - ./ci/lava/lava-submit.sh
>> +  artifacts:
>> +    name: "igt_${CI_JOB_NAME}"
>> +    when: always
>> +    paths:
>> +      - results/
>> +  tags:
>> +    - $RUNNER_TAG
>> +  after_script:
>> +    - wget -q "https://${JOB_RESULTS_PATH}" -O- | tar -xz
>> +
>> +test:msm:
>> +  extends:
>> +    - .lava-test:arm64
>> +  stage: test
>> +  variables:
>> +    DEVICE_TYPE: sc7180-trogdor-lazor-limozeen
>> +    DTB: sc7180-trogdor-lazor-limozeen-nots
>> +    BOOT_METHOD: depthcharge
>> +    KERNEL_IMAGE_TYPE: ""
>> +    IGT_FORCE_DRIVER: msm
>> +  tags:
>> +    - mesa-ci-x86-64-lava-rk3399-gru-kevin    # why it doesn't work!? mesa-ci-x86-64-lava-sc7180-trogdor-lazor-limozeen
>> +
> 
> 
> I'm not sure how to dress these questions into words, I'll try my
> best...
> 
> What's the aim of this, from the range of "support testing the kernel"
> to "just test that IGT doesn't break"? In particular, what's the
> kernel used here, how/when is it changed?

The goal here is definitely "just test that IGT doesn't break".

> Can that runner handle the load induced by merging this? For the
> record, IGT forks run the pipelines too, and i915 CI pushes postmerge
> tags _and_ premerge tags to its own ci-tags repository fork so it's
> quote a bit more load than just for every merge to IGT proper.

For now I think we have plenty of capacity as the boards in use are also 
used for Mesa CI, which needs to shard to a minimum of 2 boards, more 
often 5-10.

Also, the number of tests being run are quite small at the moment. If 
the executions start taking longer, then capacity might not be enough.

> If I read that correctly, the results.json is stored in pipeline
> artifacts so there's a way to access the logs if something breaks,
> ok...

Yep, and also the first devcoredump.

> What's the procedure if someone wants to extend this kind of testing
> on their own platform?

I can add docs for this in a future iteration, but most of the work is 
in providing a lab that can receive test jobs from a gitlab runner.

> Is IGT_FORCE_DRIVER necessary? FYI there's also
> IGT_DEVICE=pci:vendor=vendorstring along with other types of
> IGT_DEVICE filters. The semantics are slightly different but
> IGT_FORCE_DRIVER is the older, slightly less capable, device selection
> interface from before IGT_DEVICE.

Back when I looked at this for kernelci.org, that only worked for PCI 
devices, but not platform. Has this changed?

Thanks,

Tomeu


More information about the igt-dev mailing list