Makefile.include 36.6 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
P
Paolo Bonzini 已提交
118 119 120

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

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

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

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

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

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

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

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

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

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

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

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

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

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

272
check-qtest-sh4-y = tests/endianness-test$(EXESUF)
273

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

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

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

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

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

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

296 297
check-qtest-s390x-y = tests/boot-serial-test$(EXESUF)

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

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

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

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

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

452 453 454

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

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

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

508 509
tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y)

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

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

539 540 541 542
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 已提交
543
tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y)
544 545 546 547 548
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)
549

550 551
tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y)
tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y)
552 553
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)
554
tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)
555
tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)
556 557 558 559 560 561

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)
562 563
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)
564 565

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

585
libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o
J
John Snow 已提交
586
libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o
587
libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o
J
John Snow 已提交
588
libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o
J
John Snow 已提交
589
libqos-pc-obj-y += tests/libqos/ahci.o
A
Andreas Färber 已提交
590
libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o
591
libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o
592
libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o
M
Marc Marí 已提交
593
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
594

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

664 665 666 667 668 669 670 671 672 673 674 675
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 已提交
676 677 678
ifeq ($(CONFIG_POSIX),y)
LIBS += -lutil
endif
N
Nikolay Nikolaev 已提交
679

680 681 682
# QTest rules

TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
683
ifeq ($(CONFIG_POSIX),y)
M
Markus Armbruster 已提交
684
QTEST_TARGETS = $(TARGETS)
685
check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y))
M
Markus Armbruster 已提交
686 687 688
check-qtest-y += $(check-qtest-generic-y)
else
QTEST_TARGETS =
689
endif
690

691
qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
692 693
$(check-qtest-y): $(qtest-obj-y)

694 695
tests/test-qga: tests/test-qga.o $(qtest-obj-y)

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

P
Paolo Bonzini 已提交
716 717
SPEED = quick
GTESTER_OPTIONS = -k $(if $(V),--verbose,-q)
B
Blue Swirl 已提交
718
GCOV_OPTIONS = -n $(if $(V),-f,)
719

P
Paolo Bonzini 已提交
720
# gtester tests, possibly with verbose output
721

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

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

P
Paolo Bonzini 已提交
745
# gtester tests with XML output
K
Kevin Wolf 已提交
746

747 748
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
	$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
749
		QTEST_QEMU_IMG=qemu-img$(EXESUF) \
750
	  gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
751

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

P
Paolo Bonzini 已提交
755
# Reports and overall runs
K
Kevin Wolf 已提交
756

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

P
Paolo Bonzini 已提交
760
check-report.html: check-report.xml
S
Stefan Weil 已提交
761
	$(call quiet-command,gtester-report $< > $@, "  GEN   $@")
P
Paolo Bonzini 已提交
762 763 764 765


# Other tests

766 767
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)

P
Paolo Bonzini 已提交
768
.PHONY: check-tests/qemu-iotests-quick.sh
769
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
P
Paolo Bonzini 已提交
770 771
	$<

772 773 774 775 776
.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
777 778
	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
		$(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
779
		$^ >$*.test.out 2>$*.test.err; \
780 781
		echo $$? >$*.test.exit, \
		"  TEST  $*.out")
782
	@diff -q $(SRC_PATH)/$*.out $*.test.out
783 784
	@# 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 -
785
	@diff -q $(SRC_PATH)/$*.exit $*.test.exit
786

P
Paolo Bonzini 已提交
787 788
# Consolidated targets

W
Wenchao Xia 已提交
789
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
790
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
791
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
P
Paolo Bonzini 已提交
792 793
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-block: $(patsubst %,check-%, $(check-block-y))
794
check: check-qapi-schema check-unit check-qtest
W
Wenchao Xia 已提交
795 796
check-clean:
	$(MAKE) -C tests/tcg clean
A
Andreas Färber 已提交
797
	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
798
	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
W
Wenchao Xia 已提交
799 800

clean: check-clean
801

802 803 804 805
# Build the help program automatically

all: $(QEMU_IOTESTS_HELPERS-y)

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