forked from kvm-unit-tests/kvm-unit-tests
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
321 lines (302 loc) · 7.63 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
image: fedora:37
before_script:
- dnf update -y
- dnf install -y make python
.intree_template:
artifacts:
expire_in: 2 days
paths:
- logs
.outoftree_template:
artifacts:
expire_in: 2 days
paths:
- build/logs
build-aarch64:
extends: .intree_template
script:
- dnf install -y qemu-system-aarch64 gcc-aarch64-linux-gnu
- ./configure --arch=aarch64 --cross-prefix=aarch64-linux-gnu-
- make -j2
- ACCEL=tcg MAX_SMP=8 ./run_tests.sh
cache
debug-bp
debug-sstep
debug-wp
gicv2-active
gicv2-ipi
gicv2-mmio
gicv3-active
gicv3-ipi
its-introspection
its-trigger
pci-test
pmu-cycle-counter
pmu-event-counter-config
pmu-sw-incr
selftest-setup
selftest-smp
selftest-vectors-kernel
selftest-vectors-user
timer
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-arm:
extends: .outoftree_template
script:
- dnf install -y qemu-system-arm gcc-arm-linux-gnu
- mkdir build
- cd build
- ../configure --arch=arm --cross-prefix=arm-linux-gnu-
- make -j2
- ACCEL=tcg MAX_SMP=8 ./run_tests.sh
selftest-setup selftest-vectors-kernel selftest-vectors-user selftest-smp
pci-test pmu-cycle-counter gicv2-ipi gicv2-mmio gicv3-ipi gicv2-active
gicv3-active
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-ppc64be:
extends: .outoftree_template
script:
- dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu
- mkdir build
- cd build
- ../configure --arch=ppc64 --endian=big --cross-prefix=powerpc64-linux-gnu-
- make -j2
- ACCEL=tcg ./run_tests.sh
selftest-setup spapr_hcall rtas-get-time-of-day rtas-get-time-of-day-base
rtas-set-time-of-day emulator
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-ppc64le:
extends: .intree_template
script:
- dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu
- ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-
- make -j2
- ACCEL=tcg ./run_tests.sh
selftest-setup spapr_hcall rtas-get-time-of-day rtas-get-time-of-day-base
rtas-set-time-of-day emulator
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
# build-riscv32:
# Fedora doesn't package a riscv32 compiler for QEMU. Oh, well.
# Select 'rv64' with PROCESSOR_OVERRIDE in case QEMU is too old to have 'max'
build-riscv64:
extends: .intree_template
script:
- dnf install -y qemu-system-riscv gcc-riscv64-linux-gnu
- ./configure --arch=riscv64 --cross-prefix=riscv64-linux-gnu-
- make -j2
- printf "FOO=foo\nBAR=bar\nBAZ=baz\nMVENDORID=0\n" >test-env
- PROCESSOR_OVERRIDE=rv64 ACCEL=tcg KVM_UNIT_TESTS_ENV=test-env ./run_tests.sh
selftest
sbi
| tee results.txt
- grep -q PASS results.txt && ! grep -q FAIL results.txt
build-s390x:
extends: .outoftree_template
script:
- dnf install -y qemu-system-s390x gcc-s390x-linux-gnu
- mkdir build
- cd build
- ../configure --arch=s390x --cross-prefix=s390x-linux-gnu-
- make -j2
- ACCEL=tcg ./run_tests.sh
adtl-status-no-vec-no-gs-tcg
adtl-status-tcg
cpumodel
css
diag10
diag288
diag308
edat
emulator
epsw
exittime
firq-linear-cpu-ids-tcg
firq-nonlinear-cpu-ids-tcg
iep
intercept
mvpg
sck
sclp-1g
sclp-3g
selftest-setup
sieve
smp
stsi
tprot
vector
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-x86_64:
extends: .intree_template
script:
- dnf install -y qemu-system-x86 gcc
- ./configure --arch=x86_64
- make -j2
- ACCEL=tcg ./run_tests.sh
eventinj
intel_iommu
ioapic-split
memory
pks
pku
rdpru
realmode
rmap_chain
setjmp
sieve
smap
smptest
smptest3
syscall
tsc
umip
vmexit_cpuid
vmexit_cr0_wp
vmexit_cr4_pge
vmexit_inl_pmtimer
vmexit_ipi
vmexit_ipi_halt
vmexit_mov_from_cr8
vmexit_mov_to_cr8
vmexit_ple_round_robin
vmexit_tscdeadline
vmexit_tscdeadline_immed
xsave
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-i386:
extends: .outoftree_template
script:
- dnf install -y qemu-system-x86 gcc
- mkdir build
- cd build
- ../configure --arch=i386
- make -j2
- ACCEL=tcg ./run_tests.sh
cmpxchg8b
eventinj
realmode
setjmp
sieve
smap
smptest
smptest3
taskswitch
tsc
umip
vmexit_cpuid
vmexit_cr0_wp
vmexit_cr4_pge
vmexit_inl_pmtimer
vmexit_ipi
vmexit_ipi_halt
vmexit_mov_from_cr8
vmexit_mov_to_cr8
vmexit_ple_round_robin
vmexit_tscdeadline
vmexit_tscdeadline_immed
| tee results.txt
- if grep -q FAIL results.txt ; then exit 1 ; fi
build-clang:
extends: .intree_template
script:
- dnf install -y qemu-system-x86 clang
- ./configure --arch=x86_64 --cc=clang
- make -j2
- ACCEL=tcg ./run_tests.sh
eventinj
intel_iommu
ioapic-split
memory
pks
pku
rdpru
realmode
rmap_chain
setjmp
sieve
smap
smptest
smptest3
syscall
tsc
umip
vmexit_cpuid
vmexit_cr0_wp
vmexit_cr4_pge
vmexit_inl_pmtimer
vmexit_ipi
vmexit_ipi_halt
vmexit_mov_from_cr8
vmexit_mov_to_cr8
vmexit_ple_round_robin
vmexit_tscdeadline
vmexit_tscdeadline_immed
xsave
| tee results.txt
- grep -q PASS results.txt && ! grep -q FAIL results.txt
build-centos7:
extends: .outoftree_template
image: centos:7
before_script:
- yum update -y
- yum install -y make python qemu-kvm gcc
script:
- mkdir build
- cd build
- ../configure --arch=x86_64 --disable-pretty-print-stacks
- make -j2
- ACCEL=tcg ./run_tests.sh
vmexit_cpuid vmexit_mov_from_cr8 vmexit_mov_to_cr8 vmexit_inl_pmtimer
vmexit_ple_round_robin vmexit_tscdeadline vmexit_tscdeadline_immed port80
setjmp sieve tsc rmap_chain umip
| tee results.txt
- grep -q PASS results.txt && ! grep -q FAIL results.txt
# Cirrus-CI provides containers with macOS and Linux with KVM enabled,
# so we can test some scenarios there that are not possible with the
# gitlab-CI shared runners. We use the "cirrus-run" container from the
# libvirt project to start the jobs. See the following URL for more
# information how to set up your environment to use these containers:
#
# https://gitlab.com/libvirt/libvirt/-/blob/v7.0.0/ci/README.rst
#
.cirrus_build_job_template: &cirrus_build_job_definition
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
before_script:
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
< ci/$CI_JOB_NAME.yml > ci/_$CI_JOB_NAME.yml
script:
- cirrus-run -v --show-build-log always ci/_$CI_JOB_NAME.yml
only:
variables:
- $CIRRUS_GITHUB_REPO
- $CIRRUS_API_TOKEN
cirrus-ci-fedora:
<<: *cirrus_build_job_definition
cirrus-ci-macos-i386:
<<: *cirrus_build_job_definition
cirrus-ci-macos-x86-64:
<<: *cirrus_build_job_definition
s390x-kvm:
extends: .intree_template
before_script: []
tags:
- s390x-z15-vm
script:
- ./configure --arch=s390x
- make -j$(nproc)
- ACCEL=kvm ./run_tests.sh
selftest-setup intercept emulator sieve sthyi diag10 diag308 pfmf
cmm vector gs iep cpumodel diag288 stsi sclp-1g sclp-3g css skrf sie
execute
| tee results.txt
- grep -q PASS results.txt && ! grep -q FAIL results.txt
only:
variables:
- $S390X_Z15_RUNNER_AVAILABLE