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

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

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

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

132
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
133 134 135
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

136 137 138
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
139 140 141
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
142 143
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
144 145
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
146 147
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
148 149
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
150 151 152 153 154
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 已提交
155 156
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
157 158
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
159

A
Andreas Färber 已提交
160 161
check-qtest-pci-y += tests/e1000-test$(EXESUF)
gcov-files-pci-y += hw/net/e1000.c
162 163
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 已提交
164 165
check-qtest-pci-y += tests/rtl8139-test$(EXESUF)
gcov-files-pci-y += hw/net/rtl8139.c
A
Andreas Färber 已提交
166 167 168
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 已提交
169 170
check-qtest-pci-y += tests/eepro100-test$(EXESUF)
gcov-files-pci-y += hw/net/eepro100.c
A
Andreas Färber 已提交
171 172
check-qtest-pci-y += tests/ne2000-test$(EXESUF)
gcov-files-pci-y += hw/net/ne2000.c
A
Andreas Färber 已提交
173 174
check-qtest-pci-y += tests/nvme-test$(EXESUF)
gcov-files-pci-y += hw/block/nvme.c
A
Andreas Färber 已提交
175 176
check-qtest-pci-y += tests/ac97-test$(EXESUF)
gcov-files-pci-y += hw/audio/ac97.c
A
Andreas Färber 已提交
177 178
check-qtest-pci-y += tests/es1370-test$(EXESUF)
gcov-files-pci-y += hw/audio/es1370.c
A
Andreas Färber 已提交
179 180
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 已提交
181
check-qtest-pci-y += tests/tpci200-test$(EXESUF)
182
gcov-files-pci-y += hw/ipack/tpci200.c
A
Andreas Färber 已提交
183
check-qtest-pci-y += $(check-qtest-ipack-y)
184
gcov-files-pci-y += $(gcov-files-ipack-y)
G
Gerd Hoffmann 已提交
185 186 187 188
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
189 190 191
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 已提交
192 193
check-qtest-pci-y += tests/intel-hda-test$(EXESUF)
gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c
194
check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
A
Andreas Färber 已提交
195
gcov-files-pci-y += hw/misc/ivshmem.c
A
Andreas Färber 已提交
196

