Makefile.include 34.1 KB
Newer Older
K
Kevin Wolf 已提交
1 2
export SRC_PATH

3 4
qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py

5 6 7 8
# Get the list of all supported sysemu targets
SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \
   $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak)))

P
Paolo Bonzini 已提交
9
check-unit-y = tests/check-qdict$(EXESUF)
10
gcov-files-check-qdict-y = qobject/qdict.c
P
Paolo Bonzini 已提交
11
check-unit-y += tests/check-qfloat$(EXESUF)
12
gcov-files-check-qfloat-y = qobject/qfloat.c
P
Paolo Bonzini 已提交
13
check-unit-y += tests/check-qint$(EXESUF)
14
gcov-files-check-qint-y = qobject/qint.c
P
Paolo Bonzini 已提交
15
check-unit-y += tests/check-qstring$(EXESUF)
16
gcov-files-check-qstring-y = qobject/qstring.c
P
Paolo Bonzini 已提交
17
check-unit-y += tests/check-qlist$(EXESUF)
18
gcov-files-check-qlist-y = qobject/qlist.c
E
Eric Blake 已提交
19 20
check-unit-y += tests/check-qnull$(EXESUF)
gcov-files-check-qnull-y = qobject/qnull.c
P
Paolo Bonzini 已提交
21
check-unit-y += tests/check-qjson$(EXESUF)
22
gcov-files-check-qjson-y = qobject/qjson.c
P
Paolo Bonzini 已提交
23
check-unit-y += tests/test-qmp-output-visitor$(EXESUF)
B
Blue Swirl 已提交
24
gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c
P
Paolo Bonzini 已提交
25
check-unit-y += tests/test-qmp-input-visitor$(EXESUF)
B
Blue Swirl 已提交
26
gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c
P
Paolo Bonzini 已提交
27 28
check-unit-y += tests/test-qmp-input-strict$(EXESUF)
check-unit-y += tests/test-qmp-commands$(EXESUF)
B
Blue Swirl 已提交
29
gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c
P
Paolo Bonzini 已提交
30
check-unit-y += tests/test-string-input-visitor$(EXESUF)
B
Blue Swirl 已提交
31
gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
P
Paolo Bonzini 已提交
32
check-unit-y += tests/test-string-output-visitor$(EXESUF)
B
Blue Swirl 已提交
33
gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
34 35
check-unit-y += tests/test-qmp-event$(EXESUF)
gcov-files-test-qmp-event-y += qapi/qmp-event.c
36 37
check-unit-y += tests/test-opts-visitor$(EXESUF)
gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
P
Paolo Bonzini 已提交
38
check-unit-y += tests/test-coroutine$(EXESUF)
39
gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
40
check-unit-y += tests/test-visitor-serialization$(EXESUF)
M
Michael Tokarev 已提交
41
check-unit-y += tests/test-iov$(EXESUF)
42
gcov-files-test-iov-y = util/iov.c
P
Paolo Bonzini 已提交
43
check-unit-y += tests/test-aio$(EXESUF)
44
check-unit-$(CONFIG_POSIX) += tests/test-rfifolock$(EXESUF)
B
Benoît Canet 已提交
45
check-unit-y += tests/test-throttle$(EXESUF)
B
Blue Swirl 已提交
46 47
gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c
gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c
P
Paolo Bonzini 已提交
48
check-unit-y += tests/test-thread-pool$(EXESUF)
B
Blue Swirl 已提交
49
gcov-files-test-thread-pool-y = thread-pool.c
50 51
gcov-files-test-hbitmap-y = util/hbitmap.c
check-unit-y += tests/test-hbitmap$(EXESUF)
S
Stefan Hajnoczi 已提交
52 53
gcov-files-test-hbitmap-y = blockjob.c
check-unit-y += tests/test-blockjob-txn$(EXESUF)
54 55 56
check-unit-y += tests/test-x86-cpuid$(EXESUF)
# all code tested by test-x86-cpuid is inside topology.h
gcov-files-test-x86-cpuid-y =
57
ifeq ($(CONFIG_SOFTMMU),y)
O
Orit Wasserman 已提交
58
check-unit-y += tests/test-xbzrle$(EXESUF)
59 60 61
gcov-files-test-xbzrle-y = migration/xbzrle.c
check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF)
endif
62 63
check-unit-y += tests/test-cutils$(EXESUF)
gcov-files-test-cutils-y += util/cutils.c
64 65
check-unit-y += tests/test-mul64$(EXESUF)
gcov-files-test-mul64-y = util/host-utils.c
66 67 68
check-unit-y += tests/test-int128$(EXESUF)
# all code tested by test-int128 is inside int128.h
gcov-files-test-int128-y =
P
Paolo Bonzini 已提交
69 70
check-unit-y += tests/rcutorture$(EXESUF)
gcov-files-rcutorture-y = util/rcu.c
M
Mike Day 已提交
71 72
check-unit-y += tests/test-rcu-list$(EXESUF)
gcov-files-test-rcu-list-y = util/rcu.c
E
Emilio G. Cota 已提交
73 74
check-unit-y += tests/test-qdist$(EXESUF)
gcov-files-test-qdist-y = util/qdist.c
E
Emilio G. Cota 已提交
75 76
check-unit-y += tests/test-qht$(EXESUF)
gcov-files-test-qht-y = util/qht.c
77 78
check-unit-y += tests/test-qht-par$(EXESUF)
gcov-files-test-qht-par-y = util/qht.c
79
check-unit-y += tests/test-bitops$(EXESUF)
80
check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF)
I
Igor Mammedov 已提交
81 82
check-unit-y += tests/check-qom-interface$(EXESUF)
gcov-files-check-qom-interface-y = qom/object.c
83 84
check-unit-y += tests/check-qom-proplist$(EXESUF)
gcov-files-check-qom-proplist-y = qom/object.c
L
Leandro Dorileo 已提交
85 86
check-unit-y += tests/test-qemu-opts$(EXESUF)
gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c
87 88
check-unit-y += tests/test-write-threshold$(EXESUF)
gcov-files-test-write-threshold-y = block/write-threshold.c
89
check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF)
90
check-unit-y += tests/test-crypto-cipher$(EXESUF)
91
check-unit-y += tests/test-crypto-secret$(EXESUF)
92
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
93
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
94 95 96
ifneq (,$(findstring qemu-ga,$(TOOLS)))
check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
endif
97
check-unit-y += tests/test-timed-average$(EXESUF)
98
check-unit-y += tests/test-io-task$(EXESUF)
99
check-unit-y += tests/test-io-channel-socket$(EXESUF)
D
Daniel P. Berrange 已提交
100
check-unit-y += tests/test-io-channel-file$(EXESUF)
D
Daniel P. Berrange 已提交
101
check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
102
check-unit-y += tests/test-io-channel-command$(EXESUF)
103
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
104
check-unit-y += tests/test-base64$(EXESUF)
105
check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
106
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
107
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
108
check-unit-y += tests/test-crypto-xts$(EXESUF)
109
check-unit-y += tests/test-crypto-block$(EXESUF)
110 111
gcov-files-test-logging-y = tests/test-logging.c
check-unit-y += tests/test-logging$(EXESUF)
P
Paolo Bonzini 已提交
112 113 114

