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

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

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

137 138 139
check-qtest-generic-y = tests/qmp-test$(EXESUF)
gcov-files-generic-y = monitor.c qapi/qmp-dispatch.c
check-qtest-generic-y += tests/device-introspect-test$(EXESUF)
140
gcov-files-generic-y = qdev-monitor.c qmp.c
M
Markus Armbruster 已提交
141

142
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
143 144 145
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

146 147 148
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

A
Andreas Färber 已提交
149 150 151
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
152 153
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c
A
Andreas Färber 已提交
154 155
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c
A
Andreas Färber 已提交
156 157
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
gcov-files-virtio-y += hw/virtio/virtio-rng.c
A
Andreas Färber 已提交
158 159
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c
A
Andreas Färber 已提交
160 161 162 163 164
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 已提交
165 166
check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c
167 168
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
gcov-files-virtio-y += $(gcov-files-virtioserial-y)
A
Andreas Färber 已提交
169

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

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

265 266
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

267
check-qtest-mips-y = tests/endianness-test$(EXESUF)
268

269
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
270

271
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
272

273
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
274 275 276
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)
277
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
278 279 280 281 282 283

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)
284
check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF)
285 286
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
287
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
288
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
289
check-qtest-ppc64-y += tests/pxe-test$(EXESUF)
290 291 292 293 294 295
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
296
check-qtest-ppc64-y += $(check-qtest-virtio-y)
297 298 299
check-qtest-ppc64-y += tests/test-netfilter$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-mirror$(EXESUF)
check-qtest-ppc64-y += tests/test-filter-redirector$(EXESUF)
300
check-qtest-ppc64-y += tests/display-vga-test$(EXESUF)
301
check-qtest-ppc64-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF)
302

303
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
304

305
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
306 307 308 309 310

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

311 312
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
313
#gcov-files-sparc64-y += hw/timer/m48t59.c
314
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
315

316
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
317
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
C
Cédric Le Goater 已提交
318
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
319
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
320 321
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
322 323
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
gcov-files-arm-y += hw/timer/arm_mptimer.c
324

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

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

329 330
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

333
qapi-schema += alternate-any.json
E
Eric Blake 已提交
334 335 336 337 338
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 已提交
339
qapi-schema += alternate-empty.json
E
Eric Blake 已提交
340 341 342 343 344 345
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
346 347 348 349
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 已提交
350 351 352
qapi-schema += args-int.json
qapi-schema += args-invalid.json
qapi-schema += args-member-array-bad.json
353
qapi-schema += args-member-case.json
E
Eric Blake 已提交
354
qapi-schema += args-member-unknown.json
355
qapi-schema += args-name-clash.json
E
Eric Blake 已提交
356 357 358 359 360 361 362 363
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 已提交
364 365
qapi-schema += base-cycle-direct.json
qapi-schema += base-cycle-indirect.json
E
Eric Blake 已提交
366 367
qapi-schema += command-int.json
qapi-schema += comments.json
M
Marc-André Lureau 已提交
368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
qapi-schema += doc-bad-args.json
qapi-schema += doc-bad-symbol.json
qapi-schema += doc-duplicated-arg.json
qapi-schema += doc-duplicated-return.json
qapi-schema += doc-duplicated-since.json
qapi-schema += doc-empty-arg.json
qapi-schema += doc-empty-section.json
qapi-schema += doc-empty-symbol.json
qapi-schema += doc-interleaved-section.json
qapi-schema += doc-invalid-end.json
qapi-schema += doc-invalid-end2.json
qapi-schema += doc-invalid-return.json
qapi-schema += doc-invalid-section.json
qapi-schema += doc-invalid-start.json
qapi-schema += doc-missing-colon.json
qapi-schema += doc-missing-expr.json
qapi-schema += doc-missing-space.json
qapi-schema += doc-optional.json
E
Eric Blake 已提交
386 387 388 389 390 391 392 393 394
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
395
qapi-schema += enum-member-case.json
E
Eric Blake 已提交
396 397 398 399 400
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
401
qapi-schema += event-boxed-empty.json
E
Eric Blake 已提交
402 403 404 405 406 407 408
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
409
qapi-schema += flat-union-clash-member.json
E
Eric Blake 已提交
410
qapi-schema += flat-union-empty.json
411
qapi-schema += flat-union-incomplete-branch.json
E
Eric Blake 已提交
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445
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
446
qapi-schema += reserved-command-q.json
447
qapi-schema += reserved-enum-q.json
448 449
qapi-schema += reserved-member-has.json
qapi-schema += reserved-member-q.json
E
Eric Blake 已提交
450
qapi-schema += reserved-member-u.json
451
qapi-schema += reserved-member-underscore.json
452 453
qapi-schema += reserved-type-kind.json
qapi-schema += reserved-type-list.json
E
Eric Blake 已提交
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
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
471
qapi-schema += union-branch-case.json
472
qapi-schema += union-clash-branches.json
E
Eric Blake 已提交
473
qapi-schema += union-empty.json
E
Eric Blake 已提交
474 475 476 477 478
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
M
Marc-André Lureau 已提交
479 480


