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

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

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

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

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

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

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

128
gcov-files-ipack-y += hw/ipack/ipack.c
A
Andreas Färber 已提交
129 130 131
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
gcov-files-ipack-y += hw/char/ipoctal232.c

132 133 134
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
gcov-files-virtioserial-y += hw/char/virtio-console.c

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

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

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

250 251
check-qtest-alpha-y = tests/boot-serial-test$(EXESUF)

252
check-qtest-mips-y = tests/endianness-test$(EXESUF)
253

254
check-qtest-mips64-y = tests/endianness-test$(EXESUF)
255

256
check-qtest-mips64el-y = tests/endianness-test$(EXESUF)
257

258
check-qtest-ppc-y = tests/endianness-test$(EXESUF)
259 260 261
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)
262
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
263 264 265 266 267 268 269 270

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)
check-qtest-ppc64-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc64-y += tests/postcopy-test$(EXESUF)
271
check-qtest-ppc64-y += tests/boot-serial-test$(EXESUF)
272
check-qtest-ppc64-y += tests/rtas-test$(EXESUF)
273

274
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
275

276
check-qtest-sh4eb-y = tests/endianness-test$(EXESUF)
277 278 279 280 281

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

282 283
check-qtest-sparc64-y = tests/endianness-test$(EXESUF)
#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF)
284 285 286 287
#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)

288
check-qtest-arm-y = tests/tmp105-test$(EXESUF)
T
Thomas Huth 已提交
289
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
290
gcov-files-arm-y += hw/misc/tmp105.c
M
Marc Marí 已提交
291 292
check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c
293

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

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

298 299
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

M
Markus Armbruster 已提交
300
check-qtest-generic-y += tests/qom-test$(EXESUF)
D
Dmitry Osipenko 已提交
301
check-qtest-generic-y += tests/ptimer-test$(EXESUF)
302

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

433
GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \
434 435
	tests/test-qmp-commands.h tests/test-qapi-event.h \
	tests/test-qmp-introspect.h
P
Paolo Bonzini 已提交
436 437

test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \
E
Eric Blake 已提交
438 439
	tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \
	tests/check-qjson.o \
P
Paolo Bonzini 已提交
440 441
	tests/test-coroutine.o tests/test-string-output-visitor.o \
	tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \
E
Eric Blake 已提交
442
	tests/test-clone-visitor.o \
P
Paolo Bonzini 已提交
443
	tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
444
	tests/test-qmp-commands.o tests/test-visitor-serialization.o \
445
	tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
P
Paolo Bonzini 已提交
446
	tests/test-opts-visitor.o tests/test-qmp-event.o \
E
Emilio G. Cota 已提交
447
	tests/rcutorture.o tests/test-rcu-list.o \
E
Emilio G. Cota 已提交
448
	tests/test-qdist.o \
449
	tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o
P
Paolo Bonzini 已提交
450 451

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

454 455 456

# Deps that are common to various different sets of tests below
test-util-obj-y = libqemuutil.a libqemustub.a
457
test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y)
458
test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
459
	tests/test-qapi-event.o tests/test-qmp-introspect.o \
460
	$(test-qom-obj-y)
461
test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y)
462
test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y)
463
test-block-obj-y = $(block-obj-y) $(test-io-obj-y)
464 465 466 467 468 469

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 已提交
470
tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y)
471 472 473 474 475 476 477
tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y)
tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y)
tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y)
tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y)
tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y)
tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y)
tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
A
Alberto Garcia 已提交
478
tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y)
S
Stefan Hajnoczi 已提交
479
tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y)
480 481 482
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)
483
tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
484
tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y)
485
tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o
486
tests/test-int128$(EXESUF): tests/test-int128.o
487 488
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 已提交
489
tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y)
E
Emilio G. Cota 已提交
490
tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y)
491
tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y)
492
tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y)
493
tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y)
P
Paolo Bonzini 已提交
494

495
tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \
496
	hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\
497
	hw/core/bus.o \
498
	hw/core/irq.o \
499
	hw/core/fw-path-provider.o \
500
	$(test-qapi-obj-y)
501
tests/test-vmstate$(EXESUF): tests/test-vmstate.o \
502
	migration/vmstate.o migration/qemu-file.o \
