qemuxml2xmltest.c 46.3 KB
Newer Older
1
#include <config.h>
2 3

#include <unistd.h>
4 5 6 7

#include <sys/types.h>
#include <fcntl.h>

8 9
#include "testutils.h"

10 11
#ifdef WITH_QEMU

12
# include "internal.h"
J
Ján Tomko 已提交
13
# include "qemu/qemu_domain_address.h"
M
Matthias Bolte 已提交
14
# include "qemu/qemu_domain.h"
15
# include "testutilsqemu.h"
16
# include "virstring.h"
17

18 19
# define VIR_FROM_THIS VIR_FROM_NONE

20
static virQEMUDriver driver;
21

22 23 24 25 26 27 28
enum {
    WHEN_INACTIVE = 1,
    WHEN_ACTIVE = 2,
    WHEN_BOTH = 3,
};

struct testInfo {
29 30
    char *infile;
    char *outfile;
31
    char *outInactiveName;
32 33

    virQEMUCapsPtr qemuCaps;
34 35
};

36

37 38 39 40 41
static int
testXML2XMLActive(const void *opaque)
{
    const struct testInfo *info = opaque;

42
    return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt,
43
                                      info->infile, info->outfile, true, 0,
44
                                      TEST_COMPARE_DOM_XML2XML_RESULT_SUCCESS);
45 46
}

47

48
static int
49
testXML2XMLInactive(const void *opaque)
50
{
51 52
    const struct testInfo *info = opaque;

53
    return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt, info->infile,
54
                                      info->outInactiveName, false,
55
                                      0,
56
                                      TEST_COMPARE_DOM_XML2XML_RESULT_SUCCESS);
57
}
58

59

60 61 62 63 64 65 66 67
static int
testCompareStatusXMLToXMLFiles(const void *opaque)
{
    const struct testInfo *data = opaque;
    virDomainObjPtr obj = NULL;
    char *actual = NULL;
    int ret = -1;

68
    if (!(obj = virDomainObjParseFile(data->infile, driver.caps, driver.xmlopt,
69 70 71 72
                                      VIR_DOMAIN_DEF_PARSE_STATUS |
                                      VIR_DOMAIN_DEF_PARSE_ACTUAL_NET |
                                      VIR_DOMAIN_DEF_PARSE_PCI_ORIG_STATES |
                                      VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE |
73
                                      VIR_DOMAIN_DEF_PARSE_ALLOW_POST_PARSE_FAIL))) {
74
        VIR_TEST_DEBUG("\nfailed to parse '%s'\n", data->infile);
75
        goto cleanup;
76
    }
77 78 79 80 81 82

    if (!(actual = virDomainObjFormat(driver.xmlopt, obj, NULL,
                                      VIR_DOMAIN_DEF_FORMAT_SECURE |
                                      VIR_DOMAIN_DEF_FORMAT_STATUS |
                                      VIR_DOMAIN_DEF_FORMAT_ACTUAL_NET |
                                      VIR_DOMAIN_DEF_FORMAT_PCI_ORIG_STATES |
83
                                      VIR_DOMAIN_DEF_FORMAT_CLOCK_ADJUST))) {
84
        VIR_TEST_DEBUG("\nfailed to format back '%s'\n", data->infile);
85
        goto cleanup;
86
    }
87

88
    if (virTestCompareToFile(actual, data->outfile) < 0)
89 90 91 92 93
        goto cleanup;

    ret = 0;

 cleanup:
94
    virDomainObjEndAPI(&obj);
95 96 97 98 99
    VIR_FREE(actual);
    return ret;
}


100
static void
101
testInfoClear(struct testInfo *info)
102
{
103 104
    VIR_FREE(info->infile);
    VIR_FREE(info->outfile);
105
    VIR_FREE(info->outInactiveName);
106 107

    virObjectUnref(info->qemuCaps);
108 109 110 111
}


static int
112 113
testInfoSetCommon(struct testInfo *info,
                  int gic)
114
{
115 116 117
    if (!(info->qemuCaps = virQEMUCapsNew()))
        goto error;

118 119 120
    if (testQemuCapsSetGIC(info->qemuCaps, gic) < 0)
        goto error;

121
    if (qemuTestCapsCacheInsert(driver.qemuCapsCache, info->qemuCaps) < 0)
122 123
        goto error;

124 125 126 127 128 129 130 131
    return 0;

 error:
    testInfoClear(info);
    return -1;
}

static int
132 133 134
testInfoSetPaths(struct testInfo *info,
                 const char *name,
                 int when)
135
{
136
    if (virAsprintf(&info->infile, "%s/qemuxml2argvdata/%s.xml",
137 138 139 140
                    abs_srcdir, name) < 0)
        goto error;

    if (when & WHEN_INACTIVE) {
141
        if (virAsprintf(&info->outInactiveName,
142
                        "%s/qemuxml2xmloutdata/%s-inactive.xml",
143 144
                        abs_srcdir, name) < 0)
            goto error;
145

146 147
        if (!virFileExists(info->outInactiveName)) {
            VIR_FREE(info->outInactiveName);
148

149
            if (virAsprintf(&info->outInactiveName,
150
                            "%s/qemuxml2xmloutdata/%s.xml",
151
                            abs_srcdir, name) < 0)
152 153
                goto error;
        }
154
    }
155

156
    if (when & WHEN_ACTIVE) {
157
        if (virAsprintf(&info->outfile,
158
                        "%s/qemuxml2xmloutdata/%s-active.xml",
159 160
                        abs_srcdir, name) < 0)
            goto error;
161

162 163
        if (!virFileExists(info->outfile)) {
            VIR_FREE(info->outfile);
164

165
            if (virAsprintf(&info->outfile,
166
                            "%s/qemuxml2xmloutdata/%s.xml",
167
                            abs_srcdir, name) < 0)
168 169
                goto error;
        }
170
    }
171

172
    return 0;
173

174
 error:
175
    testInfoClear(info);
176
    return -1;
177 178
}

179 180 181 182

static const char *statusPath = abs_srcdir "/qemustatusxml2xmldata/";

static int
183 184
testInfoSetStatusPaths(struct testInfo *info,
                       const char *name)
185
{
186 187
    if (virAsprintf(&info->infile, "%s%s-in.xml", statusPath, name) < 0 ||
        virAsprintf(&info->outfile, "%s%s-out.xml", statusPath, name) < 0)
188 189 190 191 192 193 194 195 196 197
        goto error;

    return 0;

 error:
    testInfoClear(info);
    return -1;
}


A
Andrea Bolognani 已提交
198
# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
199