E
Eric Blake 已提交
481
check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema))
482

483
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
484 485
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
486 487

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
488 489
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
490
	tests/test-coroutine.o tests/test-string-output-visitor.o \
491
	tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \
E
Eric Blake 已提交
492
	tests/test-clone-visitor.o \
493
	tests/test-qobject-input-visitor.o \
494
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
495
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
496
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
497
	tests/rcutorture.o tests/test-rcu-list.o \
498
	tests/test-qdist.o tests/test-shift128.o \
E
Emilio G. Cota 已提交
499 500
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \
	tests/atomic_add-bench.o
P
Paolo Bonzini 已提交
501 502

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

505 506

# Deps that are common to various different sets of tests below
507
test-util-obj-y = $(trace-obj-y) libqemuutil.a libqemustub.a
508
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
509
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
510
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
511
	$(test-qom-obj-y)
512
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
513
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
514
test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o
515 516 517 518 519 520

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 已提交
521
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
522 523 524
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)
525

526
tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y)
527 528
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
529
tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y)
530
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
A
Alberto Garcia 已提交
531
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
532
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
533 534 535
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)
536
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
537
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
538
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
539
tests/test-int128$(EXESUF): tests/test-int128.o
540 541
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 已提交
542
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
543
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
544
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
545
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
546
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
547
tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
548

549
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
550
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
551
	hw/core/bus.o \
552
	hw/core/irq.o \
553
	hw/core/fw-path-provider.o \
554
	hw/core/reset.o \
555
	$(test-qapi-obj-y)
556
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
557
	migration/vmstate.o migration/qemu-file.o \
558 559
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
560
tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y)
561 562
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
563
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o libqemustub.a
P
Paolo Bonzini 已提交
564

565 566
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

567 568 569
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
570
tests/test-qapi-types.c tests/test-qapi-types.h :\
571
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
572
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
573
		$(gen-out-type) -o tests -p "test-" $<, \
574
		"GEN","$@")
P
Paolo Bonzini 已提交
575
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
576
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
577
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
578
		$(gen-out-type) -o tests -p "test-" $<, \
579
		"GEN","$@")
P
Paolo Bonzini 已提交
580
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
581
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
582
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
583
		$(gen-out-type) -o tests -p "test-" $<, \
584
		"GEN","$@")
585
tests/test-qapi-event.c tests/test-qapi-event.h :\
586
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
587
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
588
		$(gen-out-type) -o tests -p "test-" $<, \
589
		"GEN","$@")
590 591 592 593
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-" $<, \
594
		"GEN","$@")
595

596 597 598
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)
599
tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
600
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
601
tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y)
602 603 604
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)
605

606
tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y)
607 608
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
A
Alex Bennée 已提交
609
tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y)
610
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
611
tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y)
612
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
613
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
614
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
615 616 617 618 619 620

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)
621 622
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)
623 624

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
625 626
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)
627
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
628 629
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 已提交
630 631
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 已提交
632 633 634
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)
635 636
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
637 638
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
639
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
640
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
641
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
642
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
643