check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh

A
Anthony Liguori 已提交
115 116
# All QTests for now are POSIX-only, but the dependencies are
# really in libqtest, not in the testcases themselves.
A
Andreas Färber 已提交
117

118 119
check-qtest-generic-y = tests/device-introspect-test$(EXESUF)
gcov-files-generic-y = qdev-monitor.c qmp.c
M
Markus Armbruster 已提交
120

121
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
122 123 124
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

125 126 127
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
128 129 130
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio.c
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/net/virtio-net.c
131 132
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
133 134
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
135 136
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
137 138
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
139 140 141 142 143
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
gcov-files-virtio-y += hw/9pfs/virtio-9p.c
gcov-files-virtio-y += i386-softmmu/hw/9pfs/virtio-9p-device.c
endif
A
Andreas Färber 已提交
144 145
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
146 147
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
148

A
Andreas Färber 已提交
149 150
check-qtest-pci-y += tests/e1000-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000.c
151 152
check-qtest-pci-y += tests/e1000e-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000e.c hw/net/e1000e_core.c
A
Andreas Färber 已提交
153 154
check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
gcov-files-pci-y += hw/net/rtl8139.c
A
Andreas Färber 已提交
155 156 157
check-qtest-pci-y += tests/pcnet-test$(EXESUF)
gcov-files-pci-y += hw/net/pcnet.c
gcov-files-pci-y += hw/net/pcnet-pci.c
A
Andreas Färber 已提交
158 159
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
A
Andreas Färber 已提交
160 161
check-qtest-pci-y += tests/ne2000-test$(EXESUF)
gcov-files-pci-y += hw/net/ne2000.c
A
Andreas Färber 已提交
162 163
check-qtest-pci-y += tests/nvme-test$(EXESUF)
gcov-files-pci-y += hw/block/nvme.c
A
Andreas Färber 已提交
164 165
check-qtest-pci-y += tests/ac97-test$(EXESUF)
gcov-files-pci-y += hw/audio/ac97.c
A
Andreas Färber 已提交
166 167
check-qtest-pci-y += tests/es1370-test$(EXESUF)
gcov-files-pci-y += hw/audio/es1370.c
A
Andreas Färber 已提交
168 169
check-qtest-pci-y += $(check-qtest-virtio-y)
gcov-files-pci-y += $(gcov-files-virtio-y) hw/virtio/virtio-pci.c
A
Andreas Färber 已提交
170
check-qtest-pci-y += tests/tpci200-test$(EXESUF)
171
gcov-files-pci-y += hw/ipack/tpci200.c
A
Andreas Färber 已提交
172
check-qtest-pci-y += $(check-qtest-ipack-y)
173
gcov-files-pci-y += $(gcov-files-ipack-y)
G
Gerd Hoffmann 已提交
174 175 176 177
check-qtest-pci-y += tests/display-vga-test$(EXESUF)
gcov-files-pci-y += hw/display/vga.c
gcov-files-pci-y += hw/display/cirrus_vga.c
gcov-files-pci-y += hw/display/vga-pci.c
178 179 180
gcov-files-pci-y += hw/display/virtio-gpu.c
gcov-files-pci-y += hw/display/virtio-gpu-pci.c
gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c
A
Andreas Färber 已提交
181 182
check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
183
check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
184
gcov-files-pci-y += hw/misc/ivshmem.c
A
Andreas Färber 已提交
185