197 198
check-qtest-i386-y = tests/endianness-test$(EXESUF)
check-qtest-i386-y += tests/fdc-test$(EXESUF)
199
gcov-files-i386-y = hw/block/fdc.c
K
Kevin Wolf 已提交
200
check-qtest-i386-y += tests/ide-test$(EXESUF)
201
check-qtest-i386-y += tests/ahci-test$(EXESUF)
202
check-qtest-i386-y += tests/hd-geo-test$(EXESUF)
203
gcov-files-i386-y += hw/block/hd-geometry.c
204
check-qtest-i386-y += tests/boot-order-test$(EXESUF)
205
check-qtest-i386-y += tests/bios-tables-test$(EXESUF)
206
check-qtest-i386-y += tests/boot-serial-test$(EXESUF)
207
check-qtest-i386-y += tests/pxe-test$(EXESUF)
208
check-qtest-i386-y += tests/rtc-test$(EXESUF)
C
Corey Minyard 已提交
209 210
check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF)
check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF)
211
check-qtest-i386-y += tests/i440fx-test$(EXESUF)
A
Anthony Liguori 已提交
212
check-qtest-i386-y += tests/fw_cfg-test$(EXESUF)
213
check-qtest-i386-y += tests/drive_del-test$(EXESUF)
P
Paolo Bonzini 已提交
214
check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF)
215
check-qtest-i386-y += tests/tco-test$(EXESUF)
P
Paolo Bonzini 已提交
216
gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c
A
Andreas Färber 已提交
217 218
check-qtest-i386-y += $(check-qtest-pci-y)
gcov-files-i386-y += $(gcov-files-pci-y)
A
Andreas Färber 已提交
219 220
check-qtest-i386-y += tests/vmxnet3-test$(EXESUF)
gcov-files-i386-y += hw/net/vmxnet3.c
221 222
gcov-files-i386-y += hw/net/net_rx_pkt.c
gcov-files-i386-y += hw/net/net_tx_pkt.c
A
Andreas Färber 已提交
223 224
check-qtest-i386-y += tests/pvpanic-test$(EXESUF)
gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c
A
Andreas Färber 已提交
225 226
check-qtest-i386-y += tests/i82801b11-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/i82801b11.c
A
Andreas Färber 已提交
227 228
check-qtest-i386-y += tests/ioh3420-test$(EXESUF)
gcov-files-i386-y += hw/pci-bridge/ioh3420.c
G
Gonglei 已提交
229 230
check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ohci.c
G
Gonglei 已提交
231 232
check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-uhci.c
A
Andreas Färber 已提交
233 234
check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-ehci.c
G
Gerd Hoffmann 已提交
235 236
gcov-files-i386-y += hw/usb/dev-hid.c
gcov-files-i386-y += hw/usb/dev-storage.c
G
Gonglei 已提交
237 238
check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-i386-y += hw/usb/hcd-xhci.c
A
Andreas Färber 已提交
239
check-qtest-i386-y += tests/pc-cpu-test$(EXESUF)
G
Gerd Hoffmann 已提交
240 241
check-qtest-i386-y += tests/q35-test$(EXESUF)
gcov-files-i386-y += hw/pci-host/q35.c
242 243 244
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)
245
endif
246
check-qtest-i386-y += tests/test-netfilter$(EXESUF)
247
check-qtest-i386-y += tests/test-filter-mirror$(EXESUF)
248
check-qtest-i386-y += tests/test-filter-redirector$(EXESUF)
D
Dr. David Alan Gilbert 已提交
249
check-qtest-i386-y += tests/postcopy-test$(EXESUF)
250
check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF)
M
Marc-André Lureau 已提交
251
check-qtest-x86_64-y += $(check-qtest-i386-y)
252
gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c
253
gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y))
254

255 256
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

257
check-qtest-mips-y = tests/endianness-test$(EXESUF)
258

259
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
260

261
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
262

263
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
264 265 266
check-qtest-ppc-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
267
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
268 269 270 271 272 273

check-qtest-ppc64-y = tests/spapr-phb-test$(EXESUF)
gcov-files-ppc64-y = ppc64-softmmu/hw/ppc/spapr_pci.c
check-qtest-ppc64-y += tests/endianness-test$(EXESUF)
check-qtest-ppc64-y += tests/boot-order-test$(EXESUF)
check-qtest-ppc64-y += tests/prom-env-test$(EXESUF)
274
check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
275 276
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
277
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
278
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
279
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
280 281 282 283 284 285
check-qtest-ppc64-y += tests/usb-hcd-ohci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-ohci.c
check-qtest-ppc64-y += tests/usb-hcd-uhci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-uhci.c
check-qtest-ppc64-y += tests/usb-hcd-xhci-test$(EXESUF)
gcov-files-ppc64-y += hw/usb/hcd-xhci.c
286
check-qtest-ppc64-y += $(check-qtest-virtio-y)
287

288
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
289

290
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
291 292 293 294 295

check-qtest-sparc-y = tests/prom-env-test$(EXESUF)
#check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
#gcov-files-sparc-y = hw/timer/m48t59.c

296 297
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
298 299 300 301
#gcov-files-sparc64-y += hw/timer/m48t59.c
#Disabled for now, triggers a TCG bug on 32-bit hosts
#check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)

302
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
303
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
C
Cédric Le Goater 已提交
304
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
305
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
306 307
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
308 309
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
gcov-files-arm-y += hw/timer/arm_mptimer.c
310

A
Andreas Färber 已提交
311
check-qtest-microblazeel-y = $(check-qtest-microblaze-y)
312

A
Andreas Färber 已提交
313
check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
A
Anthony Liguori 已提交
314

315 316
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