503 504
        migration/qemu-file-channel.o migration/qjson.o \
	$(test-io-obj-y)
505
tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \
506
	$(test-util-obj-y)
507 508
tests/test-base64$(EXESUF): tests/test-base64.o \
	libqemuutil.a libqemustub.a
P
Paolo Bonzini 已提交
509

510 511
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

512 513 514
tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \
	$(test-block-obj-y)

P
Paolo Bonzini 已提交
515
tests/test-qapi-types.c tests/test-qapi-types.h :\
516
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py)
517
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \
518
		$(gen-out-type) -o tests -p "test-" $<, \
519
		"  GEN   $@")
P
Paolo Bonzini 已提交
520
tests/test-qapi-visit.c tests/test-qapi-visit.h :\
521
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py)
522
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \
523
		$(gen-out-type) -o tests -p "test-" $<, \
524
		"  GEN   $@")
P
Paolo Bonzini 已提交
525
tests/test-qmp-commands.h tests/test-qmp-marshal.c :\
526
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
527
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \
528
		$(gen-out-type) -o tests -p "test-" $<, \
529
		"  GEN   $@")
530
tests/test-qapi-event.c tests/test-qapi-event.h :\
531
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py)
532
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \
533
		$(gen-out-type) -o tests -p "test-" $<, \
534
		"  GEN   $@")
535 536 537 538 539
tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\
$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py)
	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \
		$(gen-out-type) -o tests -p "test-" $<, \
		"  GEN   $@")
540

541 542 543 544
tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y)
tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y)
E
Eric Blake 已提交
545
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
546 547 548 549 550
tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y)
tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y)
tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y)
tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y)
tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y)
551

552 553
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
554 555
tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y)
tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y)
556
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
557
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
558 559 560 561 562 563

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)
564 565
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)
566 567

tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)
568 569
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)
570
tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
571 572
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 已提交
573 574
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 已提交
575 576 577
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)
578 579
tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
580 581
tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \
        tests/io-channel-helpers.o $(test-io-obj-y)
582
tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y)
583
tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y)
584
tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y)
585
tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y)
586

587
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
588
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
589 590
libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o
libqos-spapr-obj-y += tests/libqos/libqos-spapr.o
591
libqos-spapr-obj-y += tests/libqos/rtas.o
592
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
593
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
594
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
595
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
596
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
597
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
598
libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o
599

600
tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
601 602
tests/rtc-test$(EXESUF): tests/rtc-test.o
tests/m48t59-test$(EXESUF): tests/m48t59-test.o
603
tests/endianness-test$(EXESUF): tests/endianness-test.o
604
tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
605
tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
606
tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
607
tests/fdc-test$(EXESUF): tests/fdc-test.o
K
Kevin Wolf 已提交
608
tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
J
John Snow 已提交
609
tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
C
Corey Minyard 已提交
610 611
tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
612
tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
613
tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
614
tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
615 616 617
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 已提交
618
tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y)
619
tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y)
620
tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
G
Gerd Hoffmann 已提交
621
tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
A
Anthony Liguori 已提交
622
tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
623
tests/e1000-test$(EXESUF): tests/e1000-test.o
624
tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y)
625
tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
626
tests/pcnet-test$(EXESUF): tests/pcnet-test.o
A
Andreas Färber 已提交
627
tests/eepro100-test$(EXESUF): tests/eepro100-test.o
A
Andreas Färber 已提交
628
tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o
A
Andreas Färber 已提交
629
tests/ne2000-test$(EXESUF): tests/ne2000-test.o
P
Paolo Bonzini 已提交
630
tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
631
tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
632
tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o
633
tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y)
634
tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y)
635
tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y)
636
tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y)
637
tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y)
A
Andreas Färber 已提交
638
tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o
639
tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o
A
Andreas Färber 已提交
640
tests/tpci200-test$(EXESUF): tests/tpci200-test.o
G
Gerd Hoffmann 已提交
641
tests/display-vga-test$(EXESUF): tests/display-vga-test.o
A
Andreas Färber 已提交
642
tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o
A
Andreas Färber 已提交
643
tests/qom-test$(EXESUF): tests/qom-test.o
644
tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y)
645
tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y)
A
Andreas Färber 已提交
646
tests/nvme-test$(EXESUF): tests/nvme-test.o
A
Andreas Färber 已提交
647
tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
A
Andreas Färber 已提交
648
tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
A
Andreas Färber 已提交
649
tests/ac97-test$(EXESUF): tests/ac97-test.o
A
Andreas Färber 已提交
650
tests/es1370-test$(EXESUF): tests/es1370-test.o
A
Andreas Färber 已提交
651
tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
A
Andreas Färber 已提交
652
tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
653
tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
654
tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
655
tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
656
tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
A
Andreas Färber 已提交
657
tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o
D
Dr. David Alan Gilbert 已提交
658
tests/postcopy-test$(EXESUF): tests/postcopy-test.o
659
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)
660
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
661 662
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)
663
tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
664
tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
665
tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
M
Marc-André Lureau 已提交
666
tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y)
667
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o
D
Dmitry Osipenko 已提交
668
tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o
F
Fam Zheng 已提交
669
tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y)
B
Blue Swirl 已提交
670