186 187
check-qtest-i386-y = tests/endianness-test$(EXESUF)
check-qtest-i386-y += tests/fdc-test$(EXESUF)
188
gcov-files-i386-y = hw/block/fdc.c
K
Kevin Wolf 已提交
189
check-qtest-i386-y += tests/ide-test$(EXESUF)
190
check-qtest-i386-y += tests/ahci-test$(EXESUF)
191
check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
192
gcov-files-i386-y += hw/block/hd-geometry.c
193
check-qtest-i386-y += tests/boot-order-test$(EXESUF)
194
check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
195
check-qtest-i386-y += tests/pxe-test$(EXESUF)
196
check-qtest-i386-y += tests/rtc-test$(EXESUF)
C
Corey Minyard 已提交
197 198
check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
199
check-qtest-i386-y += tests/i440fx-test$(EXESUF)
A
Anthony Liguori 已提交
200
check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
201
check-qtest-i386-y += tests/drive_del-test$(EXESUF)
P
Paolo Bonzini 已提交
202
check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
203
check-qtest-i386-y += tests/tco-test$(EXESUF)
P
Paolo Bonzini 已提交
204
gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
A
Andreas Färber 已提交
205 206
check-qtest-i386-y += $(check-qtest-pci-y)
gcov-files-i386-y += $(gcov-files-pci-y)
A
Andreas Färber 已提交
207 208
check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
gcov-files-i386-y += hw/net/vmxnet3.c
209 210
gcov-files-i386-y += hw/net/net_rx_pkt.c
gcov-files-i386-y += hw/net/net_tx_pkt.c
A
Andreas Färber 已提交
211 212
check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
A
Andreas Färber 已提交
213 214
check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/i82801b11.c
A
Andreas Färber 已提交
215 216
check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/ioh3420.c
G
Gonglei 已提交
217 218
check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ohci.c
G
Gonglei 已提交
219 220
check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-uhci.c
A
Andreas Färber 已提交
221 222
check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ehci.c
G
Gerd Hoffmann 已提交
223 224
gcov-files-i386-y += hw/usb/dev-hid.c
gcov-files-i386-y += hw/usb/dev-storage.c
G
Gonglei 已提交
225 226
check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-xhci.c
A
Andreas Färber 已提交
227
check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
G
Gerd Hoffmann 已提交
228 229
check-qtest-i386-y += tests/q35-test$(EXESUF)
gcov-files-i386-y += hw/pci-host/q35.c
230 231 232
check-qtest-i386-$(CONFIG_VHOST_NET_TEST_i386) += tests/vhost-user-test$(EXESUF)
ifeq ($(CONFIG_VHOST_NET_TEST_i386),)
check-qtest-x86_64-$(CONFIG_VHOST_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF)
233
endif
234
check-qtest-i386-y += tests/test-netfilter$(EXESUF)
235
check-qtest-i386-y += tests/test-filter-mirror$(EXESUF)
236
check-qtest-i386-y += tests/test-filter-redirector$(EXESUF)
A
Anthony Liguori 已提交
237
check-qtest-x86_64-y = $(check-qtest-i386-y)
238
gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
239
gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
240 241 242 243 244 245 246 247
check-qtest-mips-y = tests/endianness-test$(EXESUF)
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
check-qtest-ppc64-y = tests/endianness-test$(EXESUF)
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
248
#check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
249
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
250 251
gcov-files-sparc-y += hw/timer/m48t59.c
gcov-files-sparc64-y += hw/timer/m48t59.c
252
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
253
check-qtest-arm-y = tests/ds1338-test$(EXESUF)
254
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
255 256
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
257 258
check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
259 260
check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF)
gcov-files-ppc64-y += ppc64-softmmu/hw/ppc/spapr_pci.c
A
Andreas Färber 已提交
261 262
check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
A
Anthony Liguori 已提交
263

