2008-01-29 18:15:54 +00:00
|
|
|
#include <config.h>
|
2007-11-26 12:03:34 +00:00
|
|
|
|
|
|
|
#include <unistd.h>
|
2007-07-18 21:34:22 +00:00
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
2013-04-16 13:41:44 +00:00
|
|
|
#include "testutils.h"
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#include "internal.h"
|
|
|
|
#include "testutilsqemu.h"
|
|
|
|
#include "virfilewrapper.h"
|
|
|
|
#include "configmake.h"
|
2007-11-26 12:03:34 +00:00
|
|
|
|
2021-04-09 13:41:53 +00:00
|
|
|
#define LIBVIRT_QEMU_CAPSPRIV_H_ALLOW
|
|
|
|
#include "qemu/qemu_capspriv.h"
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define VIR_FROM_THIS VIR_FROM_NONE
|
2013-06-07 15:10:28 +00:00
|
|
|
|
2012-11-28 16:43:10 +00:00
|
|
|
static virQEMUDriver driver;
|
2007-07-18 21:34:22 +00:00
|
|
|
|
2015-03-23 16:24:43 +00:00
|
|
|
enum {
|
|
|
|
WHEN_INACTIVE = 1,
|
|
|
|
WHEN_ACTIVE = 2,
|
|
|
|
WHEN_BOTH = 3,
|
|
|
|
};
|
|
|
|
|
2016-01-27 21:03:52 +00:00
|
|
|
|
2021-04-09 13:41:53 +00:00
|
|
|
static int
|
|
|
|
testXML2XMLCommon(const struct testQemuInfo *info)
|
|
|
|
{
|
2021-08-17 13:30:44 +00:00
|
|
|
if (testQemuInfoInitArgs((struct testQemuInfo *) info) < 0)
|
|
|
|
return -1;
|
|
|
|
|
2023-03-02 16:44:21 +00:00
|
|
|
virFileCacheClear(driver.qemuCapsCache);
|
|
|
|
|
2023-03-08 16:34:25 +00:00
|
|
|
if (qemuTestCapsCacheInsert(driver.qemuCapsCache, info->qemuCaps) < 0)
|
2021-08-17 13:30:44 +00:00
|
|
|
return -1;
|
2021-04-09 13:41:53 +00:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-03-23 16:24:43 +00:00
|
|
|
static int
|
|
|
|
testXML2XMLActive(const void *opaque)
|
|
|
|
{
|
2019-03-31 16:36:27 +00:00
|
|
|
const struct testQemuInfo *info = opaque;
|
2015-03-23 16:24:43 +00:00
|
|
|
|
2021-08-17 14:35:20 +00:00
|
|
|
if (testXML2XMLCommon(info) < 0 ||
|
|
|
|
testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt,
|
|
|
|
info->infile, info->outfile, true,
|
|
|
|
info->parseFlags,
|
|
|
|
TEST_COMPARE_DOM_XML2XML_RESULT_SUCCESS) < 0) {
|
2021-04-09 13:41:53 +00:00
|
|
|
return -1;
|
2021-08-17 14:35:20 +00:00
|
|
|
}
|
2021-04-09 13:41:53 +00:00
|
|
|
|
2021-08-17 14:35:20 +00:00
|
|
|
return 0;
|
2015-03-23 16:24:43 +00:00
|
|
|
}
|
|
|
|
|
2010-07-24 22:18:18 +00:00
|
|
|
|
2011-04-24 22:25:10 +00:00
|
|
|
static int
|
2015-03-23 16:24:43 +00:00
|
|
|
testXML2XMLInactive(const void *opaque)
|
2011-04-24 22:25:10 +00:00
|
|
|
{
|
2019-03-31 16:36:27 +00:00
|
|
|
const struct testQemuInfo *info = opaque;
|
2015-03-23 16:24:43 +00:00
|
|
|
|
2021-08-17 14:35:20 +00:00
|
|
|
if (testXML2XMLCommon(info) < 0 ||
|
|
|
|
testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt,
|
|
|
|
info->infile, info->outfile, false,
|
|
|
|
info->parseFlags,
|
|
|
|
TEST_COMPARE_DOM_XML2XML_RESULT_SUCCESS) < 0) {
|
2021-04-09 13:41:53 +00:00
|
|
|
return -1;
|
2021-08-17 14:35:20 +00:00
|
|
|
}
|
2021-04-09 13:41:53 +00:00
|
|
|
|
2021-08-17 14:35:20 +00:00
|
|
|
return 0;
|
2015-03-23 16:24:43 +00:00
|
|
|
}
|
2010-07-24 22:18:18 +00:00
|
|
|
|
2015-03-23 16:24:43 +00:00
|
|
|
|
2021-03-26 17:53:32 +00:00
|
|
|
static void
|
2019-03-31 16:36:27 +00:00
|
|
|
testInfoSetPaths(struct testQemuInfo *info,
|
2019-04-15 22:43:32 +00:00
|
|
|
const char *suffix,
|
2019-03-31 16:21:45 +00:00
|
|
|
int when)
|
2018-03-02 15:47:32 +00:00
|
|
|
{
|
2019-03-31 16:33:52 +00:00
|
|
|
VIR_FREE(info->infile);
|
|
|
|
VIR_FREE(info->outfile);
|
|
|
|
|
2019-10-22 13:26:14 +00:00
|
|
|
info->infile = g_strdup_printf("%s/qemuxml2argvdata/%s.xml", abs_srcdir,
|
|
|
|
info->name);
|
2015-03-23 16:24:43 +00:00
|
|
|
|
2019-10-22 13:26:14 +00:00
|
|
|
info->outfile = g_strdup_printf("%s/qemuxml2xmloutdata/%s-%s%s.xml",
|
|
|
|
abs_srcdir, info->name,
|
|
|
|
when == WHEN_ACTIVE ? "active" : "inactive", suffix);
|
2015-03-23 16:24:43 +00:00
|
|
|
|
2019-03-31 16:33:52 +00:00
|
|
|
if (!virFileExists(info->outfile)) {
|
|
|
|
VIR_FREE(info->outfile);
|
2013-09-25 14:56:05 +00:00
|
|
|
|
2019-10-22 13:26:14 +00:00
|
|
|
info->outfile = g_strdup_printf("%s/qemuxml2xmloutdata/%s%s.xml",
|
|
|
|
abs_srcdir, info->name, suffix);
|
2014-04-17 13:23:21 +00:00
|
|
|
}
|
2007-07-18 21:34:22 +00:00
|
|
|
}
|
|
|
|
|
2018-03-02 15:47:32 +00:00
|
|
|
|
2008-05-29 15:31:49 +00:00
|
|
|
static int
|
2011-04-29 16:21:20 +00:00
|
|
|
mymain(void)
|
2007-07-18 21:34:22 +00:00
|
|
|
{
|
|
|
|
int ret = 0;
|
2020-09-04 06:59:08 +00:00
|
|
|
g_autoptr(virQEMUDriverConfig) cfg = NULL;
|
2021-08-17 14:26:58 +00:00
|
|
|
g_autoptr(GHashTable) capslatest = testQemuGetLatestCaps();
|
2022-07-13 20:26:51 +00:00
|
|
|
g_autoptr(GHashTable) capscache = virHashNew(virObjectUnref);
|
2020-06-25 14:34:30 +00:00
|
|
|
g_autoptr(virConnect) conn = NULL;
|
2021-08-17 14:26:58 +00:00
|
|
|
struct testQemuConf testConf = { .capslatest = capslatest,
|
|
|
|
.capscache = capscache,
|
2021-08-20 14:34:26 +00:00
|
|
|
.qapiSchemaCache = NULL };
|
2019-03-31 20:44:25 +00:00
|
|
|
|
|
|
|
if (!capslatest)
|
|
|
|
return EXIT_FAILURE;
|
2008-02-27 04:35:08 +00:00
|
|
|
|
2019-08-12 15:06:22 +00:00
|
|
|
/* Required for tpm-emulator tests
|
|
|
|
*/
|
|
|
|
virFileWrapperAddPrefix(SYSCONFDIR "/qemu/firmware",
|
|
|
|
abs_srcdir "/qemufirmwaredata/etc/qemu/firmware");
|
|
|
|
virFileWrapperAddPrefix(PREFIX "/share/qemu/firmware",
|
|
|
|
abs_srcdir "/qemufirmwaredata/usr/share/qemu/firmware");
|
|
|
|
virFileWrapperAddPrefix("/home/user/.config/qemu/firmware",
|
|
|
|
abs_srcdir "/qemufirmwaredata/home/user/.config/qemu/firmware");
|
|
|
|
|
2015-09-15 06:16:02 +00:00
|
|
|
if (qemuTestDriverInit(&driver) < 0)
|
2012-03-22 11:33:35 +00:00
|
|
|
return EXIT_FAILURE;
|
2008-02-27 04:35:08 +00:00
|
|
|
|
2016-05-19 08:53:55 +00:00
|
|
|
cfg = virQEMUDriverGetConfig(&driver);
|
|
|
|
|
2020-06-25 14:34:30 +00:00
|
|
|
if (!(conn = virGetConnect()))
|
|
|
|
goto cleanup;
|
|
|
|
|
|
|
|
virSetConnectInterface(conn);
|
|
|
|
virSetConnectNetwork(conn);
|
|
|
|
virSetConnectNWFilter(conn);
|
|
|
|
virSetConnectNodeDev(conn);
|
|
|
|
virSetConnectSecret(conn);
|
|
|
|
virSetConnectStorage(conn);
|
|
|
|
|
2021-08-16 15:02:16 +00:00
|
|
|
#define DO_TEST_FULL(_name, suffix, when, ...) \
|
2017-11-03 12:09:47 +00:00
|
|
|
do { \
|
2019-04-15 22:19:19 +00:00
|
|
|
static struct testQemuInfo info = { \
|
|
|
|
.name = _name, \
|
|
|
|
}; \
|
2021-08-17 13:30:44 +00:00
|
|
|
testQemuInfoSetArgs(&info, &testConf, __VA_ARGS__); \
|
2017-11-03 12:09:47 +00:00
|
|
|
\
|
2019-03-31 16:33:52 +00:00
|
|
|
if (when & WHEN_INACTIVE) { \
|
2021-03-26 17:53:32 +00:00
|
|
|
testInfoSetPaths(&info, suffix, WHEN_INACTIVE); \
|
2021-08-20 14:34:26 +00:00
|
|
|
virTestRunLog(&ret, "QEMU XML-2-XML-inactive " _name, testXML2XMLInactive, &info); \
|
2017-11-03 12:09:47 +00:00
|
|
|
} \
|
|
|
|
\
|
2019-03-31 16:33:52 +00:00
|
|
|
if (when & WHEN_ACTIVE) { \
|
2021-03-26 17:53:32 +00:00
|
|
|
testInfoSetPaths(&info, suffix, WHEN_ACTIVE); \
|
2021-08-20 14:34:26 +00:00
|
|
|
virTestRunLog(&ret, "QEMU XML-2-XML-active " _name, testXML2XMLActive, &info); \
|
2017-11-03 12:09:47 +00:00
|
|
|
} \
|
2019-03-31 16:36:27 +00:00
|
|
|
testQemuInfoClear(&info); \
|
2010-07-24 22:18:18 +00:00
|
|
|
} while (0)
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_INTERNAL(name, arch, ver, ...) \
|
2021-08-16 15:02:16 +00:00
|
|
|
DO_TEST_FULL(name, "." arch "-" ver, WHEN_BOTH, \
|
|
|
|
ARG_CAPS_ARCH, arch, \
|
|
|
|
ARG_CAPS_VER, ver, \
|
|
|
|
__VA_ARGS__, \
|
|
|
|
ARG_END)
|
2019-04-15 22:43:32 +00:00
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ...) \
|
2019-04-15 22:43:32 +00:00
|
|
|
DO_TEST_CAPS_INTERNAL(name, arch, "latest", __VA_ARGS__)
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ...) \
|
2019-07-02 15:35:33 +00:00
|
|
|
DO_TEST_CAPS_INTERNAL(name, arch, ver, __VA_ARGS__)
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_ARCH_LATEST(name, arch) \
|
2019-04-15 22:43:32 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ARG_END)
|
|
|
|
|
2023-03-27 17:47:27 +00:00
|
|
|
#define DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE(name, arch) \
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, \
|
|
|
|
ARG_PARSEFLAGS, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE, \
|
|
|
|
ARG_END)
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \
|
2019-07-02 15:35:33 +00:00
|
|
|
DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ARG_END)
|
2019-07-02 15:33:31 +00:00
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_LATEST(name) \
|
2019-04-15 22:43:32 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST(name, "x86_64")
|
2016-01-27 21:19:40 +00:00
|
|
|
|
2023-05-16 14:50:37 +00:00
|
|
|
#define DO_TEST_CAPS_LATEST_ABI_UPDATE(name) \
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE(name, "x86_64")
|
|
|
|
|
2020-10-05 15:52:29 +00:00
|
|
|
#define DO_TEST_CAPS_VER(name, ver) \
|
2019-07-02 15:33:31 +00:00
|
|
|
DO_TEST_CAPS_ARCH_VER(name, "x86_64", ver)
|
|
|
|
|
2010-07-24 22:18:18 +00:00
|
|
|
/* 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 */
|
2019-12-18 17:16:19 +00:00
|
|
|
g_setenv("PATH", "/bin", TRUE);
|
2021-04-01 16:57:36 +00:00
|
|
|
g_unsetenv("QEMU_AUDIO_DRV");
|
|
|
|
g_unsetenv("SDL_AUDIODRIVER");
|
2008-04-25 20:46:13 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("minimal");
|
2019-04-15 23:00:46 +00:00
|
|
|
DO_TEST_CAPS_LATEST("genid");
|
|
|
|
DO_TEST_CAPS_LATEST("genid-auto");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("machine-core-on");
|
|
|
|
DO_TEST_CAPS_LATEST("machine-core-off");
|
2022-05-13 14:00:09 +00:00
|
|
|
DO_TEST_CAPS_LATEST("machine-smm-on");
|
2022-05-13 14:05:26 +00:00
|
|
|
DO_TEST_CAPS_LATEST("machine-smm-off");
|
2023-03-10 02:38:09 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("machine-loadparm-hostdev", "s390x");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("machine-loadparm-multiple-disks-nets-s390", "s390x");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("default-kvm-host-arch");
|
|
|
|
DO_TEST_CAPS_LATEST("default-qemu-host-arch");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-cdrom");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-network");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-floppy");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("boot-floppy-q35");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("boot-multi");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-menu-enable-with-timeout");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-menu-disable");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-menu-disable-with-timeout");
|
|
|
|
DO_TEST_CAPS_LATEST("boot-order");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("reboot-timeout-enabled");
|
|
|
|
DO_TEST_CAPS_LATEST("reboot-timeout-disabled");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("clock-utc");
|
|
|
|
DO_TEST_CAPS_LATEST("clock-localtime");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-empty");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-kvmclock");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-host-kvmclock");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-host-passthrough-features");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-host-model-features");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-host-model-vendor");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("clock-catchup");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("kvmclock");
|
|
|
|
DO_TEST_CAPS_LATEST("clock-timer-hyperv-rtc");
|
2020-02-07 12:11:42 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("clock-timer-armvtimer", "aarch64");
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("clock-realtime");
|
2022-04-26 15:00:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("clock-absolute");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-eoi-disabled");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-eoi-enabled");
|
|
|
|
DO_TEST_CAPS_LATEST("eoi-disabled");
|
|
|
|
DO_TEST_CAPS_LATEST("eoi-enabled");
|
|
|
|
DO_TEST_CAPS_LATEST("pv-spinlock-disabled");
|
|
|
|
DO_TEST_CAPS_LATEST("pv-spinlock-enabled");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hyperv");
|
|
|
|
DO_TEST_CAPS_LATEST("hyperv-off");
|
|
|
|
DO_TEST_CAPS_LATEST("hyperv-panic");
|
|
|
|
DO_TEST_CAPS_LATEST("hyperv-passthrough");
|
|
|
|
DO_TEST_CAPS_LATEST("hyperv-stimer-direct");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("kvm-features");
|
|
|
|
DO_TEST_CAPS_LATEST("kvm-features-off");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pmu-feature");
|
|
|
|
DO_TEST_CAPS_LATEST("pmu-feature-off");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pages-discard");
|
2022-11-03 09:28:40 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pages-discard-hugepages");
|
|
|
|
DO_TEST_CAPS_LATEST("pages-dimm-discard");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-default");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-default-2M");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-default-system-size");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-nodeset");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-numa-default-2M");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-numa-default-dimm");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-numa-nodeset");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-numa-nodeset-part");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-shared");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-memaccess");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-memaccess2");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-memaccess3");
|
|
|
|
DO_TEST_CAPS_LATEST("hugepages-nvdimm");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("nosharepages");
|
|
|
|
DO_TEST_CAPS_LATEST("restore-v2");
|
|
|
|
DO_TEST_CAPS_LATEST("migrate");
|
|
|
|
DO_TEST_CAPS_LATEST("qemu-ns-no-env");
|
2021-03-15 15:35:52 +00:00
|
|
|
DO_TEST_CAPS_LATEST("qemu-ns");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-aio");
|
2020-04-21 12:19:37 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-aio-io_uring");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-cdrom");
|
2023-08-15 12:43:20 +00:00
|
|
|
/* The 'disk-cdrom-empty-network-invalid' test case uses separate
|
|
|
|
* '-active'/'-inactive' output files to work around 'virschematest'
|
|
|
|
* thinking the output file is invalid XML */
|
2019-10-15 13:19:58 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-cdrom-empty-network-invalid");
|
2022-04-20 07:26:57 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-cdrom-network");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-cdrom-bus-other");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-floppy");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-usb-device");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-virtio");
|
|
|
|
DO_TEST_CAPS_LATEST("floppy-drive-fat");
|
2021-09-09 03:34:44 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-virtio-queues");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-boot-disk");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-boot-cdrom");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-error-policy");
|
2021-05-21 12:13:50 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-transient");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-fmt-qcow");
|
2020-01-22 16:15:35 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-cache");
|
2021-01-06 17:20:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-metadata-cache");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-nbd");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-iscsi");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-gluster");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-network-rbd");
|
2021-10-24 09:51:29 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-rbd-encryption");
|
2023-03-13 09:50:21 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-rbd-encryption-layering");
|
2023-03-13 09:50:23 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-rbd-encryption-luks-any");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-source-auth");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-network-sheepdog");
|
2023-08-15 11:18:33 +00:00
|
|
|
DO_TEST_CAPS_VER("disk-network-vxhs", "5.0.0");
|
2021-01-06 21:32:32 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-nfs");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-tlsx509-nbd");
|
2022-03-10 09:05:53 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-tlsx509-nbd-hostname");
|
2023-08-15 11:18:33 +00:00
|
|
|
DO_TEST_CAPS_VER("disk-network-tlsx509-vxhs", "5.0.0");
|
2022-07-15 14:35:27 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-nvme");
|
2021-01-25 17:13:29 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-vhostuser");
|
2023-03-02 12:15:50 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-sata-device");
|
2020-05-13 01:55:47 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-scsi");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-virtio-scsi-reservations");
|
|
|
|
DO_TEST_CAPS_LATEST("controller-virtio-scsi");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("disk-virtio-s390-zpci", "s390x");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-mirror-old");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-mirror");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-active-commit");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-listen-network");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-websocket");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-sasl");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-tls");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-no-listen-attr");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-remove-generated-socket");
|
2016-05-19 08:53:55 +00:00
|
|
|
cfg->vncAutoUnixSocket = true;
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-auto-socket-cfg");
|
2016-05-19 08:53:55 +00:00
|
|
|
cfg->vncAutoUnixSocket = false;
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-socket");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-auto-socket");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-vnc-egl-headless");
|
2019-10-18 15:30:11 +00:00
|
|
|
|
2023-08-15 14:30:21 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-dbus");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-dbus-address");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-dbus-p2p");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-dbus-audio");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-dbus-chardev");
|
2022-05-13 18:38:11 +00:00
|
|
|
|
2019-11-25 10:54:26 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("default-video-type-aarch64", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("default-video-type-ppc64", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("default-video-type-riscv64", "riscv64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("default-video-type-s390x", "s390x");
|
2023-08-15 14:46:05 +00:00
|
|
|
DO_TEST_CAPS_LATEST("default-video-type-x86_64");
|
2019-11-25 10:54:26 +00:00
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-sdl");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-sdl-fullscreen");
|
2019-12-09 23:15:27 +00:00
|
|
|
|
|
|
|
cfg->spiceTLS = true;
|
2021-10-13 15:03:33 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-compression");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-qxl-vga");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-socket");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-auto-socket");
|
2016-05-18 12:11:20 +00:00
|
|
|
cfg->spiceAutoUnixSocket = true;
|
2021-10-13 15:03:33 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-auto-socket-cfg");
|
2016-05-18 12:11:20 +00:00
|
|
|
cfg->spiceAutoUnixSocket = false;
|
2019-12-09 23:15:27 +00:00
|
|
|
cfg->spiceTLS = false;
|
2021-10-13 15:03:33 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-egl-headless");
|
|
|
|
DO_TEST_CAPS_LATEST("graphics-spice-timeout");
|
2016-05-18 12:11:20 +00:00
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-egl-headless-rendernode");
|
2018-11-27 07:23:13 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("input-usbmouse");
|
|
|
|
DO_TEST_CAPS_LATEST("input-usbtablet");
|
|
|
|
DO_TEST_CAPS_LATEST("misc-acpi");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("misc-disable-s3");
|
2021-10-11 12:46:46 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pc-i440fx-acpi-root-hotplug-disable");
|
|
|
|
DO_TEST_CAPS_LATEST("pc-i440fx-acpi-root-hotplug-enable");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("misc-disable-suspends");
|
|
|
|
DO_TEST_CAPS_LATEST("misc-enable-s4");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("misc-no-reboot");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("misc-uuid");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-vhostuser");
|
|
|
|
DO_TEST_CAPS_LATEST("net-user");
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-user-addr");
|
2023-02-20 20:14:23 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-user-passt");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-virtio");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-device");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-disable-offloads");
|
|
|
|
DO_TEST_CAPS_LATEST("net-eth");
|
|
|
|
DO_TEST_CAPS_LATEST("net-eth-ifname");
|
|
|
|
DO_TEST_CAPS_LATEST("net-eth-hostip");
|
|
|
|
DO_TEST_CAPS_LATEST("net-eth-unmanaged-tap");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-network-portgroup");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-rxtxqueuesize");
|
2023-08-17 11:16:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-teaming");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-teaming-network");
|
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-teaming-hostdev");
|
2020-01-29 15:29:21 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-isolated-port");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-hostdev");
|
|
|
|
DO_TEST_CAPS_LATEST("net-hostdev-bootorder");
|
2023-08-17 11:16:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-hostdev-vfio");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-midonet");
|
|
|
|
DO_TEST_CAPS_LATEST("net-openvswitch");
|
2023-05-09 11:13:19 +00:00
|
|
|
DO_TEST_CAPS_LATEST("sound-device");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("watchdog");
|
2022-11-08 08:10:57 +00:00
|
|
|
DO_TEST_CAPS_LATEST("watchdog-q35-multiple");
|
2023-08-17 11:16:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-bandwidth");
|
|
|
|
DO_TEST_CAPS_LATEST("net-bandwidth2");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-mtu");
|
|
|
|
DO_TEST_CAPS_LATEST("net-coalesce");
|
2023-08-15 10:21:07 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-many-models");
|
2023-08-17 11:16:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-vdpa");
|
|
|
|
DO_TEST_CAPS_LATEST("net-vdpa-multiqueue");
|
2022-01-09 21:07:35 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-virtio-rss");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev");
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev-notls");
|
2019-12-09 23:15:27 +00:00
|
|
|
|
|
|
|
cfg->spiceTLS = true;
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("serial-spiceport");
|
2019-12-09 23:15:27 +00:00
|
|
|
cfg->spiceTLS = false;
|
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("serial-debugcon");
|
|
|
|
DO_TEST_CAPS_LATEST("console-compat");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("console-compat2");
|
|
|
|
DO_TEST_CAPS_LATEST("console-virtio-many");
|
|
|
|
DO_TEST_CAPS_LATEST("channel-guestfwd");
|
|
|
|
DO_TEST_CAPS_LATEST("channel-virtio");
|
|
|
|
DO_TEST_CAPS_LATEST("channel-virtio-state");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("channel-unix-source-path");
|
2017-05-11 12:09:35 +00:00
|
|
|
|
2022-07-12 11:00:33 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-usb-address");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-pci-address");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-pci-address-unassigned");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-pci-multifunction");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-vfio");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-multidomain-many", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-autogenerate", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-autogenerate-uids", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-autogenerate-fids", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-boundaries", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-vfio-zpci-ccw-memballoon", "s390x");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-mdev-precreated");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-mdev-display");
|
2020-06-23 18:29:56 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-mdev-display-ramfb");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pci-rom");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pci-rom-disabled");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-rom-disabled-invalid");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-serial-dev-chardev");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2020-02-05 17:18:39 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-slices");
|
2021-03-31 09:17:07 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-rotation");
|
2020-02-05 17:18:39 +00:00
|
|
|
|
2022-07-15 14:35:27 +00:00
|
|
|
DO_TEST_CAPS_LATEST("encrypted-disk");
|
|
|
|
DO_TEST_CAPS_LATEST("encrypted-disk-usage");
|
2022-01-05 09:23:42 +00:00
|
|
|
DO_TEST_CAPS_LATEST("luks-disks");
|
|
|
|
DO_TEST_CAPS_LATEST("luks-disks-source");
|
2020-01-10 16:35:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("luks-disks-source-qcow2");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memtune");
|
|
|
|
DO_TEST_CAPS_LATEST("memtune-unlimited");
|
|
|
|
DO_TEST_CAPS_LATEST("blkiotune");
|
|
|
|
DO_TEST_CAPS_LATEST("blkiotune-device");
|
2023-02-22 14:57:47 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cputune");
|
|
|
|
DO_TEST_CAPS_LATEST("cputune-zero-shares");
|
|
|
|
DO_TEST_CAPS_LATEST("cputune-numatune");
|
|
|
|
DO_TEST_CAPS_LATEST("vcpu-placement-static");
|
2020-06-11 11:57:07 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cputune-cpuset-big-id");
|
2020-06-10 18:35:52 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numavcpus-topology-mismatch");
|
2010-04-27 10:01:32 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("smp");
|
2023-02-22 14:23:04 +00:00
|
|
|
DO_TEST_CAPS_LATEST("iothreads-ids");
|
2022-03-07 14:13:39 +00:00
|
|
|
DO_TEST_CAPS_LATEST("iothreads-ids-pool-sizes");
|
2023-02-22 14:23:04 +00:00
|
|
|
DO_TEST_CAPS_LATEST("iothreads-ids-partial");
|
|
|
|
DO_TEST_CAPS_LATEST("iothreads-disk");
|
2023-02-22 14:37:52 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("iothreads-disk-virtio-ccw", "s390x");
|
|
|
|
DO_TEST_CAPS_LATEST("iothreads-virtio-scsi-pci");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("iothreads-virtio-scsi-ccw", "s390x");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("lease");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("event_idx");
|
|
|
|
DO_TEST_CAPS_LATEST("vhost_queues");
|
|
|
|
DO_TEST_CAPS_LATEST("interface-driver");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-server");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-lun");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("usb-none");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-controller");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("usb-piix3-controller");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-controller-default-q35");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-controller-explicit-q35");
|
2023-03-09 10:23:33 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-usb-controller", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-usb-controller-legacy", "ppc64");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("usb-port-missing");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-redir");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-redir-filter");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-redir-filter-version");
|
2020-05-04 16:16:26 +00:00
|
|
|
DO_TEST_CAPS_LATEST("blkdeviotune");
|
|
|
|
DO_TEST_CAPS_LATEST("blkdeviotune-max");
|
|
|
|
DO_TEST_CAPS_LATEST("blkdeviotune-group-num");
|
|
|
|
DO_TEST_CAPS_LATEST("blkdeviotune-max-length");
|
2022-01-05 12:01:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("controller-usb-order");
|
2020-06-10 18:11:49 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-tpmproxy-single", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-tpmproxy-with-tpm", "ppc64");
|
2011-09-02 15:09:14 +00:00
|
|
|
|
2021-08-17 13:12:21 +00:00
|
|
|
DO_TEST_FULL("seclabel-dynamic-baselabel", "", WHEN_INACTIVE, ARG_END);
|
|
|
|
DO_TEST_FULL("seclabel-dynamic-override", "", WHEN_INACTIVE, ARG_END);
|
|
|
|
DO_TEST_FULL("seclabel-dynamic-labelskip", "", WHEN_INACTIVE, ARG_END);
|
|
|
|
DO_TEST_FULL("seclabel-dynamic-relabel", "", WHEN_INACTIVE, ARG_END);
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("seclabel-static");
|
|
|
|
DO_TEST_CAPS_LATEST("seclabel-static-labelskip");
|
|
|
|
DO_TEST_CAPS_LATEST("seclabel-none");
|
|
|
|
DO_TEST_CAPS_LATEST("seclabel-dac-none");
|
|
|
|
DO_TEST_CAPS_LATEST("seclabel-dynamic-none");
|
|
|
|
DO_TEST_CAPS_LATEST("seclabel-device-multiple");
|
2021-08-16 15:02:16 +00:00
|
|
|
DO_TEST_FULL("seclabel-dynamic-none-relabel", "", WHEN_INACTIVE,
|
2019-12-09 23:15:12 +00:00
|
|
|
ARG_QEMU_CAPS, QEMU_CAPS_DEVICE_CIRRUS_VGA,
|
2021-08-17 11:46:55 +00:00
|
|
|
QEMU_CAPS_SPICE, QEMU_CAPS_LAST,
|
2021-08-16 15:02:16 +00:00
|
|
|
ARG_END);
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numad-static-vcpu-no-numatune");
|
2011-12-23 00:47:46 +00:00
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-scsi-disk-vpd");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-source-pool");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-source-pool-mode");
|
2012-12-06 10:23:02 +00:00
|
|
|
|
2020-05-04 16:53:31 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-discard");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-detect-zeroes");
|
2023-06-09 10:47:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-discard_no_unref");
|
2013-05-14 12:44:54 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-serial");
|
2017-11-20 11:14:08 +00:00
|
|
|
|
2020-05-06 09:40:18 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("disk-arm-virtio-sd", "aarch64");
|
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-rng-random");
|
|
|
|
DO_TEST_CAPS_LATEST("virtio-rng-egd");
|
2020-01-09 08:00:08 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-rng-builtin");
|
2013-02-12 16:56:00 +00:00
|
|
|
|
2022-05-21 14:54:56 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-nvram", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-panic-missing", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-panic-no-address", "ppc64");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-phb-simple", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-phb-default-missing", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-phb-numa-node", "ppc64");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-many-devices", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-many-buses-1", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-many-buses-2", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-hostdevs-1", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-hostdevs-2", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-hostdevs-3", "ppc64");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-features", "ppc64");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-serial-native", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-serial+console-native", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-serial-compat", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-serial-pci", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-serial-usb", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-console-native", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-console-virtio", "ppc64");
|
2018-03-29 10:51:55 +00:00
|
|
|
|
2023-03-24 15:40:53 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-serial-native", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-serial+console-native", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-serial-compat", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-serial-pci", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-serial-usb", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-console-native", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("mach-virt-console-virtio", "aarch64");
|
2017-11-09 16:14:57 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("balloon-device-auto");
|
|
|
|
DO_TEST_CAPS_LATEST("balloon-device-period");
|
|
|
|
DO_TEST_CAPS_LATEST("channel-virtio-auto");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("console-compat-auto");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-scsi-device-auto");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("console-virtio");
|
|
|
|
DO_TEST_CAPS_LATEST("serial-target-port-auto");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("graphics-listen-network2");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numad-auto-vcpu-no-numatune");
|
|
|
|
DO_TEST_CAPS_LATEST("numad-auto-memory-vcpu-no-cpuset-and-placement");
|
|
|
|
DO_TEST_CAPS_LATEST("numad-auto-memory-vcpu-cpuset");
|
|
|
|
DO_TEST_CAPS_LATEST("usb-ich9-ehci-addr");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-copy_on_read");
|
2019-08-20 11:42:03 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tpm-passthrough");
|
|
|
|
DO_TEST_CAPS_LATEST("tpm-passthrough-crb");
|
|
|
|
DO_TEST_CAPS_LATEST("tpm-emulator");
|
2022-01-04 07:38:37 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("tpm-emulator-spapr", "ppc64");
|
2019-08-20 11:42:03 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tpm-emulator-tpm2");
|
|
|
|
DO_TEST_CAPS_LATEST("tpm-emulator-tpm2-enc");
|
2021-01-04 02:31:59 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tpm-emulator-tpm2-pstate");
|
2021-06-25 13:31:35 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-tpm", "aarch64");
|
2022-10-17 13:20:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tpm-external");
|
2016-07-29 13:13:56 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("metadata");
|
|
|
|
DO_TEST_CAPS_LATEST("metadata-duplicate");
|
2012-01-24 02:26:18 +00:00
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pci-bridge");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-many");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-bridge-many-disks");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-autoadd-addr");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-autoadd-idx");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-autofill-addr");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("q35");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-usb2");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-usb2-multi");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-usb2-reorder");
|
2022-08-25 14:44:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("q35-pcie");
|
qemu: auto-add pcie-root-port/dmi-to-pci-bridge controllers as needed
Previously libvirt would only add pci-bridge devices automatically
when an address was requested for a device that required a legacy PCI
slot and none was available. This patch expands that support to
dmi-to-pci-bridge (which is needed in order to add a pci-bridge on a
machine with a pcie-root), and pcie-root-port (which is needed to add
a hotpluggable PCIe device). It does *not* automatically add
pcie-switch-upstream-ports or pcie-switch-downstream-ports (and
currently there are no plans for that).
Given the existing code to auto-add pci-bridge devices, automatically
adding pcie-root-ports is fairly straightforward. The
dmi-to-pci-bridge support is a bit tricky though, for a few reasons:
1) Although the only reason to add a dmi-to-pci-bridge is so that
there is a reasonable place to plug in a pci-bridge controller,
most of the time it's not the presence of a pci-bridge *in the
config* that triggers the requirement to add a dmi-to-pci-bridge.
Rather, it is the presence of a legacy-PCI device in the config,
which triggers auto-add of a pci-bridge, which triggers auto-add of
a dmi-to-pci-bridge (this is handled in
virDomainPCIAddressSetGrow() - if there's a request to add a
pci-bridge we'll check if there is a suitable bus to plug it into;
if not, we first add a dmi-to-pci-bridge).
2) Once there is already a single dmi-to-pci-bridge on the system,
there won't be a need for any more, even if it's full, as long as
there is a pci-bridge with an open slot - you can also plug
pci-bridges into existing pci-bridges. So we have to make sure we
don't add a dmi-to-pci-bridge unless there aren't any
dmi-to-pci-bridges *or* any pci-bridges.
3) Although it is strongly discouraged, it is legal for a pci-bridge
to be directly plugged into pcie-root, and we don't want to
auto-add a dmi-to-pci-bridge if there is already a pci-bridge
that's been forced directly into pcie-root.
Although libvirt will now automatically create a dmi-to-pci-bridge
when it's needed, the code still remains for now that forces a
dmi-to-pci-bridge on all domains with pcie-root (in
qemuDomainDefAddDefaultDevices()). That will be removed in a future
patch.
For now, the pcie-root-ports are added one to a slot, which is a bit
wasteful and means it will fail after 31 total PCIe devices (30 if
there are also some PCI devices), but helps keep the changeset down
for this patch. A future patch will have 8 pcie-root-ports sharing the
functions on a single slot.
2016-09-19 18:38:47 +00:00
|
|
|
/* same as q35-pcie, but all PCI controllers are added automatically */
|
2022-08-25 14:44:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("q35-pcie-autoadd");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-default-devices-only");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-multifunction");
|
|
|
|
DO_TEST_CAPS_LATEST("q35-virt-manager-basic");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcie-root");
|
2017-03-16 16:41:21 +00:00
|
|
|
|
|
|
|
/* Test automatic and manual setting of pcie-root-port attributes */
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcie-root-port");
|
2017-03-16 16:41:21 +00:00
|
|
|
|
|
|
|
/* 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 */
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcie-root-port-model-generic");
|
|
|
|
DO_TEST_CAPS_LATEST("pcie-root-port-model-ioh3420");
|
2020-03-03 17:23:52 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcie-root-port-nohotplug");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcie-switch-upstream-port");
|
|
|
|
DO_TEST_CAPS_LATEST("pcie-switch-downstream-port");
|
|
|
|
DO_TEST_CAPS_LATEST("pci-expander-bus");
|
|
|
|
DO_TEST_CAPS_LATEST("pcie-expander-bus");
|
2021-07-22 13:06:03 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pcie-expander-bus-aarch64", "aarch64");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("autoindex");
|
2016-10-12 15:02:37 +00:00
|
|
|
/* Make sure the user can always override libvirt's default device
|
|
|
|
* placement policy by providing an explicit PCI address */
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("q35-pci-force-address");
|
2016-07-29 13:27:03 +00:00
|
|
|
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-scsi-vhost-scsi-ccw", "s390x");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-vhost-scsi-pci");
|
2022-08-25 14:44:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-vhost-scsi-pcie");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-lsi");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-virtio-scsi");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-shareable");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-autogen-address");
|
|
|
|
DO_TEST_CAPS_LATEST("hostdev-scsi-large-unit");
|
2016-07-29 13:27:03 +00:00
|
|
|
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-subsys-mdev-vfio-ccw", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-subsys-mdev-vfio-ccw-boot", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("hostdev-subsys-mdev-vfio-ap", "s390x");
|
2018-05-07 14:41:14 +00:00
|
|
|
|
2021-06-11 08:21:57 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-defaultconsole", "s390x");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-panic", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-panic-missing", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-panic-no-address", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-serial", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-serial-2", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-serial-console", "s390x");
|
2013-06-17 14:17:36 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcihole64");
|
|
|
|
DO_TEST_CAPS_LATEST("pcihole64-gib");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pcihole64-q35");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("panic");
|
|
|
|
DO_TEST_CAPS_LATEST("panic-double");
|
|
|
|
DO_TEST_CAPS_LATEST("panic-no-address");
|
2022-05-21 14:54:56 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("panic-pseries", "ppc64");
|
2013-12-09 09:11:15 +00:00
|
|
|
|
2023-02-20 16:12:56 +00:00
|
|
|
DO_TEST_CAPS_LATEST("pvpanic-pci-x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pvpanic-pci-aarch64", "aarch64");
|
2023-02-20 16:12:58 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pvpanic-pci-no-address-aarch64", "aarch64");
|
2023-02-20 16:12:56 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-backing-chains-index");
|
|
|
|
DO_TEST_CAPS_LATEST("disk-backing-chains-noindex");
|
2014-04-17 13:37:51 +00:00
|
|
|
|
2022-12-19 14:54:59 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-source-fd");
|
|
|
|
|
2020-03-25 15:18:50 +00:00
|
|
|
DO_TEST_CAPS_LATEST("disk-network-http");
|
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("chardev-label");
|
2014-05-16 12:31:28 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa1");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa2");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa-no-memory-element");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa-disordered");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa-disjoint");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-numa-memshared");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("numatune-auto-prefer");
|
|
|
|
DO_TEST_CAPS_LATEST("numatune-memnode");
|
|
|
|
DO_TEST_CAPS_LATEST("numatune-memnode-no-memory");
|
|
|
|
DO_TEST_CAPS_LATEST("numatune-distances");
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numatune-no-vcpu");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numatune-hmat");
|
2023-05-16 08:22:39 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numatune-hmat-none");
|
2021-04-13 06:38:06 +00:00
|
|
|
DO_TEST_CAPS_LATEST("numatune-memnode-restrictive-mode");
|
2014-06-09 13:00:22 +00:00
|
|
|
|
2023-02-08 18:10:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-bios");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-bios-stateless");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi");
|
2023-04-11 15:56:45 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-features");
|
2023-02-08 18:15:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-rw");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-rw-legacy-paths");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-rw-modern-paths");
|
2023-02-08 18:15:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-rw-implicit");
|
2023-03-16 16:36:45 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-loader-secure");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-loader-path-nonstandard");
|
2023-03-15 18:39:06 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-secboot");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-no-enrolled-keys");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-no-secboot");
|
2023-02-08 18:15:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-stateless");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-template");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-template-nonstandard");
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-network-iscsi");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-network-nbd");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-file");
|
|
|
|
|
2023-02-08 18:15:55 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-manual-efi-acpi-aarch64", "aarch64");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-acpi-q35");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-manual-efi-noacpi-aarch64", "aarch64");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-noefi-acpi-q35");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-manual-noefi-noacpi-aarch64", "aarch64");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-noefi-noacpi-q35");
|
|
|
|
|
2023-05-26 16:19:24 +00:00
|
|
|
/* Ensure that legacy firmware paths keep working */
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-secboot-legacy-paths");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-no-enrolled-keys-legacy-paths");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-manual-efi-no-secboot-legacy-paths");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-manual-efi-aarch64-legacy-paths", "aarch64");
|
|
|
|
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-bios");
|
conf: support stateless UEFI firmware
Normally when an UEFI firmware is marked as read-only, an associated
NVRAM file will be created. Some builds of UEFI firmware, however, wish
to remain stateless and so will be read-only, but never have any NVRAM
file. To represent this concept a 'stateless' tristate bool attribute
is introduced on the <loader/> element.
There are rather a large number of permutations to consider.
With default firmware selection
* <os/>
=> Historic default, no change
* <os>
<loader stateless='yes'/>
</os>
=> Explicit version of historic default, no change
* <os>
<loader stateless='no'/>
</os>
=> Invalid, bios is always stateless
With manual legacy BIOS selection
* <os>
<loader>/path/to/seabios</loader>
...
</os>
=> Historic default, no change
* <os>
<loader stateless='yes'>/path/to/seabios</loader>
...
</os>
=> Explicit version of historic default, no change
* <os>
<loader stateless='no'>/path/to/seabios</loader>
...
</os>
=> Invalid, bios is always stateless
With manual UEFI selection
* <os>
<loader type='pflash'>/path/to/edk2</loader>
...
</os>
=> Historic default, no change
* <os>
<loader type='pflash' stateless='yes'>/path/to/edk2</loader>
...
</os>
=> Skip auto-filling NVRAM / template
* <os>
<loader type='pflash' stateless='no'>/path/to/edk2</loader>
...
</os>
=> Explicit version of historic default, no change
With automatic firmware selection
* <os firmware='bios'/>
=> Historic default, no change
* <os firmware='bios'>
<loader stateless='yes'/>
</os>
=> Explicit version of historic default, no change
* <os firmware='bios'>
<loader stateless='no'/>
</os>
=> Invalid, bios is always stateless
* <os firmware='uefi'/>
=> Historic default, no change
* <os firmware='uefi'>
<loader stateless='yes'/>
</os>
=> Skip auto-filling NVRAM / template
* <os firmware='uefi'>
<loader stateless='no'/>
</os>
=> Explicit version of historic default, no change
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-07-22 14:27:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-bios-stateless");
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST_ABI_UPDATE("firmware-auto-efi-abi-update");
|
2023-02-08 18:15:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-stateless");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-rw");
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-loader-secure");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST_ABI_UPDATE("firmware-auto-efi-loader-secure-abi-update");
|
conf: Remove some firmware validation checks
libvirt 8.6.0 introduced these checks and very clearly delineated
two possible firmware selection scenarios: manual firmware
selection, where the user is responsible for providing all
information, and firmware autoselection, where a list of desired
features is provided and everything else is handled by libvirt.
In the interest of maintaining the clear separation between these
two scenarios, setting most attributes when firmware autoselection
is active will result in the configuration being rejected.
This works fine, but is unnecessarily restrictive: in most cases,
the additional information that the user has provided matches
the information that libvirt would have discovered on its own by
looking at firmware descriptors, and asking the user to scrub it
from the XML only result in pointless friction.
Remove these checks entirely.
Unsurprisingly, this results in a few test cases that were
rejected until now to suddenly start working and producing
sensible results.
The firmware-auto-efi-loader-path-nonstandard test case is
notable: while we can now enable the xml2xml part of the test,
the xml2argv part is still failing, although in a slightly
different way. This is expected: since the firmware binary is a
non-standard one, libvirt is unable to figure out the missing
information from a firmware descriptor, and the configuration
is still ultimately an invalid one. However, if we were to find
such a configuration on disk at daemon startup, we would not
ignore it completely and instead would offer the user a chance
to fix it.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2023-03-14 22:02:46 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-loader-insecure");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-loader-path");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-loader-path-nonstandard");
|
2022-06-09 13:56:32 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-secboot");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-no-secboot");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-enrolled-keys");
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-no-enrolled-keys");
|
2023-02-10 16:40:29 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-smm-off");
|
2022-06-09 13:54:36 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-auto-efi-aarch64", "aarch64");
|
2023-03-27 17:56:46 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("firmware-auto-efi-abi-update-aarch64", "aarch64");
|
2023-05-26 16:16:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-path");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-template");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-template-nonstandard");
|
2023-02-10 16:40:29 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-file");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-network-nbd");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-nvram-network-iscsi");
|
2014-08-06 11:18:53 +00:00
|
|
|
|
2023-02-08 17:47:39 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-format-loader-qcow2");
|
2023-08-03 13:19:59 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-format-loader-qcow2-nvram-path");
|
2023-02-08 17:47:39 +00:00
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-format-nvram-qcow2");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-format-nvram-qcow2-path");
|
|
|
|
DO_TEST_CAPS_LATEST("firmware-auto-efi-format-nvram-qcow2-network-nbd");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("firmware-auto-efi-format-loader-raw", "aarch64");
|
2023-05-26 16:19:24 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("firmware-auto-efi-format-loader-raw-abi-update", "aarch64");
|
2023-02-08 17:47:39 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tap-vhost");
|
|
|
|
DO_TEST_CAPS_LATEST("tap-vhost-incorrect");
|
2023-08-16 11:22:59 +00:00
|
|
|
DO_TEST_CAPS_LATEST("shmem-plain-doorbell");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("smbios");
|
|
|
|
DO_TEST_CAPS_LATEST("smbios-multiple-type2");
|
2023-08-14 12:28:48 +00:00
|
|
|
DO_TEST_CAPS_LATEST("smbios-type-fwcfg");
|
2014-09-11 15:11:28 +00:00
|
|
|
|
2023-03-24 15:48:38 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-aavmf-virtio-mmio", "aarch64");
|
2022-08-25 14:44:55 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-virtio-pci-default", "aarch64");
|
2023-03-28 12:41:57 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-virtio-pci-manual-addresses", "aarch64");
|
2023-03-24 15:48:38 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-video-virtio-gpu-pci", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-pci-serial", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-traditional-pci", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-video-default", "aarch64");
|
2016-02-03 13:35:41 +00:00
|
|
|
|
2023-03-24 15:47:03 +00:00
|
|
|
DO_TEST_FULL("aarch64-gic-none", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_NONE, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-none-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V2, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-none-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V3, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-none-both", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-none-tcg", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-default", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_NONE, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-default-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V2, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-default-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V3, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-default-both", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_NONE, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V2, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V3, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v2", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_NONE, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V2, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V3, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-v3", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-host", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_NONE, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-host", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V2, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-host", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_V3, ARG_END);
|
|
|
|
DO_TEST_FULL("aarch64-gic-host", ".aarch64-latest", WHEN_BOTH,
|
|
|
|
ARG_CAPS_ARCH, "aarch64", ARG_CAPS_VER, "latest",
|
|
|
|
ARG_GIC, GIC_BOTH, ARG_END);
|
2015-09-30 14:36:24 +00:00
|
|
|
|
2019-06-24 13:22:24 +00:00
|
|
|
/* SVE aarch64 CPU features work on modern QEMU */
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-features-sve", "aarch64");
|
|
|
|
|
2023-03-24 15:33:06 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-usb-controller", "aarch64");
|
|
|
|
|
2023-03-09 10:23:33 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("memory-hotplug-ppc64-nonuma", "ppc64");
|
2023-05-30 15:48:58 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("memory-hotplug-ppc64-nonuma-abi-update", "ppc64");
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-dimm");
|
2022-07-26 17:26:52 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-dimm-addr");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm");
|
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-access");
|
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-label");
|
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-align");
|
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-pmem");
|
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-nvdimm-readonly");
|
2023-03-09 10:23:33 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("memory-hotplug-nvdimm-ppc64", "ppc64");
|
2023-05-30 15:48:58 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_ABI_UPDATE("memory-hotplug-nvdimm-ppc64-abi-update", "ppc64");
|
2020-12-07 14:24:17 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-virtio-pmem");
|
conf: Introduce virtio-mem <memory/> model
The virtio-mem is paravirtualized mechanism of adding/removing
memory to/from a VM. A virtio-mem-pci device is split into blocks
of equal size which are then exposed (all or only a requested
portion of them) to the guest kernel to use as regular memory.
Therefore, the device has two important attributes:
1) block-size, which defines the size of a block
2) requested-size, which defines how much memory (in bytes)
is the device requested to expose to the guest.
The 'block-size' is configured on command line and immutable
throughout device's lifetime. The 'requested-size' can be set on
the command line too, but also is adjustable via monitor. In
fact, that is how management software places its requests to
change the memory allocation. If it wants to give more memory to
the guest it changes 'requested-size' to a bigger value, and if it
wants to shrink guest memory it changes the 'requested-size' to a
smaller value. Note, value of zero means that guest should
release all memory offered by the device. Of course, guest has to
cooperate. Therefore, there is a third attribute 'size' which is
read only and reflects how much memory the guest still has. This
can be different to 'requested-size', obviously. Because of name
clash, I've named it 'current' and it is dealt with in future
commits (it is a runtime information anyway).
In the backend, memory for virtio-mem is backed by usual objects:
memory-backend-{ram,file,memfd} and their size puts the cap on
the amount of memory that a virtio-mem device can offer to a
guest. But we are already able to express this info using <size/>
under <target/>.
Therefore, we need only two more elements to cover 'block-size'
and 'requested-size' attributes. This is the XML I've came up
with:
<memory model='virtio-mem'>
<source>
<nodemask>1-3</nodemask>
<pagesize unit='KiB'>2048</pagesize>
</source>
<target>
<size unit='KiB'>2097152</size>
<node>0</node>
<block unit='KiB'>2048</block>
<requested unit='KiB'>1048576</requested>
</target>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</memory>
I hope by now it is obvious that:
1) 'requested-size' must be an integer multiple of
'block-size', and
2) virtio-mem-pci device goes onto PCI bus and thus needs PCI
address.
Then there is a limitation that the minimal 'block-size' is
transparent huge page size (I'll leave this without explanation).
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2021-01-18 15:13:12 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-virtio-mem");
|
2023-06-22 11:56:06 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memory-hotplug-multiple");
|
2020-12-02 18:56:57 +00:00
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("net-udp");
|
2014-10-06 12:18:37 +00:00
|
|
|
|
2023-08-16 12:52:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-gpu-device");
|
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-gpu-virgl");
|
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-gpu-spice-gl");
|
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-gpu-sdl-gl");
|
2018-09-05 15:51:24 +00:00
|
|
|
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-input");
|
|
|
|
DO_TEST_CAPS_LATEST("virtio-input-passthrough");
|
2015-11-25 08:42:32 +00:00
|
|
|
|
2021-05-21 11:01:07 +00:00
|
|
|
DO_TEST_CAPS_LATEST("input-linux");
|
|
|
|
|
2023-08-11 14:40:22 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memorybacking-set");
|
|
|
|
DO_TEST_CAPS_LATEST("memorybacking-unset");
|
2018-09-05 15:51:24 +00:00
|
|
|
|
2020-04-23 13:15:06 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-options");
|
2017-02-02 13:27:32 +00:00
|
|
|
|
2023-08-15 14:55:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("fd-memory-numa-topology");
|
|
|
|
DO_TEST_CAPS_LATEST("fd-memory-numa-topology2");
|
|
|
|
DO_TEST_CAPS_LATEST("fd-memory-numa-topology3");
|
2021-09-15 14:05:49 +00:00
|
|
|
DO_TEST_CAPS_LATEST("fd-memory-numa-topology4");
|
2019-03-29 15:58:23 +00:00
|
|
|
|
2023-08-15 14:55:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("fd-memory-no-numa-topology");
|
2019-03-29 15:58:23 +00:00
|
|
|
|
2022-01-05 09:23:42 +00:00
|
|
|
DO_TEST_CAPS_LATEST("memfd-memory-numa");
|
|
|
|
DO_TEST_CAPS_LATEST("memfd-memory-default-hugepage");
|
2019-03-29 15:58:23 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("acpi-table");
|
2016-04-18 15:13:02 +00:00
|
|
|
|
2023-08-16 12:52:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("video-device-pciaddr-default");
|
|
|
|
DO_TEST_CAPS_LATEST("video-qxl-heads");
|
|
|
|
DO_TEST_CAPS_LATEST("video-qxl-noheads");
|
|
|
|
DO_TEST_CAPS_LATEST("video-qxl-resolution");
|
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-gpu-secondary");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("video-virtio-gpu-ccw", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("video-virtio-gpu-ccw-auto", "s390x");
|
2023-08-16 12:52:34 +00:00
|
|
|
DO_TEST_CAPS_LATEST("video-none-device");
|
2021-06-09 08:32:27 +00:00
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-vga-gpu-gl");
|
2022-02-23 21:06:55 +00:00
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-blob-on");
|
|
|
|
DO_TEST_CAPS_LATEST("video-virtio-blob-off");
|
2015-12-11 13:43:10 +00:00
|
|
|
|
2019-05-17 12:45:36 +00:00
|
|
|
DO_TEST_CAPS_LATEST("intel-iommu");
|
|
|
|
DO_TEST_CAPS_LATEST("intel-iommu-caching-mode");
|
|
|
|
DO_TEST_CAPS_LATEST("intel-iommu-eim");
|
|
|
|
DO_TEST_CAPS_LATEST("intel-iommu-device-iotlb");
|
2020-06-04 07:42:42 +00:00
|
|
|
DO_TEST_CAPS_LATEST("intel-iommu-aw-bits");
|
2019-05-17 11:23:16 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("iommu-smmuv3", "aarch64");
|
2021-09-23 12:46:23 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-iommu-x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("virtio-iommu-aarch64", "aarch64");
|
2016-06-22 14:28:22 +00:00
|
|
|
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-none");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-partial");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-full");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-default-none");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-default-none2");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-default-partial");
|
|
|
|
DO_TEST_CAPS_LATEST("cpu-check-default-partial2");
|
2023-08-15 13:45:51 +00:00
|
|
|
DO_TEST_CAPS_LATEST("vmcoreinfo");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-host");
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-host-certificates");
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-host-certificates-database");
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-passthrough-tcp");
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-passthrough-spicevmc");
|
|
|
|
DO_TEST_CAPS_LATEST("smartcard-controller");
|
2017-08-03 12:26:47 +00:00
|
|
|
|
2022-05-21 14:54:56 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-cpu-compat-power9", "ppc64");
|
2022-05-03 20:15:05 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-cpu-compat-power10", "ppc64");
|
2022-05-21 14:54:56 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-cpu-compat", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("pseries-cpu-exact", "ppc64");
|
2017-09-18 07:59:18 +00:00
|
|
|
|
2022-07-15 14:35:27 +00:00
|
|
|
DO_TEST_CAPS_LATEST("user-aliases");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("input-virtio-ccw", "s390x");
|
2017-10-20 14:48:14 +00:00
|
|
|
|
2022-01-05 09:23:42 +00:00
|
|
|
DO_TEST_CAPS_LATEST("tseg-explicit-size");
|
2018-05-10 21:37:18 +00:00
|
|
|
|
2022-01-05 09:23:42 +00:00
|
|
|
DO_TEST_CAPS_LATEST("vhost-vsock");
|
|
|
|
DO_TEST_CAPS_LATEST("vhost-vsock-auto");
|
2023-03-24 14:10:25 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw-auto", "s390x");
|
2021-01-27 18:46:59 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw-iommu", "s390x");
|
|
|
|
|
2018-08-06 15:41:07 +00:00
|
|
|
|
2019-07-16 05:01:30 +00:00
|
|
|
DO_TEST_CAPS_LATEST("vhost-user-fs-fd-memory");
|
|
|
|
DO_TEST_CAPS_LATEST("vhost-user-fs-hugepages");
|
2020-09-07 20:07:35 +00:00
|
|
|
DO_TEST_CAPS_LATEST("vhost-user-fs-sock");
|
2019-07-16 05:01:30 +00:00
|
|
|
|
2023-03-03 07:12:39 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("riscv64-virt", "riscv64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-pci", "riscv64");
|
2022-01-05 21:19:40 +00:00
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("x86-kvm-32-on-64");
|
2018-05-22 09:21:15 +00:00
|
|
|
|
2019-04-15 22:46:44 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-transitional");
|
|
|
|
DO_TEST_CAPS_LATEST("virtio-non-transitional");
|
2019-01-11 20:06:05 +00:00
|
|
|
|
2019-06-12 10:25:28 +00:00
|
|
|
/* Simple headless guests for various architectures */
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-virt-headless", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-pseries-headless", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-headless", "riscv64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390x-ccw-headless", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-pc-headless", "x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-q35-headless", "x86_64");
|
|
|
|
|
|
|
|
/* Simple guests with graphics for various architectures */
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-virt-graphics", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-pseries-graphics", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-graphics", "riscv64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390x-ccw-graphics", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-pc-graphics", "x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-q35-graphics", "x86_64");
|
|
|
|
|
2019-10-18 14:14:23 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-Icelake-Server-pconfig");
|
|
|
|
|
2019-10-11 18:15:03 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-default-cpu-kvm-virt-4.2", "aarch64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("aarch64-default-cpu-tcg-virt-4.2", "aarch64");
|
2019-10-11 18:15:03 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-kvm-pseries-2.7", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-tcg-pseries-2.7", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-kvm-pseries-3.1", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-tcg-pseries-3.1", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-kvm-pseries-4.2", "ppc64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("ppc64-default-cpu-tcg-pseries-4.2", "ppc64");
|
2020-02-06 09:18:49 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-default-cpu-kvm-ccw-virtio-2.7", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-default-cpu-tcg-ccw-virtio-2.7", "s390x");
|
2019-10-11 18:15:03 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-default-cpu-kvm-ccw-virtio-4.2", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-default-cpu-tcg-ccw-virtio-4.2", "s390x");
|
2019-10-11 18:15:03 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-kvm-pc-4.2", "x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-pc-4.2", "x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-kvm-q35-4.2", "x86_64");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-q35-4.2", "x86_64");
|
2021-11-03 12:15:41 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-features", "x86_64");
|
2019-10-11 18:15:03 +00:00
|
|
|
|
2020-03-30 18:05:33 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-9p-multidevs");
|
2020-10-08 14:32:24 +00:00
|
|
|
DO_TEST_CAPS_LATEST("virtio-9p-createmode");
|
2023-08-15 11:27:41 +00:00
|
|
|
DO_TEST_CAPS_LATEST("downscript");
|
2020-03-30 18:05:33 +00:00
|
|
|
|
2021-02-23 18:32:25 +00:00
|
|
|
/* Simplest possible <audio>, all supported with ENV */
|
2023-05-09 14:58:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("audio-none-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-alsa-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-coreaudio-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-oss-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-pulseaudio-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-sdl-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-spice-minimal");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-file-minimal");
|
2021-02-23 18:32:25 +00:00
|
|
|
|
|
|
|
/* Best <audio> still compat with old ENV */
|
2023-05-09 14:58:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("audio-none-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-alsa-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-coreaudio-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-oss-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-pulseaudio-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-sdl-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-spice-best");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-file-best");
|
2021-03-02 17:22:47 +00:00
|
|
|
|
|
|
|
/* Full <audio> only compat with new QEMU -audiodev args */
|
2023-05-09 14:58:10 +00:00
|
|
|
DO_TEST_CAPS_LATEST("audio-none-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-alsa-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-coreaudio-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-jack-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-oss-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-pulseaudio-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-sdl-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-spice-full");
|
|
|
|
DO_TEST_CAPS_LATEST("audio-file-full");
|
2021-02-23 18:32:25 +00:00
|
|
|
|
2021-02-24 14:40:19 +00:00
|
|
|
DO_TEST_CAPS_LATEST("audio-many-backends");
|
2021-02-24 14:24:10 +00:00
|
|
|
|
|
|
|
/* Validate auto-creation of <audio> for legacy compat */
|
|
|
|
g_setenv("QEMU_AUDIO_DRV", "sdl", TRUE);
|
|
|
|
g_setenv("SDL_AUDIODRIVER", "esd", TRUE);
|
|
|
|
DO_TEST_CAPS_LATEST("audio-default-sdl");
|
|
|
|
g_unsetenv("QEMU_AUDIO_DRV");
|
|
|
|
g_unsetenv("SDL_AUDIODRIVER");
|
|
|
|
|
|
|
|
g_setenv("QEMU_AUDIO_DRV", "alsa", TRUE);
|
|
|
|
driver.config->vncAllowHostAudio = true;
|
|
|
|
DO_TEST_CAPS_LATEST("audio-default-vnc");
|
|
|
|
driver.config->vncAllowHostAudio = false;
|
|
|
|
g_unsetenv("QEMU_AUDIO_DRV");
|
|
|
|
|
|
|
|
DO_TEST_CAPS_LATEST("audio-default-spice");
|
|
|
|
|
|
|
|
g_setenv("QEMU_AUDIO_DRV", "alsa", TRUE);
|
|
|
|
driver.config->nogfxAllowHostAudio = true;
|
|
|
|
DO_TEST_CAPS_LATEST("audio-default-nographics");
|
|
|
|
driver.config->nogfxAllowHostAudio = false;
|
|
|
|
g_unsetenv("QEMU_AUDIO_DRV");
|
|
|
|
|
2021-04-06 14:01:20 +00:00
|
|
|
DO_TEST_CAPS_LATEST("devices-acpi-index");
|
|
|
|
|
2023-03-08 16:12:07 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_FULL("hvf-x86_64-q35-headless", "x86_64", ARG_CAPS_VARIANT, "+hvf", ARG_END);
|
2023-03-08 16:12:07 +00:00
|
|
|
DO_TEST_CAPS_ARCH_LATEST_FULL("hvf-aarch64-virt-headless", "aarch64", ARG_CAPS_VARIANT, "+hvf", ARG_END);
|
2023-03-08 16:12:07 +00:00
|
|
|
|
2022-03-18 22:04:05 +00:00
|
|
|
DO_TEST_CAPS_LATEST("channel-qemu-vdagent");
|
|
|
|
DO_TEST_CAPS_LATEST("channel-qemu-vdagent-features");
|
2022-01-04 16:27:01 +00:00
|
|
|
|
2022-11-11 01:21:23 +00:00
|
|
|
DO_TEST_CAPS_VER("sgx-epc", "7.0.0");
|
|
|
|
|
2023-01-17 01:46:50 +00:00
|
|
|
DO_TEST_CAPS_LATEST("crypto-builtin");
|
|
|
|
|
2023-03-01 10:27:30 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-phys-bits-limit");
|
2023-04-25 09:11:59 +00:00
|
|
|
DO_TEST_CAPS_LATEST("cpu-phys-bits-emulate-bare");
|
2023-03-01 10:27:30 +00:00
|
|
|
|
2023-07-05 06:20:26 +00:00
|
|
|
DO_TEST_CAPS_LATEST("async-teardown");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-async-teardown", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-async-teardown-no-attrib", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_LATEST("s390-async-teardown-disabled", "s390x");
|
|
|
|
DO_TEST_CAPS_ARCH_VER("s390-async-teardown-disabled", "s390x", "6.0.0");
|
|
|
|
|
2020-06-25 14:34:30 +00:00
|
|
|
cleanup:
|
2015-09-15 06:16:02 +00:00
|
|
|
qemuTestDriverFree(&driver);
|
2019-08-12 15:06:22 +00:00
|
|
|
virFileWrapperClearPrefixes();
|
2007-07-18 21:34:22 +00:00
|
|
|
|
2014-03-17 09:38:38 +00:00
|
|
|
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
2007-07-18 21:34:22 +00:00
|
|
|
}
|
|
|
|
|
2017-06-01 16:48:52 +00:00
|
|
|
VIR_TEST_MAIN_PRELOAD(mymain,
|
2019-08-21 16:13:16 +00:00
|
|
|
VIR_TEST_MOCK("virpci"),
|
|
|
|
VIR_TEST_MOCK("virrandom"),
|
2020-10-21 14:53:26 +00:00
|
|
|
VIR_TEST_MOCK("domaincaps"))
|