644
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
645
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
646 647
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
648
libqos-spapr-obj-y += tests/libqos/rtas.o
L
Laurent Vivier 已提交
649
libqos-spapr-obj-y += tests/libqos/pci-spapr.o
650
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
651
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
652
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
653
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
654
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
655
libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
656
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
657

658
tests/qmp-test$(EXESUF): tests/qmp-test.o
659
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
660 661
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
662
tests/endianness-test$(EXESUF): tests/endianness-test.o
663
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
664
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
665
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
666
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
667
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
668
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
669 670
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
671
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
672
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
673
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
674
tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
675
	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
676
tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
A
Andreas Färber 已提交
677
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
678
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
C
Cédric Le Goater 已提交
679
tests/m25p80-test$(EXESUF): tests/m25p80-test.o
680
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
681
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
682
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
683
tests/e1000-test$(EXESUF): tests/e1000-test.o
684
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
685
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
686
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
687
tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
A
Andreas Färber 已提交
688
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
689
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
690
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
691
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
692
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
693
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
694
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
695
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
696
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
697
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
698
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
699
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
700
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
701
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
702
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
703
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
704
tests/qom-test$(EXESUF): tests/qom-test.o
705
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
706
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
707
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
708
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
709
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
710
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
711
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
712
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
713
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
714
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
715
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
716
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
717
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
718
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
719
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
720
tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \
M
Marc-André Lureau 已提交
721 722
	$(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \
	$(chardev-obj-y)
723
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
724
tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y)
M
Markus Armbruster 已提交
725
tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y)
726
tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y)
727
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
728
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
729
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
730
tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
731
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
732
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o contrib/libvhost-user/libvhost-user.o $(test-util-obj-y)
F
Fam Zheng 已提交
733
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
734
tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
B
Blue Swirl 已提交
735

736
tests/migration/stress$(EXESUF): tests/migration/stress.o
737
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
738 739 740 741 742 743 744 745 746 747

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 已提交
748 749 750
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
751

752 753 754
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
755
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
756
QTEST_TARGETS = $(TARGETS)
757
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
758 759 760
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
761
endif
762

763
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
764 765
$(check-qtest-y): $(qtest-obj-y)

766 767
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
768 769 770 771 772
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
773 774
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
775
	@echo " make check-unit           Run qobject tests"
776
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
777 778
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
779
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
780 781 782 783 784 785 786
	@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."
787

P
Paolo Bonzini 已提交
788 789
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
790
GCOV_OPTIONS = -n $(if $(V),-f,)
791

P
Paolo Bonzini 已提交
792
# gtester tests, possibly with verbose output
793

794 795
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
796
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
797
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
798
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
799
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
800
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
801
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
802 803 804
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
805

P
Paolo Bonzini 已提交
806 807
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
808
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
809 810
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
811
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER","$*")
812
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
813 814 815
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
816

P
Paolo Bonzini 已提交
817
# gtester tests with XML output
K
Kevin Wolf 已提交
818

819 820
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
821
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
822
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER","$@")
823

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

P
Paolo Bonzini 已提交
827
# Reports and overall runs
K
Kevin Wolf 已提交
828

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

P
Paolo Bonzini 已提交
832
check-report.html: check-report.xml
833
	$(call quiet-command,gtester-report $< > $@,"GEN","$@")
P
Paolo Bonzini 已提交
834 835 836 837


# Other tests

838 839
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
840
.PHONY: check-tests/qemu-iotests-quick.sh
841
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
842 843
	$<

844 845 846 847 848
.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
849 850
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
851
		$^ >$*.test.out 2>$*.test.err; \
852
		echo $$? >$*.test.exit, \
853
		"TEST","$*.out")
854
	@diff -q $(SRC_PATH)/$*.out $*.test.out
855 856
	@# 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 -
857
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
858

P
Paolo Bonzini 已提交
859 860
# Consolidated targets

W
Wenchao Xia 已提交
861
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
862
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
863
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
864 865
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
866
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
867 868
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
869
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
870
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
871 872

clean: check-clean
873

874 875 876 877
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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