M
Markus Armbruster 已提交
264
check-qtest-generic-y += tests/qom-test$(EXESUF)
265

266
qapi-schema += alternate-any.json
E
Eric Blake 已提交
267 268 269 270 271
qapi-schema += alternate-array.json
qapi-schema += alternate-base.json
qapi-schema += alternate-clash.json
qapi-schema += alternate-conflict-dict.json
qapi-schema += alternate-conflict-string.json
E
Eric Blake 已提交
272
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
273 274 275 276 277 278 279 280 281
qapi-schema += alternate-nested.json
qapi-schema += alternate-unknown.json
qapi-schema += args-alternate.json
qapi-schema += args-any.json
qapi-schema += args-array-empty.json
qapi-schema += args-array-unknown.json
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
282
qapi-schema += args-member-case.json
E
Eric Blake 已提交
283
qapi-schema += args-member-unknown.json
284
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
285 286 287 288 289 290 291 292
qapi-schema += args-union.json
qapi-schema += args-unknown.json
qapi-schema += bad-base.json
qapi-schema += bad-data.json
qapi-schema += bad-ident.json
qapi-schema += bad-type-bool.json
qapi-schema += bad-type-dict.json
qapi-schema += bad-type-int.json
E
Eric Blake 已提交
293 294
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
295 296 297 298 299 300 301 302 303 304 305
qapi-schema += command-int.json
qapi-schema += comments.json
qapi-schema += double-data.json
qapi-schema += double-type.json
qapi-schema += duplicate-key.json
qapi-schema += empty.json
qapi-schema += enum-bad-name.json
qapi-schema += enum-bad-prefix.json
qapi-schema += enum-clash-member.json
qapi-schema += enum-dict-member.json
qapi-schema += enum-int-member.json
306
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
307 308 309 310 311 312 313 314 315 316 317 318
qapi-schema += enum-missing-data.json
qapi-schema += enum-wrong-data.json
qapi-schema += escape-outside-string.json
qapi-schema += escape-too-big.json
qapi-schema += escape-too-short.json
qapi-schema += event-case.json
qapi-schema += event-nest-struct.json
qapi-schema += flat-union-array-branch.json
qapi-schema += flat-union-bad-base.json
qapi-schema += flat-union-bad-discriminator.json
qapi-schema += flat-union-base-any.json
qapi-schema += flat-union-base-union.json
319
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
320
qapi-schema += flat-union-empty.json
E
Eric Blake 已提交
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
qapi-schema += flat-union-inline.json
qapi-schema += flat-union-int-branch.json
qapi-schema += flat-union-invalid-branch-key.json
qapi-schema += flat-union-invalid-discriminator.json
qapi-schema += flat-union-no-base.json
qapi-schema += flat-union-optional-discriminator.json
qapi-schema += flat-union-string-discriminator.json
qapi-schema += funny-char.json
qapi-schema += ident-with-escape.json
qapi-schema += include-before-err.json
qapi-schema += include-cycle.json
qapi-schema += include-format-err.json
qapi-schema += include-nested-err.json
qapi-schema += include-no-file.json
qapi-schema += include-non-file.json
qapi-schema += include-relpath.json
qapi-schema += include-repetition.json
qapi-schema += include-self-cycle.json
qapi-schema += include-simple.json
qapi-schema += indented-expr.json
qapi-schema += leading-comma-list.json
qapi-schema += leading-comma-object.json
qapi-schema += missing-colon.json
qapi-schema += missing-comma-list.json
qapi-schema += missing-comma-object.json
qapi-schema += missing-type.json
qapi-schema += nested-struct-data.json
qapi-schema += non-objects.json
qapi-schema += qapi-schema-test.json
qapi-schema += quoted-structural-chars.json
qapi-schema += redefined-builtin.json
qapi-schema += redefined-command.json
qapi-schema += redefined-event.json
qapi-schema += redefined-type.json
355
qapi-schema += reserved-command-q.json
356
qapi-schema += reserved-enum-q.json
357 358
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
359
qapi-schema += reserved-member-u.json
360
qapi-schema += reserved-member-underscore.json
361 362
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379
qapi-schema += returns-alternate.json
qapi-schema += returns-array-bad.json
qapi-schema += returns-dict.json
qapi-schema += returns-unknown.json
qapi-schema += returns-whitelist.json
qapi-schema += struct-base-clash-deep.json
qapi-schema += struct-base-clash.json
qapi-schema += struct-data-invalid.json
qapi-schema += struct-member-invalid.json
qapi-schema += trailing-comma-list.json
qapi-schema += trailing-comma-object.json
qapi-schema += type-bypass-bad-gen.json
qapi-schema += unclosed-list.json
qapi-schema += unclosed-object.json
qapi-schema += unclosed-string.json
qapi-schema += unicode-str.json
qapi-schema += union-base-no-discriminator.json
380
qapi-schema += union-branch-case.json
381
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
382
qapi-schema += union-empty.json
E
Eric Blake 已提交
383 384 385 386 387 388
qapi-schema += union-invalid-base.json
qapi-schema += union-optional-branch.json
qapi-schema += union-unknown.json
qapi-schema += unknown-escape.json
qapi-schema += unknown-expr-key.json
check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
389