200
static int
E
Eric Blake 已提交
201
mymain(void)
202 203
{
    int ret = 0;
A
Andrea Bolognani 已提交
204
    char *fakerootdir;
205
    struct testInfo info;
206
    virQEMUDriverConfigPtr cfg = NULL;
207

A
Andrea Bolognani 已提交
208 209 210 211 212 213 214 215 216 217 218 219
    if (VIR_STRDUP_QUIET(fakerootdir, FAKEROOTDIRTEMPLATE) < 0) {
        fprintf(stderr, "Out of memory\n");
        abort();
    }

    if (!mkdtemp(fakerootdir)) {
        fprintf(stderr, "Cannot create fakerootdir");
        abort();
    }

    setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, 1);

220 221
    memset(&info, 0, sizeof(info));

222
    if (qemuTestDriverInit(&driver) < 0)
223
        return EXIT_FAILURE;
224

225 226
    cfg = virQEMUDriverGetConfig(&driver);

227 228
# define DO_TEST_FULL(name, when, gic, ...) \
    do { \
229 230
        if (testInfoSetCommon(&info, gic) < 0 || \
            testInfoSetPaths(&info, name, when) < 0) { \
231 232 233 234 235 236 237 238 239 240 241
            VIR_TEST_DEBUG("Failed to generate test data for '%s'", name); \
            return -1; \
        } \
        virQEMUCapsSetList(info.qemuCaps, __VA_ARGS__, QEMU_CAPS_LAST); \
 \
        if (info.outInactiveName) { \
            if (virTestRun("QEMU XML-2-XML-inactive " name, \
                            testXML2XMLInactive, &info) < 0) \
                ret = -1; \
        } \
 \
242
        if (info.outfile) { \
243 244 245 246
            if (virTestRun("QEMU XML-2-XML-active " name, \
                            testXML2XMLActive, &info) < 0) \
                ret = -1; \
        } \
247
        testInfoClear(&info); \
248 249
    } while (0)

250 251
# define NONE QEMU_CAPS_LAST

252 253
# define DO_TEST(name, ...) \
    DO_TEST_FULL(name, WHEN_BOTH, GIC_NONE, __VA_ARGS__)
254 255


256 257 258 259 260

    /* Unset or set all envvars here that are copied in qemudBuildCommandLine
     * using ADD_ENV_COPY, otherwise these tests may fail due to unexpected
     * values for these envvars */
    setenv("PATH", "/bin", 1);
261

262
    DO_TEST("minimal", NONE);
263 264
    DO_TEST("genid", NONE);
    DO_TEST("genid-auto", NONE);
265 266
    DO_TEST("machine-core-on", NONE);
    DO_TEST("machine-core-off", NONE);
267
    DO_TEST("machine-loadparm-multiple-disks-nets-s390", NONE);
268 269 270 271 272
    DO_TEST("default-kvm-host-arch", NONE);
    DO_TEST("default-qemu-host-arch", NONE);
    DO_TEST("boot-cdrom", NONE);
    DO_TEST("boot-network", NONE);
    DO_TEST("boot-floppy", NONE);
273 274 275
    DO_TEST("boot-floppy-q35",
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI);
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
    DO_TEST("boot-multi", NONE);
    DO_TEST("boot-menu-enable-with-timeout", NONE);
    DO_TEST("boot-menu-disable", NONE);
    DO_TEST("boot-menu-disable-with-timeout", NONE);
    DO_TEST("boot-order", NONE);

    DO_TEST("reboot-timeout-enabled", NONE);
    DO_TEST("reboot-timeout-disabled", NONE);

    DO_TEST("clock-utc", NONE);
    DO_TEST("clock-localtime", NONE);
    DO_TEST("cpu-empty", NONE);
    DO_TEST("cpu-kvmclock", NONE);
    DO_TEST("cpu-host-kvmclock", NONE);
    DO_TEST("cpu-host-passthrough-features", NONE);
    DO_TEST("cpu-host-model-features", NONE);
    DO_TEST("clock-catchup", NONE);
    DO_TEST("kvmclock", NONE);
    DO_TEST("clock-timer-hyperv-rtc", NONE);

    DO_TEST("cpu-eoi-disabled", NONE);
    DO_TEST("cpu-eoi-enabled", NONE);
    DO_TEST("eoi-disabled", NONE);
    DO_TEST("eoi-enabled", NONE);
    DO_TEST("pv-spinlock-disabled", NONE);
    DO_TEST("pv-spinlock-enabled", NONE);

    DO_TEST("hyperv", NONE);
    DO_TEST("hyperv-off", NONE);
    DO_TEST("hyperv-panic", NONE);

    DO_TEST("kvm-features", NONE);
    DO_TEST("kvm-features-off", NONE);

    DO_TEST("pmu-feature", NONE);
    DO_TEST("pmu-feature-off", NONE);

313
    DO_TEST("pages-discard", NONE);
314
    DO_TEST("pages-discard-hugepages", NONE);
315
    DO_TEST("pages-dimm-discard", NONE);
316
    DO_TEST("hugepages-default", NONE);
317
    DO_TEST("hugepages-default-2M", NONE);
318
    DO_TEST("hugepages-default-system-size", NONE);
319
    DO_TEST("hugepages-nodeset", NONE);
320
    DO_TEST("hugepages-numa-default-2M", NONE);
321
    DO_TEST("hugepages-numa-default-dimm", NONE);
322
    DO_TEST("hugepages-numa-nodeset", NONE);
323
    DO_TEST("hugepages-numa-nodeset-part", NONE);
324
    DO_TEST("hugepages-shared", NONE);
325
    DO_TEST("hugepages-memaccess", NONE);
326
    DO_TEST("hugepages-memaccess2", NONE);
327
    DO_TEST("hugepages-nvdimm", NONE);
328 329 330 331 332 333
    DO_TEST("nosharepages", NONE);
    DO_TEST("restore-v2", NONE);
    DO_TEST("migrate", NONE);
    DO_TEST("qemu-ns-no-env", NONE);
    DO_TEST("disk-aio", NONE);
    DO_TEST("disk-cdrom", NONE);
334
    DO_TEST("disk-cdrom-bus-other", NONE);
335 336 337 338
    DO_TEST("disk-floppy", NONE);
    DO_TEST("disk-usb-device", NONE);
    DO_TEST("disk-virtio", NONE);
    DO_TEST("floppy-drive-fat", NONE);