319
qapi-schema += alternate-any.json
E
Eric Blake 已提交
320 321 322 323 324
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 已提交
325
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
326 327 328 329 330 331
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
332 333 334 335
qapi-schema += args-bad-boxed.json
qapi-schema += args-boxed-anon.json
qapi-schema += args-boxed-empty.json
qapi-schema += args-boxed-string.json
E
Eric Blake 已提交
336 337 338
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
339
qapi-schema += args-member-case.json
E
Eric Blake 已提交
340
qapi-schema += args-member-unknown.json
341
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
342 343 344 345 346 347 348 349
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 已提交
350 351
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
352 353 354 355 356 357 358 359 360 361 362
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
363
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
364 365 366 367 368
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
369
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
370 371 372 373 374 375 376
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
377
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
378
qapi-schema += flat-union-empty.json
379
qapi-schema += flat-union-incomplete-branch.json
E
Eric Blake 已提交
380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413
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
414
qapi-schema += reserved-command-q.json
415
qapi-schema += reserved-enum-q.json
416 417
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
418
qapi-schema += reserved-member-u.json
419
qapi-schema += reserved-member-underscore.json
420 421
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438
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
439
qapi-schema += union-branch-case.json
440
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
441
qapi-schema += union-empty.json
E
Eric Blake 已提交
442 443 444 445 446 447
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))
448

449
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
450 451
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
452 453

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
454 455
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
456
	tests/test-coroutine.o tests/test-string-output-visitor.o \
457
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
458
	tests/test-clone-visitor.o \
459
	tests/test-qobject-input-visitor.o tests/test-qobject-input-strict.o \
460
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
461
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
462
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
463
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
464
	tests/test-qdist.o \
E
Emilio G. Cota 已提交
465 466
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
	tests/atomic_add-bench.o
P
Paolo Bonzini 已提交
467 468

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

471 472 473

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
474
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
475
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
476
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
477
	$(test-qom-obj-y)
478
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
479
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
480
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
481 482 483 484 485 486

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 已提交
487
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
488 489 490
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)
491 492

tests/test-char$(EXESUF): tests/test-char.o qemu-char.o qemu-timer.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y)
493 494 495
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-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
A
Alberto Garcia 已提交
496
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
497
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
498 499 500
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)
501
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
502
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
503
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
504
tests/test-int128$(EXESUF): tests/test-int128.o
505 506
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 已提交
507
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
508
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
509
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
510
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
511
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
512
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
513

514
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
515
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
516
	hw/core/bus.o \
517
	hw/core/irq.o \
518
	hw/core/fw-path-provider.o \
519
	$(test-qapi-obj-y)
520
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
521
	migration/vmstate.o migration/qemu-file.o \
522 523
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
524
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
525
	$(test-util-obj-y)
526 527
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
528
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o libqemustub.a
P
Paolo Bonzini 已提交
529

530 531
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

532 533 534
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
535
tests/test-qapi-types.c tests/test-qapi-types.h :\
536
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
537
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
538
		$(gen-out-type) -o tests -p "test-" $<, \
539
		"GEN","$@")
P
Paolo Bonzini 已提交
540
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
541
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
542
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
543
		$(gen-out-type) -o tests -p "test-" $<, \
544
		"GEN","$@")
P
Paolo Bonzini 已提交
545
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
546
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
547
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
548
		$(gen-out-type) -o tests -p "test-" $<, \
549
		"GEN","$@")
550
tests/test-qapi-event.c tests/test-qapi-event.h :\
551
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
552
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
553
		$(gen-out-type) -o tests -p "test-" $<, \
554
		"GEN","$@")
555 556 557 558
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-" $<, \
559
		"GEN","$@")
560

561 562 563
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)
564
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
565
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
566 567
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
tests/test-qobject-input-strict$(EXESUF): tests/test-qobject-input-strict.o $(test-qapi-obj-y)
568 569 570
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)
571

572 573
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
574
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
575
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
576
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
577
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
578
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
579 580 581 582 583 584

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)
585 586
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)
587 588

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
589 590
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)
591
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
592 593
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 已提交
594 595
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 已提交
596 597 598
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)
599 600
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
601 602
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
603
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
604
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
605
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
606
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
607