671 672 673 674 675 676 677 678 679 680 681 682
tests/migration/stress$(EXESUF): tests/migration/stress.o
	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"  LINK  $(TARGET_DIR)$@")

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 已提交
683 684 685
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
686

687 688 689
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
690
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
691
QTEST_TARGETS = $(TARGETS)
692
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
693 694 695
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
696
endif
697

698
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
699 700
$(check-qtest-y): $(qtest-obj-y)

701 702
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

P
Paolo Bonzini 已提交
703 704 705 706 707
.PHONY: check-help
check-help:
	@echo "Regression testing targets:"
	@echo
	@echo " make check                Run all tests"
708 709
	@echo " make check-qtest-TARGET   Run qtest tests for given target"
	@echo " make check-qtest          Run qtest tests"
P
Paolo Bonzini 已提交
710
	@echo " make check-unit           Run qobject tests"
711
	@echo " make check-qapi-schema    Run QAPI schema tests"
P
Paolo Bonzini 已提交
712 713
	@echo " make check-block          Run block tests"
	@echo " make check-report.html    Generates an HTML test report"
W
Wenchao Xia 已提交
714
	@echo " make check-clean          Clean the tests"
P
Paolo Bonzini 已提交
715 716 717 718 719 720 721
	@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."
722

P
Paolo Bonzini 已提交
723 724
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
725
GCOV_OPTIONS = -n $(if $(V),-f,)
726

P
Paolo Bonzini 已提交
727
# gtester tests, possibly with verbose output
728

729 730
.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
B
Blue Swirl 已提交
731
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
732
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
733
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
734
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
M
Markus Armbruster 已提交
735
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
736
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
737 738 739
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
740

P
Paolo Bonzini 已提交
741 742
.PHONY: $(patsubst %, check-%, $(check-unit-y))
$(patsubst %, check-%, $(check-unit-y)): check-%: %
B
Blue Swirl 已提交
743
	$(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
744 745 746
	$(call quiet-command, \
		MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
		gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*")
747
	$(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y) $(gcov-files-generic-y); do \
B
Blue Swirl 已提交
748 749 750
	  echo Gcov report for $$f:;\
	  $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \
	done,)
751

P
Paolo Bonzini 已提交
752
# gtester tests with XML output
K
Kevin Wolf 已提交
753

754 755
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
756
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
757
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
758

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

P
Paolo Bonzini 已提交
762
# Reports and overall runs
K
Kevin Wolf 已提交
763

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

P
Paolo Bonzini 已提交
767
check-report.html: check-report.xml
S
Stefan Weil 已提交
768
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
769 770 771 772


# Other tests

773 774
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
775
.PHONY: check-tests/qemu-iotests-quick.sh
776
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
777 778
	$<

779 780 781 782 783
.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
784 785
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
786
		$^ >$*.test.out 2>$*.test.err; \
787 788
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
789
	@diff -q $(SRC_PATH)/$*.out $*.test.out
790 791
	@# 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 -
792
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
793

P
Paolo Bonzini 已提交
794 795
# Consolidated targets

W
Wenchao Xia 已提交
796
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
797
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
798
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
799 800
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
801
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
802 803
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
804
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
805
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
806 807

clean: check-clean
808

809 810 811 812
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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