390
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
391 392
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
393 394

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
395 396
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
397 398 399
	tests/test-coroutine.o tests/test-string-output-visitor.o \
	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
400
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
401
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
402
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
403
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
404
	tests/test-qdist.o \
405
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o
P
Paolo Bonzini 已提交
406 407

$(test-obj-y): QEMU_INCLUDES += -Itests
408
QEMU_CFLAGS += -I$(SRC_PATH)/tests
P
Paolo Bonzini 已提交
409

410 411 412

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
413
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
414
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
415
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
416
	$(test-qom-obj-y)
417
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
418
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
419
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
420 421 422 423 424 425

tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y)
tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y)
tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y)
tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y)
tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y)
E
Eric Blake 已提交
426
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
427 428 429 430 431 432 433
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
S
Stefan Hajnoczi 已提交
434
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
435 436 437
tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y)
438
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
439
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
440
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
441
tests/test-int128$(EXESUF): tests/test-int128.o
442 443
tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y)
tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
444
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
445
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
446
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
447
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
448

449
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
450
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
451
	hw/core/bus.o \
452
	hw/core/irq.o \
453
	hw/core/fw-path-provider.o \
454
	$(test-qapi-obj-y)
455
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
456
	migration/vmstate.o migration/qemu-file.o \
457 458
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
459
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
460
	$(test-util-obj-y)
461 462
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
463

464 465
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

P
Paolo Bonzini 已提交
466
tests/test-qapi-types.c tests/test-qapi-types.h :\
467
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
468
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
469
		$(gen-out-type) -o tests -p "test-" $<, \
470
		"  GEN   $@")
P
Paolo Bonzini 已提交
471
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
472
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
473
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
474
		$(gen-out-type) -o tests -p "test-" $<, \
475
		"  GEN   $@")
P
Paolo Bonzini 已提交
476
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
477
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
478
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
479
		$(gen-out-type) -o tests -p "test-" $<, \
480
		"  GEN   $@")
481
tests/test-qapi-event.c tests/test-qapi-event.h :\
482
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
483
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
484
		$(gen-out-type) -o tests -p "test-" $<, \
485
		"  GEN   $@")
486 487 488 489 490
tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
		$(gen-out-type) -o tests -p "test-" $<, \
		"  GEN   $@")
491

492 493 494 495 496 497 498 499 500
tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
501

