03-test.yml revision 14b11b2b
1# Test stage
2#
3# This stage executes the test suite for pixman for all architectures in
4# different configurations. Build and test is split, as some architectures can
5# have different QEMU configuration or have multiple supported pixman backends,
6# which are executed as job matrix.
7#
8# Mind that `PIXMAN_ENABLE` variable in matrix runs does nothing, but it looks
9# better in CI to indicate what is actually being tested.
10#
11# Some emulated targets are really slow or cannot be run in multithreaded mode
12# (mipsel, arm-v5). Thus coverage reporting is disabled for them.
13
14variables:
15  # Used in summary stage as well.
16  COVERAGE_BASE_DIR: coverage
17  COVERAGE_OUT: ${COVERAGE_BASE_DIR}/${CI_JOB_ID}
18  TEST_NAME: ""  # Allow to specify a set of tests to run with run variables.
19
20include:
21  - local: .gitlab-ci.d/templates/test.yml
22    inputs:
23      target: linux-386
24      toolchain: [gnu]  # TODO LLVM issue: https://gitlab.freedesktop.org/pixman/pixman/-/issues/106
25      pixman_disable:
26        - "sse2 ssse3"  # Testing "mmx"
27        - "mmx ssse3"  # Testing "sse2"
28        - "mmx sse2"  # Testing "ssse3"
29  - local: .gitlab-ci.d/templates/test.yml
30    inputs:
31      target: linux-amd64
32      pixman_disable:
33        - ""
34        - "fast"
35        - "wholeops"
36  - local: .gitlab-ci.d/templates/test.yml
37    inputs:
38      target: linux-arm-v5
39      toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/107
40      pixman_disable: ["arm-neon"] # Test only arm-simd.
41      timeout: 3h
42      test_timeout_multiplier: 40
43      runner_tags: [aarch64]
44  - local: .gitlab-ci.d/templates/test.yml
45    inputs:
46      target: linux-arm-v7
47      runner_tags: [aarch64]
48  - local: .gitlab-ci.d/templates/test.yml
49    inputs:
50      target: linux-arm64-v8
51      runner_tags: [aarch64]
52  - local: .gitlab-ci.d/templates/test.yml
53    inputs:
54      target: linux-mips
55      toolchain: [gnu]  # TODO: Add llvm once the build is fixed.
56      qemu_cpu: [74Kf]
57      job_name_prefix: "."
58      job_name_suffix: ":failing"
59      allow_failure: true  # Some tests seem to fail.
60      retry: 0
61  - local: .gitlab-ci.d/templates/test.yml
62    inputs:
63      target: linux-mips64le
64      toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/108
65      qemu_cpu: [Loongson-3A4000]
66      runner_tags: [kvm]
67  - local: .gitlab-ci.d/templates/test.yml
68    inputs:
69      target: linux-mipsel
70      toolchain: [gnu]  # TODO: Add llvm once the build is fixed.
71      qemu_cpu: [74Kf]
72      timeout: 2h
73      runner_tags: [kvm]
74  - local: .gitlab-ci.d/templates/test.yml
75    inputs:
76      target: linux-ppc
77      qemu_cpu: [g4]
78      timeout: 2h
79      test_timeout_multiplier: 30
80  - local: .gitlab-ci.d/templates/test.yml
81    inputs:
82      target: linux-ppc64
83      qemu_cpu: [power9]
84      timeout: 2h
85      test_timeout_multiplier: 30
86  - local: .gitlab-ci.d/templates/test.yml
87    inputs:
88      target: linux-ppc64le
89      qemu_cpu: [power10]
90      runner_tags: [kvm]
91  - local: .gitlab-ci.d/templates/test.yml
92    inputs:
93      target: linux-riscv64
94      qemu_cpu:
95        # Test on target without RVV (verify no autovectorization).
96        - rv64,v=false
97        # Test correctness for different VLENs.
98        - rv64,v=true,vext_spec=v1.0,vlen=128,elen=64
99        - rv64,v=true,vext_spec=v1.0,vlen=256,elen=64
100        - rv64,v=true,vext_spec=v1.0,vlen=512,elen=64
101        - rv64,v=true,vext_spec=v1.0,vlen=1024,elen=64
102      runner_tags: [kvm]
103  - local: .gitlab-ci.d/templates/test.yml
104    inputs:
105      target: windows-686
106      pixman_disable:
107        # The same as for linux-386.
108        - "sse2 ssse3"
109        - "mmx ssse3"
110        - "mmx sse2"
111      retry: 2
112  - local: .gitlab-ci.d/templates/test.yml
113    inputs:
114      target: windows-amd64
115      pixman_disable:
116        # The same as for linux-amd64.
117        - ""
118        - "fast"
119        - "wholeops"
120  - local: .gitlab-ci.d/templates/test.yml
121    inputs:
122      target: windows-arm64-v8
123      toolchain: [llvm]
124      runner_tags: [aarch64]
125      retry: 2
126