339 340 341 342 343
    DO_TEST("disk-virtio-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES);
    DO_TEST("disk-boot-disk", NONE);
    DO_TEST("disk-boot-cdrom", NONE);
    DO_TEST("disk-error-policy", NONE);
    DO_TEST("disk-fmt-qcow", NONE);
344
    DO_TEST("disk-cache", QEMU_CAPS_SCSI_LSI);
345
    DO_TEST("disk-network-nbd", NONE);
346
    DO_TEST("disk-network-iscsi", QEMU_CAPS_VIRTIO_SCSI);
347 348 349 350 351 352
    DO_TEST("disk-network-gluster", NONE);
    DO_TEST("disk-network-rbd", NONE);
    DO_TEST("disk-network-source-auth", NONE);
    DO_TEST("disk-network-sheepdog", NONE);
    DO_TEST("disk-network-vxhs", NONE);
    DO_TEST("disk-network-tlsx509", NONE);
353 354
    DO_TEST("disk-scsi", QEMU_CAPS_SCSI_LSI, QEMU_CAPS_SCSI_MEGASAS,
            QEMU_CAPS_SCSI_MPTSAS1068, QEMU_CAPS_SCSI_DISK_WWN);
355
    DO_TEST("disk-virtio-scsi-reservations",
356
            QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_PR_MANAGER_HELPER);
357
    DO_TEST("controller-virtio-scsi", QEMU_CAPS_VIRTIO_SCSI);
358 359 360
    DO_TEST("disk-virtio-s390-zpci",
            QEMU_CAPS_DEVICE_ZPCI,
            QEMU_CAPS_CCW);
361
    DO_TEST("disk-mirror-old", NONE);
362
    DO_TEST("disk-mirror", NONE);
363
    DO_TEST("disk-active-commit", NONE);
364 365 366 367 368 369 370
    DO_TEST("graphics-listen-network", NONE);
    DO_TEST("graphics-vnc", NONE);
    DO_TEST("graphics-vnc-websocket", NONE);
    DO_TEST("graphics-vnc-sasl", NONE);
    DO_TEST("graphics-vnc-tls", NONE);
    DO_TEST("graphics-vnc-no-listen-attr", NONE);
    DO_TEST("graphics-vnc-remove-generated-socket", NONE);
371
    cfg->vncAutoUnixSocket = true;
372
    DO_TEST("graphics-vnc-auto-socket-cfg", NONE);
373
    cfg->vncAutoUnixSocket = false;
374 375
    DO_TEST("graphics-vnc-socket", NONE);
    DO_TEST("graphics-vnc-auto-socket", NONE);
376 377
    DO_TEST("graphics-vnc-egl-headless",
            QEMU_CAPS_EGL_HEADLESS);
378 379 380 381 382 383 384 385

    DO_TEST("graphics-sdl", NONE);
    DO_TEST("graphics-sdl-fullscreen", NONE);
    DO_TEST("graphics-spice", NONE);
    DO_TEST("graphics-spice-compression", NONE);
    DO_TEST("graphics-spice-qxl-vga", NONE);
    DO_TEST("graphics-spice-socket", NONE);
    DO_TEST("graphics-spice-auto-socket", NONE);
386
    cfg->spiceAutoUnixSocket = true;
387
    DO_TEST("graphics-spice-auto-socket-cfg", NONE);
388
    cfg->spiceAutoUnixSocket = false;
389 390
    DO_TEST("graphics-spice-egl-headless",
            QEMU_CAPS_EGL_HEADLESS);
391

392 393 394
    DO_TEST("graphics-egl-headless-rendernode",
            QEMU_CAPS_EGL_HEADLESS,
            QEMU_CAPS_EGL_HEADLESS_RENDERNODE);
395

396 397 398 399 400 401 402 403 404 405
    DO_TEST("input-usbmouse", NONE);
    DO_TEST("input-usbtablet", NONE);
    DO_TEST("misc-acpi", NONE);
    DO_TEST("misc-disable-s3", NONE);
    DO_TEST("misc-disable-suspends", NONE);
    DO_TEST("misc-enable-s4", NONE);
    DO_TEST("misc-no-reboot", NONE);
    DO_TEST("misc-uuid", NONE);
    DO_TEST("net-vhostuser", NONE);
    DO_TEST("net-user", NONE);
J
Ján Tomko 已提交
406
    DO_TEST("net-user-addr", NONE);
407 408 409 410 411 412 413
    DO_TEST("net-virtio", NONE);
    DO_TEST("net-virtio-device", NONE);
    DO_TEST("net-virtio-disable-offloads", NONE);
    DO_TEST("net-eth", NONE);
    DO_TEST("net-eth-ifname", NONE);
    DO_TEST("net-eth-hostip", NONE);
    DO_TEST("net-virtio-network-portgroup", NONE);
414
    DO_TEST("net-virtio-rxtxqueuesize", NONE);
415
    DO_TEST("net-hostdev", NONE);
416
    DO_TEST("net-hostdev-bootorder", NONE);
417 418 419 420 421 422 423 424
    DO_TEST("net-hostdev-vfio", NONE);
    DO_TEST("net-midonet", NONE);
    DO_TEST("net-openvswitch", NONE);
    DO_TEST("sound", NONE);
    DO_TEST("sound-device", NONE);
    DO_TEST("watchdog", NONE);
    DO_TEST("net-bandwidth", NONE);
    DO_TEST("net-bandwidth2", NONE);
425
    DO_TEST("net-mtu", NONE);
426
    DO_TEST("net-coalesce", NONE);
427

428
    DO_TEST("serial-tcp-tlsx509-chardev", NONE);
429
    DO_TEST("serial-tcp-tlsx509-chardev-notls", NONE);
430 431 432 433 434 435 436 437 438
    DO_TEST("serial-spiceport", NONE);
    DO_TEST("serial-spiceport-nospice", NONE);
    DO_TEST("console-compat", NONE);
    DO_TEST("console-compat2", NONE);
    DO_TEST("console-virtio-many", NONE);
    DO_TEST("channel-guestfwd", NONE);
    DO_TEST("channel-virtio", NONE);
    DO_TEST("channel-virtio-state", NONE);

439
    DO_TEST("channel-unix-source-path", NONE);
440

441 442 443
    DO_TEST("hostdev-usb-address", NONE);
    DO_TEST("hostdev-pci-address", NONE);
    DO_TEST("hostdev-vfio", NONE);
444 445 446
    DO_TEST("hostdev-vfio-zpci",
            QEMU_CAPS_DEVICE_ZPCI,
            QEMU_CAPS_CCW);
447 448 449 450 451 452 453 454 455 456 457
    DO_TEST("hostdev-vfio-zpci-multidomain-many",
            QEMU_CAPS_DEVICE_VFIO_PCI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_ZPCI);
    DO_TEST("hostdev-vfio-zpci-autogenerate",
            QEMU_CAPS_DEVICE_VFIO_PCI,
            QEMU_CAPS_DEVICE_ZPCI);
    DO_TEST("hostdev-vfio-zpci-boundaries",
            QEMU_CAPS_DEVICE_VFIO_PCI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_ZPCI);
458
    DO_TEST("hostdev-mdev-precreated", NONE);
459
    DO_TEST("hostdev-mdev-display", QEMU_CAPS_VFIO_PCI_DISPLAY);
460
    DO_TEST("pci-rom", NONE);
461
    DO_TEST("pci-rom-disabled", NONE);
462
    DO_TEST("pci-rom-disabled-invalid", NONE);
463 464
    DO_TEST("pci-serial-dev-chardev", NONE);

465 466
    DO_TEST("encrypted-disk", QEMU_CAPS_QCOW2_LUKS);
    DO_TEST("encrypted-disk-usage", QEMU_CAPS_QCOW2_LUKS);
467
    DO_TEST("luks-disks", NONE);
468
    DO_TEST("luks-disks-source", NONE);
469 470 471 472 473 474 475 476 477
    DO_TEST("memtune", NONE);
    DO_TEST("memtune-unlimited", NONE);
    DO_TEST("blkiotune", NONE);
    DO_TEST("blkiotune-device", NONE);
    DO_TEST("cputune", NONE);
    DO_TEST("cputune-zero-shares", NONE);
    DO_TEST("cputune-iothreadsched", NONE);
    DO_TEST("cputune-iothreadsched-zeropriority", NONE);
    DO_TEST("cputune-numatune", NONE);
478
    DO_TEST("vcpu-placement-static",
479 480
            QEMU_CAPS_KVM,
            QEMU_CAPS_OBJECT_IOTHREAD);
481

482 483 484 485 486 487
    DO_TEST("smp", NONE);
    DO_TEST("iothreads", NONE);
    DO_TEST("iothreads-ids", NONE);
    DO_TEST("iothreads-ids-partial", NONE);
    DO_TEST("cputune-iothreads", NONE);
    DO_TEST("iothreads-disk", NONE);
488
    DO_TEST("iothreads-disk-virtio-ccw",
489
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
490
    DO_TEST("iothreads-virtio-scsi-pci",
491
            QEMU_CAPS_VIRTIO_SCSI);
492
    DO_TEST("iothreads-virtio-scsi-ccw",
493
            QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_CCW,
494
            QEMU_CAPS_VIRTIO_S390);
495 496 497 498 499 500 501
    DO_TEST("lease", NONE);
    DO_TEST("event_idx", NONE);
    DO_TEST("vhost_queues", NONE);
    DO_TEST("interface-driver", NONE);
    DO_TEST("interface-server", NONE);
    DO_TEST("virtio-lun", NONE);

502 503 504 505 506
    DO_TEST("usb-none", NONE);
    DO_TEST("usb-controller", NONE);
    DO_TEST("usb-piix3-controller",
            QEMU_CAPS_PIIX3_USB_UHCI);
    DO_TEST("usb-controller-default-q35",
507
            QEMU_CAPS_DEVICE_IOH3420,
508 509
            QEMU_CAPS_PCI_OHCI,
            QEMU_CAPS_PIIX3_USB_UHCI,
510 511
            QEMU_CAPS_NEC_USB_XHCI);
    DO_TEST("usb-controller-explicit-q35",
512
            QEMU_CAPS_DEVICE_IOH3420,
513 514
            QEMU_CAPS_PCI_OHCI,
            QEMU_CAPS_PIIX3_USB_UHCI,
515 516
            QEMU_CAPS_NEC_USB_XHCI);
    DO_TEST("ppc64-usb-controller",
517
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
518 519
            QEMU_CAPS_PCI_OHCI);
    DO_TEST("ppc64-usb-controller-legacy",
520
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
521
            QEMU_CAPS_PIIX3_USB_UHCI);
522 523 524 525 526
    DO_TEST("usb-port-missing", NONE);
    DO_TEST("usb-redir", NONE);
    DO_TEST("usb-redir-filter", NONE);
    DO_TEST("usb-redir-filter-version", NONE);
    DO_TEST("blkdeviotune", NONE);
527
    DO_TEST("blkdeviotune-max", NONE);
528
    DO_TEST("blkdeviotune-group-num", NONE);
529
    DO_TEST("blkdeviotune-max-length", NONE);
530
    DO_TEST("controller-usb-order", NONE);
531

532 533 534 535
    DO_TEST_FULL("seclabel-dynamic-baselabel", WHEN_INACTIVE, GIC_NONE, NONE);
    DO_TEST_FULL("seclabel-dynamic-override", WHEN_INACTIVE, GIC_NONE, NONE);
    DO_TEST_FULL("seclabel-dynamic-labelskip", WHEN_INACTIVE, GIC_NONE, NONE);
    DO_TEST_FULL("seclabel-dynamic-relabel", WHEN_INACTIVE, GIC_NONE, NONE);
536
    DO_TEST("seclabel-static", NONE);
537
    DO_TEST("seclabel-static-labelskip", NONE);
538 539 540 541
    DO_TEST("seclabel-none", NONE);
    DO_TEST("seclabel-dac-none", NONE);
    DO_TEST("seclabel-dynamic-none", NONE);
    DO_TEST("seclabel-device-multiple", NONE);
542
    DO_TEST_FULL("seclabel-dynamic-none-relabel", WHEN_INACTIVE, GIC_NONE, NONE);
543
    DO_TEST("numad-static-vcpu-no-numatune", NONE);
544

545
    DO_TEST("disk-scsi-lun-passthrough-sgio",
546
            QEMU_CAPS_SCSI_LSI, QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_DISK_WWN);
547
    DO_TEST("disk-scsi-disk-vpd",
548
            QEMU_CAPS_SCSI_LSI, QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_SCSI_DISK_WWN);
549 550
    DO_TEST("disk-source-pool", NONE);
    DO_TEST("disk-source-pool-mode", NONE);
551

552 553
    DO_TEST("disk-discard", NONE);
    DO_TEST("disk-detect-zeroes", NONE);
O
Osier Yang 已提交
554

555 556
    DO_TEST("disk-serial", NONE);

557 558 559 560
    DO_TEST("virtio-rng-random",
            QEMU_CAPS_DEVICE_VIRTIO_RNG);
    DO_TEST("virtio-rng-egd",
            QEMU_CAPS_DEVICE_VIRTIO_RNG);
561

562 563 564 565 566 567
    DO_TEST("pseries-nvram",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
    DO_TEST("pseries-panic-missing",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
    DO_TEST("pseries-panic-no-address",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
568

569 570 571 572
    DO_TEST("pseries-phb-simple",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
    DO_TEST("pseries-phb-default-missing",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
573 574 575 576
    DO_TEST("pseries-phb-numa-node",
            QEMU_CAPS_NUMA,
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE);
577

578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599
    DO_TEST("pseries-many-devices",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI);
    DO_TEST("pseries-many-buses-1",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI);
    DO_TEST("pseries-many-buses-2",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI);
    DO_TEST("pseries-hostdevs-1",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_VFIO_PCI);
    DO_TEST("pseries-hostdevs-2",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_VFIO_PCI);
    DO_TEST("pseries-hostdevs-3",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_VFIO_PCI);

600
    DO_TEST("pseries-features",
601
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
602
            QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE,
603
            QEMU_CAPS_MACHINE_PSERIES_CAP_HTM,
604
            QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV,
605 606
            QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT);

607
    DO_TEST("pseries-serial-native",
608
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
609 610
            QEMU_CAPS_DEVICE_SPAPR_VTY);
    DO_TEST("pseries-serial+console-native",
611
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
612 613
            QEMU_CAPS_DEVICE_SPAPR_VTY);
    DO_TEST("pseries-serial-compat",
614
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
615
            QEMU_CAPS_DEVICE_SPAPR_VTY);
616
    DO_TEST("pseries-serial-pci",
617
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
618 619
            QEMU_CAPS_DEVICE_PCI_SERIAL);
    DO_TEST("pseries-serial-usb",
620
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
621 622
            QEMU_CAPS_DEVICE_QEMU_XHCI,
            QEMU_CAPS_DEVICE_USB_SERIAL);
623
    DO_TEST("pseries-console-native",
624
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
625 626
            QEMU_CAPS_DEVICE_SPAPR_VTY);
    DO_TEST("pseries-console-virtio",
627 628 629 630 631
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);

    DO_TEST("mach-virt-serial-native", NONE);
    DO_TEST("mach-virt-serial+console-native", NONE);
    DO_TEST("mach-virt-serial-compat", NONE);
632 633 634 635 636 637 638 639 640 641 642
    DO_TEST("mach-virt-serial-pci",
            QEMU_CAPS_OBJECT_GPEX,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCI_SERIAL);
    DO_TEST("mach-virt-serial-usb",
            QEMU_CAPS_OBJECT_GPEX,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
            QEMU_CAPS_DEVICE_QEMU_XHCI,
            QEMU_CAPS_DEVICE_USB_SERIAL);
643 644 645 646
    DO_TEST("mach-virt-console-native",
            QEMU_CAPS_DEVICE_PL011);
    DO_TEST("mach-virt-console-virtio",
            QEMU_CAPS_DEVICE_VIRTIO_MMIO);
647

648 649 650 651
    DO_TEST("balloon-device-auto", NONE);
    DO_TEST("balloon-device-period", NONE);
    DO_TEST("channel-virtio-auto", NONE);
    DO_TEST("console-compat-auto", NONE);
652
    DO_TEST("disk-scsi-device-auto",
653
            QEMU_CAPS_SCSI_LSI);
654 655 656 657 658 659 660 661 662 663
    DO_TEST("console-virtio", NONE);
    DO_TEST("serial-target-port-auto", NONE);
    DO_TEST("graphics-listen-network2", NONE);
    DO_TEST("graphics-spice-timeout", NONE);
    DO_TEST("numad-auto-vcpu-no-numatune", NONE);
    DO_TEST("numad-auto-memory-vcpu-no-cpuset-and-placement", NONE);
    DO_TEST("numad-auto-memory-vcpu-cpuset", NONE);
    DO_TEST("usb-ich9-ehci-addr", NONE);
    DO_TEST("disk-copy_on_read", NONE);
    DO_TEST("tpm-passthrough", NONE);
664
    DO_TEST("tpm-passthrough-crb", NONE);
665
    DO_TEST("tpm-emulator", NONE);
666 667 668

    DO_TEST("metadata", NONE);
    DO_TEST("metadata-duplicate", NONE);
669

670
    DO_TEST("pci-bridge",
671 672 673 674 675
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_VNC,
            QEMU_CAPS_DEVICE_CIRRUS_VGA);
    DO_TEST("pci-many",
            QEMU_CAPS_DEVICE_CIRRUS_VGA);
676 677 678
    DO_TEST("pci-bridge-many-disks",
            QEMU_CAPS_DEVICE_PCI_BRIDGE);
    DO_TEST("pci-autoadd-addr",
679 680
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_CIRRUS_VGA);
681
    DO_TEST("pci-autoadd-idx",
682 683
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_CIRRUS_VGA);
684
    DO_TEST("pci-autofill-addr", NONE);
685

686
    DO_TEST("q35",
687 688
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
689
            QEMU_CAPS_DEVICE_IOH3420,
690 691 692
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
693
            QEMU_CAPS_DEVICE_QXL);
694 695 696
    DO_TEST("q35-usb2",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
697
            QEMU_CAPS_DEVICE_IOH3420,
698
            QEMU_CAPS_ICH9_AHCI,
699
            QEMU_CAPS_ICH9_USB_EHCI1,
700
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
701
            QEMU_CAPS_DEVICE_QXL);
702
    DO_TEST("q35-usb2-multi",
703 704
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
705
            QEMU_CAPS_DEVICE_IOH3420,
706 707 708
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
709
            QEMU_CAPS_DEVICE_QXL);
710
    DO_TEST("q35-usb2-reorder",
711 712
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
713
            QEMU_CAPS_DEVICE_IOH3420,
714 715 716
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
717
            QEMU_CAPS_DEVICE_QXL);
718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734
    DO_TEST("q35-pcie",
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
735
            QEMU_CAPS_NEC_USB_XHCI,
736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
    /* same XML as q35-pcie, but don't set
       QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY */
    DO_TEST("q35-virtio-pci",
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
755
            QEMU_CAPS_NEC_USB_XHCI,
756
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
757 758 759 760 761 762 763 764 765
    /* same as q35-pcie, but all PCI controllers are added automatically */
    DO_TEST("q35-pcie-autoadd",
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_NEC_USB_XHCI,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
    DO_TEST("q35-default-devices-only",
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
785 786 787 788 789 790 791 792 793 794
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_NEC_USB_XHCI,
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
    DO_TEST("q35-multifunction",
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_NEC_USB_XHCI,
814
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
815
    DO_TEST("q35-virt-manager-basic",
816 817 818
            QEMU_CAPS_KVM,
            QEMU_CAPS_ICH9_DISABLE_S3,
            QEMU_CAPS_ICH9_DISABLE_S4,
819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIRTIO_NET,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_NEC_USB_XHCI,
            QEMU_CAPS_DEVICE_ICH9_INTEL_HDA,
837 838 839 840 841
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_SPICE,
            QEMU_CAPS_DEVICE_QXL,
            QEMU_CAPS_HDA_DUPLEX,
            QEMU_CAPS_USB_REDIR);
842
    DO_TEST("pcie-root",
843 844
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
845
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
846
            QEMU_CAPS_DEVICE_QXL);
847 848

    /* Test automatic and manual setting of pcie-root-port attributes */
849
    DO_TEST("pcie-root-port",
850 851
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
852
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
853
            QEMU_CAPS_DEVICE_QXL);
854 855 856 857 858 859

    /* Make sure the default model for PCIe Root Ports is picked correctly
     * based on QEMU binary capabilities. We use x86/q35 for the test, but
     * any PCIe machine type (such as aarch64/virt) will behave the same */
    DO_TEST("pcie-root-port-model-generic",
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
860
            QEMU_CAPS_DEVICE_IOH3420);
861
    DO_TEST("pcie-root-port-model-ioh3420",
862
            QEMU_CAPS_DEVICE_IOH3420);
863

864
    DO_TEST("pcie-switch-upstream-port",
865 866 867
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
            QEMU_CAPS_ICH9_AHCI,
868
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
869
            QEMU_CAPS_DEVICE_QXL);
870
    DO_TEST("pcie-switch-downstream-port",
871 872 873 874
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
            QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM,
            QEMU_CAPS_ICH9_AHCI,
875
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
876
            QEMU_CAPS_DEVICE_QXL);
877
    DO_TEST("pci-expander-bus",
878
            QEMU_CAPS_DEVICE_PXB);
879
    DO_TEST("pcie-expander-bus",
880 881 882 883
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
            QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM,
            QEMU_CAPS_DEVICE_PXB_PCIE);
884
    DO_TEST("autoindex",
885 886 887 888 889 890 891
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
            QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
892
            QEMU_CAPS_NEC_USB_XHCI);
893 894 895 896 897 898 899
    /* Make sure the user can always override libvirt's default device
     * placement policy by providing an explicit PCI address */
    DO_TEST("q35-pci-force-address",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_HDA_DUPLEX);
900

901 902
    DO_TEST("hostdev-scsi-vhost-scsi-ccw",
            QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_DEVICE_VHOST_SCSI,
903
            QEMU_CAPS_CCW);
904
    DO_TEST("hostdev-scsi-vhost-scsi-pci",
905 906
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_DEVICE_VHOST_SCSI);
907 908 909 910 911
    DO_TEST("hostdev-scsi-vhost-scsi-pcie",
            QEMU_CAPS_KVM,
            QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_DEVICE_VHOST_SCSI,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY);
912
    DO_TEST("hostdev-scsi-lsi",
913 914
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
915
    DO_TEST("hostdev-scsi-virtio-scsi",
916 917
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
918
    DO_TEST("hostdev-scsi-readonly",
919 920
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
921 922

    DO_TEST("hostdev-scsi-shareable",
923 924
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
925
    DO_TEST("hostdev-scsi-sgio",
926 927
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
928
    DO_TEST("hostdev-scsi-rawio",
929 930
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
931 932

    DO_TEST("hostdev-scsi-autogen-address",
933 934
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
935
    DO_TEST("hostdev-scsi-large-unit",
936 937
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
938 939

    DO_TEST("hostdev-scsi-lsi-iscsi",
940 941
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
942
    DO_TEST("hostdev-scsi-lsi-iscsi-auth",
943 944
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
945
    DO_TEST("hostdev-scsi-virtio-iscsi",
946 947
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
948
    DO_TEST("hostdev-scsi-virtio-iscsi-auth",
949 950
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_SCSI_LSI);
951

952 953 954 955 956
    DO_TEST("hostdev-subsys-mdev-vfio-ccw",
            QEMU_CAPS_CCW,
            QEMU_CAPS_CCW_CSSID_UNRESTRICTED,
            QEMU_CAPS_DEVICE_VFIO_CCW);

957
    DO_TEST("s390-defaultconsole",
958
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
959
    DO_TEST("s390-panic",
960
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
961
    DO_TEST("s390-panic-missing",
962
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
963
    DO_TEST("s390-panic-no-address",
964
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
965
    DO_TEST("s390-serial",
966
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
967
    DO_TEST("s390-serial-2",
968
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
969
    DO_TEST("s390-serial-console",
970
            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
971

972 973 974
    DO_TEST("pcihole64", NONE);
    DO_TEST("pcihole64-gib", NONE);
    DO_TEST("pcihole64-none", NONE);
975
    DO_TEST("pcihole64-q35",
976
            QEMU_CAPS_DEVICE_IOH3420,
977 978
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
979
            QEMU_CAPS_DEVICE_QXL,
980
            QEMU_CAPS_Q35_PCI_HOLE64_SIZE);
981

982 983
    DO_TEST("panic", NONE);
    DO_TEST("panic-isa", NONE);
984 985
    DO_TEST("panic-pseries",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
986 987
    DO_TEST("panic-double", NONE);
    DO_TEST("panic-no-address", NONE);
H
Hu Tao 已提交
988

989
    DO_TEST("disk-backing-chains", NONE);
990 991
    DO_TEST("disk-backing-chains-index", NONE);
    DO_TEST("disk-backing-chains-noindex", NONE);
992

993 994
    DO_TEST("chardev-label",
            QEMU_CAPS_DEVICE_VIRTIO_RNG);
J
Ján Tomko 已提交
995

996 997 998 999 1000 1001
    DO_TEST("cpu-numa1", NONE);
    DO_TEST("cpu-numa2", NONE);
    DO_TEST("cpu-numa-no-memory-element", NONE);
    DO_TEST("cpu-numa-disordered", NONE);
    DO_TEST("cpu-numa-disjoint", NONE);
    DO_TEST("cpu-numa-memshared", NONE);
1002

1003 1004 1005
    DO_TEST("numatune-auto-prefer", NONE);
    DO_TEST("numatune-memnode", NONE);
    DO_TEST("numatune-memnode-no-memory", NONE);
1006

1007 1008
    DO_TEST("bios-nvram", NONE);
    DO_TEST("bios-nvram-os-interleave", NONE);
1009

1010 1011 1012
    DO_TEST("tap-vhost", NONE);
    DO_TEST("tap-vhost-incorrect", NONE);
    DO_TEST("shmem", NONE);
1013
    DO_TEST("shmem-plain-doorbell", NONE);
1014 1015
    DO_TEST("smbios", NONE);
    DO_TEST("smbios-multiple-type2", NONE);
1016

1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041
    DO_TEST("os-firmware-bios",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_QXL);
    DO_TEST("os-firmware-efi",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_QXL);
    DO_TEST("os-firmware-efi-secboot",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_ICH9_USB_EHCI1,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_QXL);

1042
    DO_TEST("aarch64-aavmf-virtio-mmio",
1043 1044
            QEMU_CAPS_DEVICE_VIRTIO_MMIO,
            QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM);
1045 1046
    DO_TEST("aarch64-os-firmware-efi",
            QEMU_CAPS_DEVICE_VIRTIO_MMIO);
1047
    DO_TEST("aarch64-virtio-pci-default",
1048
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
1049 1050 1051
            QEMU_CAPS_DEVICE_VIRTIO_MMIO,
            QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
1052 1053 1054
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_VIRTIO_SCSI);
1055
    DO_TEST("aarch64-virtio-pci-manual-addresses",
1056 1057 1058
            QEMU_CAPS_DEVICE_VIRTIO_MMIO,
            QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
1059 1060 1061
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_VIRTIO_SCSI);
1062
    DO_TEST("aarch64-video-virtio-gpu-pci",
1063
            QEMU_CAPS_OBJECT_GPEX,
1064
            QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_IOH3420,
1065
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
1066
            QEMU_CAPS_DEVICE_VIRTIO_GPU);
1067 1068 1069 1070 1071 1072 1073
    DO_TEST("aarch64-pci-serial",
            QEMU_CAPS_DEVICE_PCI_SERIAL,
            QEMU_CAPS_CHARDEV_LOGFILE,
            QEMU_CAPS_OBJECT_GPEX,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT);
1074 1075 1076 1077
    DO_TEST("aarch64-traditional-pci",
            QEMU_CAPS_OBJECT_GPEX,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
1078
            QEMU_CAPS_DEVICE_PCIE_PCI_BRIDGE,
1079 1080
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCI_SERIAL);
1081 1082 1083 1084 1085 1086 1087 1088
    DO_TEST("aarch64-video-default",
            QEMU_CAPS_OBJECT_GPEX,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_VNC);
1089

1090 1091 1092 1093
    DO_TEST_FULL("aarch64-gic-none", WHEN_BOTH, GIC_NONE, NONE);
    DO_TEST_FULL("aarch64-gic-none-v2", WHEN_BOTH, GIC_V2, NONE);
    DO_TEST_FULL("aarch64-gic-none-v3", WHEN_BOTH, GIC_V3, NONE);
    DO_TEST_FULL("aarch64-gic-none-both", WHEN_BOTH, GIC_BOTH, NONE);
1094
    DO_TEST_FULL("aarch64-gic-none-tcg", WHEN_BOTH, GIC_BOTH, NONE);
1095
    DO_TEST_FULL("aarch64-gic-default", WHEN_BOTH, GIC_NONE, NONE);
A
Andrea Bolognani 已提交
1096 1097 1098
    DO_TEST_FULL("aarch64-gic-default-v2", WHEN_BOTH, GIC_V2, NONE);
    DO_TEST_FULL("aarch64-gic-default-v3", WHEN_BOTH, GIC_V3, NONE);
    DO_TEST_FULL("aarch64-gic-default-both", WHEN_BOTH, GIC_BOTH, NONE);
1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110
    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_NONE, NONE);
    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_V2, NONE);
    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_V3, NONE);
    DO_TEST_FULL("aarch64-gic-v2", WHEN_BOTH, GIC_BOTH, NONE);
    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_NONE, NONE);
    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_V2, NONE);
    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_V3, NONE);
    DO_TEST_FULL("aarch64-gic-v3", WHEN_BOTH, GIC_BOTH, NONE);
    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_NONE, NONE);
    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_V2, NONE);
    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_V3, NONE);
    DO_TEST_FULL("aarch64-gic-host", WHEN_BOTH, GIC_BOTH, NONE);
1111

1112 1113 1114
    DO_TEST("memory-hotplug", NONE);
    DO_TEST("memory-hotplug-nonuma", NONE);
    DO_TEST("memory-hotplug-dimm", NONE);
M
Michal Privoznik 已提交
1115
    DO_TEST("memory-hotplug-nvdimm", NONE);
1116
    DO_TEST("memory-hotplug-nvdimm-access", NONE);
1117
    DO_TEST("memory-hotplug-nvdimm-label", NONE);
1118
    DO_TEST("memory-hotplug-nvdimm-align", NONE);
1119
    DO_TEST("memory-hotplug-nvdimm-pmem", NONE);
1120
    DO_TEST("memory-hotplug-nvdimm-readonly", NONE);
1121
    DO_TEST("net-udp", NONE);
1122

1123 1124 1125
    DO_TEST("video-virtio-gpu-device", NONE);
    DO_TEST("video-virtio-gpu-virgl", NONE);
    DO_TEST("video-virtio-gpu-spice-gl", NONE);
1126
    DO_TEST("video-virtio-gpu-sdl-gl", NONE);
1127 1128 1129 1130 1131 1132 1133

    DO_TEST("virtio-input",
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET);
    DO_TEST("virtio-input-passthrough",
            QEMU_CAPS_VIRTIO_INPUT_HOST);
M
Marc-André Lureau 已提交
1134

1135 1136
    DO_TEST("memorybacking-set", NONE);
    DO_TEST("memorybacking-unset", NONE);
1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150

    DO_TEST("virtio-options",
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_VIRTIO_GPU_VIRGL,
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
            QEMU_CAPS_OBJECT_RNG_RANDOM,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_VIRTIO_PCI_IOMMU_PLATFORM,
            QEMU_CAPS_VIRTIO_PCI_ATS);
1151

1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164
    DO_TEST("fd-memory-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
            QEMU_CAPS_KVM);
    DO_TEST("fd-memory-numa-topology2", QEMU_CAPS_OBJECT_MEMORY_FILE,
            QEMU_CAPS_KVM);
    DO_TEST("fd-memory-numa-topology3", QEMU_CAPS_OBJECT_MEMORY_FILE,
            QEMU_CAPS_KVM);

    DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_OBJECT_MEMORY_FILE,
            QEMU_CAPS_KVM);

    DO_TEST("memfd-memory-numa",
            QEMU_CAPS_OBJECT_MEMORY_MEMFD,
            QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB);
1165 1166 1167
    DO_TEST("memfd-memory-default-hugepage",
            QEMU_CAPS_OBJECT_MEMORY_MEMFD,
            QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB);
1168

1169
    DO_TEST("acpi-table", NONE);
J
Ján Tomko 已提交
1170

1171 1172 1173 1174 1175
    DO_TEST("video-device-pciaddr-default",
            QEMU_CAPS_KVM,
            QEMU_CAPS_VNC,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_QXL);
1176 1177
    DO_TEST("video-qxl-heads", NONE);
    DO_TEST("video-qxl-noheads", NONE);
1178
    DO_TEST("video-virtio-gpu-secondary", NONE);
1179
    DO_TEST("video-virtio-gpu-ccw",
1180
            QEMU_CAPS_CCW,
1181 1182 1183 1184 1185
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS,
            QEMU_CAPS_VNC,
            QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW);
1186
    DO_TEST("video-virtio-gpu-ccw-auto",
1187
            QEMU_CAPS_CCW,
1188 1189 1190 1191 1192
            QEMU_CAPS_DEVICE_VIRTIO_GPU,
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS,
            QEMU_CAPS_VNC,
            QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW);
1193
    DO_TEST("video-none-device", NONE);
1194

1195
    DO_TEST("intel-iommu",
1196 1197 1198
            QEMU_CAPS_DEVICE_INTEL_IOMMU);
    DO_TEST("intel-iommu-machine",
            QEMU_CAPS_MACHINE_IOMMU);
1199 1200 1201 1202
    DO_TEST("intel-iommu-caching-mode",
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420);
1203
    DO_TEST("intel-iommu-eim", NONE);
J
Ján Tomko 已提交
1204
    DO_TEST("intel-iommu-device-iotlb", NONE);
J
Ján Tomko 已提交
1205

1206 1207 1208 1209 1210 1211 1212
    DO_TEST("cpu-check-none", NONE);
    DO_TEST("cpu-check-partial", NONE);
    DO_TEST("cpu-check-full", NONE);
    DO_TEST("cpu-check-default-none", NONE);
    DO_TEST("cpu-check-default-none2", NONE);
    DO_TEST("cpu-check-default-partial", NONE);
    DO_TEST("cpu-check-default-partial2", NONE);
M
Marc-André Lureau 已提交
1213
    DO_TEST("vmcoreinfo", NONE);
1214

1215 1216
    DO_TEST("smartcard-host", NONE);
    DO_TEST("smartcard-host-certificates", NONE);
1217
    DO_TEST("smartcard-host-certificates-database", NONE);
1218 1219 1220 1221
    DO_TEST("smartcard-passthrough-tcp", NONE);
    DO_TEST("smartcard-passthrough-spicevmc", NONE);
    DO_TEST("smartcard-controller", NONE);

1222 1223 1224 1225 1226 1227
    DO_TEST("pseries-cpu-compat-power9",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
    DO_TEST("pseries-cpu-compat",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
    DO_TEST("pseries-cpu-exact",
            QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE);
1228

1229
    DO_TEST("user-aliases", QEMU_CAPS_QCOW2_LUKS);
1230
    DO_TEST("input-virtio-ccw",
1231
            QEMU_CAPS_CCW,
1232 1233 1234 1235 1236 1237
            QEMU_CAPS_VIRTIO_KEYBOARD,
            QEMU_CAPS_VIRTIO_MOUSE,
            QEMU_CAPS_VIRTIO_TABLET,
            QEMU_CAPS_DEVICE_VIRTIO_KEYBOARD_CCW,
            QEMU_CAPS_DEVICE_VIRTIO_MOUSE_CCW,
            QEMU_CAPS_DEVICE_VIRTIO_TABLET_CCW);
1238

1239 1240 1241 1242 1243 1244 1245 1246 1247
    DO_TEST("tseg-explicit-size",
            QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_IOH3420,
            QEMU_CAPS_ICH9_AHCI,
            QEMU_CAPS_MACHINE_SMM_OPT,
            QEMU_CAPS_VIRTIO_SCSI,
            QEMU_CAPS_MCH_EXTENDED_TSEG_MBYTES);

1248 1249
# define DO_TEST_STATUS(name) \
    do { \
1250 1251
        if (testInfoSetCommon(&info, GIC_NONE) < 0 || \
            testInfoSetStatusPaths(&info, name) < 0) { \
1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265
            VIR_TEST_DEBUG("Failed to generate status test data for '%s'", name); \
            return -1; \
        } \
\
        if (virTestRun("QEMU status XML-2-XML " name, \
                       testCompareStatusXMLToXMLFiles, &info) < 0) \
            ret = -1; \
\
        testInfoClear(&info); \
    } while (0)


    DO_TEST_STATUS("blockjob-mirror");
    DO_TEST_STATUS("vcpus-multi");
1266
    DO_TEST_STATUS("modern");
1267
    DO_TEST_STATUS("migration-out-nbd");
1268 1269
    DO_TEST_STATUS("migration-in-params");
    DO_TEST_STATUS("migration-out-params");
1270
    DO_TEST_STATUS("migration-out-nbd-tls");
1271
    DO_TEST_STATUS("disk-secinfo-upgrade");
1272

1273 1274
    DO_TEST("vhost-vsock", QEMU_CAPS_DEVICE_VHOST_VSOCK);
    DO_TEST("vhost-vsock-auto", QEMU_CAPS_DEVICE_VHOST_VSOCK);
1275 1276 1277 1278 1279
    DO_TEST("vhost-vsock-ccw", QEMU_CAPS_DEVICE_VHOST_VSOCK,
            QEMU_CAPS_CCW);
    DO_TEST("vhost-vsock-ccw-auto", QEMU_CAPS_DEVICE_VHOST_VSOCK,
            QEMU_CAPS_CCW);

L
Lubomir Rintel 已提交
1280 1281
    DO_TEST("riscv64-virt",
            QEMU_CAPS_DEVICE_VIRTIO_MMIO);
1282 1283
    DO_TEST("riscv64-virt-pci",
            QEMU_CAPS_OBJECT_GPEX);
J
Ján Tomko 已提交
1284

1285 1286 1287 1288
    DO_TEST("virtio-transitional",
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_PCIE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
1289
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
1290
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
1291
            QEMU_CAPS_DEVICE_VHOST_VSOCK,
1292 1293
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI);
1294 1295 1296 1297
    DO_TEST("virtio-non-transitional",
            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
            QEMU_CAPS_DEVICE_PCIE_PCI_BRIDGE,
            QEMU_CAPS_DEVICE_PCIE_ROOT_PORT,
1298
            QEMU_CAPS_DEVICE_VIRTIO_RNG,
1299
            QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
1300
            QEMU_CAPS_DEVICE_VHOST_VSOCK,
1301 1302
            QEMU_CAPS_VIRTIO_INPUT_HOST,
            QEMU_CAPS_VIRTIO_SCSI);
1303

A
Andrea Bolognani 已提交
1304 1305 1306
    if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
        virFileDeleteTree(fakerootdir);

1307
    virObjectUnref(cfg);
1308
    qemuTestDriverFree(&driver);
A
Andrea Bolognani 已提交
1309
    VIR_FREE(fakerootdir);
1310

1311
    return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
1312 1313
}

A
Andrea Bolognani 已提交
1314
VIR_TEST_MAIN_PRELOAD(mymain,
1315
                      abs_builddir "/.libs/virpcimock.so",
1316 1317
                      abs_builddir "/.libs/virrandommock.so",
                      abs_builddir "/.libs/virdeterministichashmock.so")
1318

1319 1320
#else

1321 1322 1323 1324 1325
int
main(void)
{
    return EXIT_AM_SKIP;
}
1326 1327

#endif /* WITH_QEMU */