502 503
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
504 505
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
506
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
507
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
508 509 510 511 512 513

tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS)
tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS)
tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS)

tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS)
514 515
tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
516 517

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
518 519
tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)
520
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
521 522
tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
523 524
tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
D
Daniel P. Berrange 已提交
525 526 527
tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \
	tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \
	tests/io-channel-helpers.o $(test-io-obj-y)
528 529
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
530 531
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
532
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
533
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
534
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
535
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
536

537
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
538
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
539
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
540
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
541
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
542
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
543
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
544
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
545
libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
546

547
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
548 549
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
550
tests/endianness-test$(EXESUF): tests/endianness-test.o
551
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
552
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
553
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
554
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
555 556
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
557
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
558
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
559 560 561
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
	tests/boot-sector.o $(libqos-obj-y)
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
562
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
563
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
564
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
565
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
566
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
567
tests/e1000-test$(EXESUF): tests/e1000-test.o
568
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
569
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
570
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
571
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
572
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
573
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
574
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
575
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
576
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
577
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
578
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
579
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
580
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
581
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o
A
Andreas Färber 已提交
582
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
583
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
584
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
585
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
586
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
587
tests/qom-test$(EXESUF): tests/qom-test.o
588
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
589
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
590
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
591
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
592
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
593
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
594
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
595
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
596
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
597
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
598
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
599
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
600
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
601
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
602
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) $(test-io-obj-y)
603
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
604 605
tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
606
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
607
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
608
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
609
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
610
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
B
Blue Swirl 已提交
611

N
Nikolay Nikolaev 已提交
612 613 614
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
615

616 617 618
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
619
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
620
QTEST_TARGETS = $(TARGETS)
621
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
622 623 624
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
625
endif
626

627
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
628 629
$(check-qtest-y): $(qtest-obj-y)

630 631
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
632 633 634 635 636
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
637 638
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
639
	@echo " make check-unit           Run qobject tests"
640
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
641 642
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
643
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
644 645 646 647 648 649 650
	@echo
	@echo "Please note that HTML reports do not regenerate if the unit tests"
	@echo "has not changed."
	@echo
	@echo "The variable SPEED can be set to control the gtester speed setting."
	@echo "Default options are -k and (for make V=1) --verbose; they can be"
	@echo "changed with variable GTESTER_OPTIONS."
651

P
Paolo Bonzini 已提交
652 653
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
654
GCOV_OPTIONS = -n $(if $(V),-f,)
655

P
Paolo Bonzini 已提交
656
# gtester tests, possibly with verbose output
657

658 659
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
660
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
661
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
662
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
663
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
664
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
665
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
666 667 668
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
669

P
Paolo Bonzini 已提交
670 671
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
672
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
673 674 675
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
676
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
677 678 679
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
680

P
Paolo Bonzini 已提交
681
# gtester tests with XML output
K
Kevin Wolf 已提交
682

683 684
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
685
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
686
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
687

P
Paolo Bonzini 已提交
688 689
check-report-unit.xml: $(check-unit-y)
	$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
K
Kevin Wolf 已提交
690

P
Paolo Bonzini 已提交
691
# Reports and overall runs
K
Kevin Wolf 已提交
692

693
check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
S
Stefan Weil 已提交
694
	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN   $@")
K
Kevin Wolf 已提交
695

P
Paolo Bonzini 已提交
696
check-report.html: check-report.xml
S
Stefan Weil 已提交
697
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
698 699 700 701


# Other tests

702 703
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
704
.PHONY: check-tests/qemu-iotests-quick.sh
705
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
706 707
	$<

708 709 710 711 712
.PHONY: check-tests/test-qapi.py
check-tests/test-qapi.py: tests/test-qapi.py

.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
713 714
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
715
		$^ >$*.test.out 2>$*.test.err; \
716 717
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
718
	@diff -q $(SRC_PATH)/$*.out $*.test.out
719 720
	@# Sanitize error messages (make them independent of build directory)
	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q $(SRC_PATH)/$*.err -
721
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
722

P
Paolo Bonzini 已提交
723 724
# Consolidated targets

W
Wenchao Xia 已提交
725
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
726
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
727
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
728 729
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
730
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
731 732
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
733
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
734
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
735 736

clean: check-clean
737

738 739 740 741
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

742
-include $(wildcard tests/*.d)
A
Anthony Liguori 已提交
743
-include $(wildcard tests/libqos/*.d)