608
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
609
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
610 611
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
612
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
613
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
614
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
615
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
616
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
617
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
618
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
619
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
620
libqos-virtio-obj-y = $(libqos-spapr-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
621

622
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
623 624
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
625
tests/endianness-test$(EXESUF): tests/endianness-test.o
626
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
627
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
628
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
629
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
630
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
631
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
632 633
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
634
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
635
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
636
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
637 638 639
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 已提交
640
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
641
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
C
Cédric Le Goater 已提交
642
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
643
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
644
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
645
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
646
tests/e1000-test$(EXESUF): tests/e1000-test.o
647
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
648
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
649
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
650
tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
A
Andreas Färber 已提交
651
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
652
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
653
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
654
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
655
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
656
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
657
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
658
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
659
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
660
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
661
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
662
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
663
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
664
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
665
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
666
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
667
tests/qom-test$(EXESUF): tests/qom-test.o
668
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
669
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
670
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
671
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
672
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
673
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
674
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
675
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
676
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
677
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
678
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
679
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
680
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
681
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
682
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
683
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y)
684
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
685 686
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)
687
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
688
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
689
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
690
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
691
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
692
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o contrib/libvhost-user/libvhost-user.o $(test-util-obj-y)
F
Fam Zheng 已提交
693
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
694
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
B
Blue Swirl 已提交
695

696
tests/migration/stress$(EXESUF): tests/migration/stress.o
697
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
698 699 700 701 702 703 704 705 706 707

INITRD_WORK_DIR=tests/migration/initrd

tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
	mkdir -p $(INITRD_WORK_DIR)
	cp $< $(INITRD_WORK_DIR)/init
	(cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@
	rm $(INITRD_WORK_DIR)/init
	rmdir $(INITRD_WORK_DIR)

N
Nikolay Nikolaev 已提交
708 709 710
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
711

712 713 714
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
715
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
716
QTEST_TARGETS = $(TARGETS)
717
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
718 719 720
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
721
endif
722

723
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
724 725
$(check-qtest-y): $(qtest-obj-y)

726 727
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
728 729 730 731 732
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
733 734
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
735
	@echo " make check-unit           Run qobject tests"
736
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
737 738
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
739
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
740 741 742 743 744 745 746
	@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."
747

P
Paolo Bonzini 已提交
748 749
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
750
GCOV_OPTIONS = -n $(if $(V),-f,)
751

P
Paolo Bonzini 已提交
752
# gtester tests, possibly with verbose output
753

754 755
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
756
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
757
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
758
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
759
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
760
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
761
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
762 763 764
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
765

P
Paolo Bonzini 已提交
766 767
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
768
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
769 770
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
771
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER","$*")
772
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
773 774 775
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
776

P
Paolo Bonzini 已提交
777
# gtester tests with XML output
K
Kevin Wolf 已提交
778

779 780
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
781
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
782
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
783

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

P
Paolo Bonzini 已提交
787
# Reports and overall runs
K
Kevin Wolf 已提交
788

789
check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml
790
	$(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@,"GEN","$@")
K
Kevin Wolf 已提交
791

P
Paolo Bonzini 已提交
792
check-report.html: check-report.xml
793
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
794 795 796 797


# Other tests

798 799
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
800
.PHONY: check-tests/qemu-iotests-quick.sh
801
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
802 803
	$<

804 805 806 807 808
.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
809 810
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
811
		$^ >$*.test.out 2>$*.test.err; \
812
		echo $$? >$*.test.exit, \
813
		"TEST","$*.out")
814
	@diff -q $(SRC_PATH)/$*.out $*.test.out
815 816
	@# 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 -
817
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
818

P
Paolo Bonzini 已提交
819 820
# Consolidated targets

W
Wenchao Xia 已提交
821
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
822
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
823
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
824 825
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
826
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
827 828
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
829
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
830
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
831 832

clean: check-clean
833

834 835 836 837
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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