114b11b2bSmrg# Test stage
214b11b2bSmrg#
314b11b2bSmrg# This stage executes the test suite for pixman for all architectures in
414b11b2bSmrg# different configurations. Build and test is split, as some architectures can
514b11b2bSmrg# have different QEMU configuration or have multiple supported pixman backends,
614b11b2bSmrg# which are executed as job matrix.
714b11b2bSmrg#
814b11b2bSmrg# Mind that `PIXMAN_ENABLE` variable in matrix runs does nothing, but it looks
914b11b2bSmrg# better in CI to indicate what is actually being tested.
1014b11b2bSmrg#
1114b11b2bSmrg# Some emulated targets are really slow or cannot be run in multithreaded mode
1214b11b2bSmrg# (mipsel, arm-v5). Thus coverage reporting is disabled for them.
1314b11b2bSmrg
1414b11b2bSmrgvariables:
1514b11b2bSmrg  # Used in summary stage as well.
1614b11b2bSmrg  COVERAGE_BASE_DIR: coverage
1714b11b2bSmrg  COVERAGE_OUT: ${COVERAGE_BASE_DIR}/${CI_JOB_ID}
1814b11b2bSmrg  TEST_NAME: ""  # Allow to specify a set of tests to run with run variables.
1914b11b2bSmrg
2014b11b2bSmrginclude:
2114b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
2214b11b2bSmrg    inputs:
2314b11b2bSmrg      target: linux-386
2414b11b2bSmrg      toolchain: [gnu]  # TODO LLVM issue: https://gitlab.freedesktop.org/pixman/pixman/-/issues/106
2514b11b2bSmrg      pixman_disable:
2614b11b2bSmrg        - "sse2 ssse3"  # Testing "mmx"
2714b11b2bSmrg        - "mmx ssse3"  # Testing "sse2"
2814b11b2bSmrg        - "mmx sse2"  # Testing "ssse3"
2914b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
3014b11b2bSmrg    inputs:
3114b11b2bSmrg      target: linux-amd64
3214b11b2bSmrg      pixman_disable:
3314b11b2bSmrg        - ""
3414b11b2bSmrg        - "fast"
3514b11b2bSmrg        - "wholeops"
3614b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
3714b11b2bSmrg    inputs:
3814b11b2bSmrg      target: linux-arm-v5
3914b11b2bSmrg      toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/107
4014b11b2bSmrg      pixman_disable: ["arm-neon"] # Test only arm-simd.
4114b11b2bSmrg      timeout: 3h
4214b11b2bSmrg      test_timeout_multiplier: 40
4314b11b2bSmrg      runner_tags: [aarch64]
4414b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
4514b11b2bSmrg    inputs:
4614b11b2bSmrg      target: linux-arm-v7
4714b11b2bSmrg      runner_tags: [aarch64]
4814b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
4914b11b2bSmrg    inputs:
5014b11b2bSmrg      target: linux-arm64-v8
5114b11b2bSmrg      runner_tags: [aarch64]
5214b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
5314b11b2bSmrg    inputs:
5414b11b2bSmrg      target: linux-mips
5514b11b2bSmrg      toolchain: [gnu]  # TODO: Add llvm once the build is fixed.
5614b11b2bSmrg      qemu_cpu: [74Kf]
5714b11b2bSmrg      job_name_prefix: "."
5814b11b2bSmrg      job_name_suffix: ":failing"
5914b11b2bSmrg      allow_failure: true  # Some tests seem to fail.
6014b11b2bSmrg      retry: 0
6114b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
6214b11b2bSmrg    inputs:
6314b11b2bSmrg      target: linux-mips64le
6414b11b2bSmrg      toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/108
6514b11b2bSmrg      qemu_cpu: [Loongson-3A4000]
6614b11b2bSmrg      runner_tags: [kvm]
6714b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
6814b11b2bSmrg    inputs:
6914b11b2bSmrg      target: linux-mipsel
7014b11b2bSmrg      toolchain: [gnu]  # TODO: Add llvm once the build is fixed.
7114b11b2bSmrg      qemu_cpu: [74Kf]
7214b11b2bSmrg      timeout: 2h
7314b11b2bSmrg      runner_tags: [kvm]
7414b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
7514b11b2bSmrg    inputs:
7614b11b2bSmrg      target: linux-ppc
7714b11b2bSmrg      qemu_cpu: [g4]
7814b11b2bSmrg      timeout: 2h
7914b11b2bSmrg      test_timeout_multiplier: 30
8014b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
8114b11b2bSmrg    inputs:
8214b11b2bSmrg      target: linux-ppc64
8314b11b2bSmrg      qemu_cpu: [power9]
8414b11b2bSmrg      timeout: 2h
8514b11b2bSmrg      test_timeout_multiplier: 30
8614b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
8714b11b2bSmrg    inputs:
8814b11b2bSmrg      target: linux-ppc64le
8914b11b2bSmrg      qemu_cpu: [power10]
9014b11b2bSmrg      runner_tags: [kvm]
9114b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
9214b11b2bSmrg    inputs:
9314b11b2bSmrg      target: linux-riscv64
9414b11b2bSmrg      qemu_cpu:
9514b11b2bSmrg        # Test on target without RVV (verify no autovectorization).
9614b11b2bSmrg        - rv64,v=false
9714b11b2bSmrg        # Test correctness for different VLENs.
9814b11b2bSmrg        - rv64,v=true,vext_spec=v1.0,vlen=128,elen=64
9914b11b2bSmrg        - rv64,v=true,vext_spec=v1.0,vlen=256,elen=64
10014b11b2bSmrg        - rv64,v=true,vext_spec=v1.0,vlen=512,elen=64
10114b11b2bSmrg        - rv64,v=true,vext_spec=v1.0,vlen=1024,elen=64
10214b11b2bSmrg      runner_tags: [kvm]
10314b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
10414b11b2bSmrg    inputs:
10514b11b2bSmrg      target: windows-686
10614b11b2bSmrg      pixman_disable:
10714b11b2bSmrg        # The same as for linux-386.
10814b11b2bSmrg        - "sse2 ssse3"
10914b11b2bSmrg        - "mmx ssse3"
11014b11b2bSmrg        - "mmx sse2"
11114b11b2bSmrg      retry: 2
11214b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
11314b11b2bSmrg    inputs:
11414b11b2bSmrg      target: windows-amd64
11514b11b2bSmrg      pixman_disable:
11614b11b2bSmrg        # The same as for linux-amd64.
11714b11b2bSmrg        - ""
11814b11b2bSmrg        - "fast"
11914b11b2bSmrg        - "wholeops"
12014b11b2bSmrg  - local: .gitlab-ci.d/templates/test.yml
12114b11b2bSmrg    inputs:
12214b11b2bSmrg      target: windows-arm64-v8
12314b11b2bSmrg      toolchain: [llvm]
12414b11b2bSmrg      runner_tags: [aarch64]
12514b11b2bSmrg      retry: 2
126