summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Hajnoczi2022-09-20 22:24:07 +0200
committerStefan Hajnoczi2022-09-20 22:24:07 +0200
commit2906f933dd1de6d94c54881cc16ea7390a6ba300 (patch)
tree94711de42073483d041ce903cad3b1938e7a8d9e
parentMerge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (diff)
parentqga: Replace 'blacklist' and 'whitelist' in the guest agent sources (diff)
downloadqemu-2906f933dd1de6d94c54881cc16ea7390a6ba300.tar.gz
qemu-2906f933dd1de6d94c54881cc16ea7390a6ba300.tar.xz
qemu-2906f933dd1de6d94c54881cc16ea7390a6ba300.zip
Merge tag 'pull-request-2022-09-20' of https://gitlab.com/thuth/qemu into staging
* Skip tests if the corresponding feature is missing * Update NetBSD VM test to version 9.3 * Update the FreeBSD CI to version 13.1 * Some small fixes for the qtests * Update wordings in the QEMU guest-agent # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmMpvqURHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXtaQ//ap4P8Gdg7HyShflpHj3+Z+UC/THtcCAD # F5Oj/E89wYJZJvWpjELLUf+218O+zbcKkv6z25AHo37JRSLQMzsD21RpDYcu8qnN # Xk77KrOLFaVRRo6e3FAi5I+uWsm1h/9jJfC/sFrzfKGnWcW5pTzXUkbvWT3LZo/q # d0wJCMn/+h0j6kqhjm8mhFCsGsSaUKFCMzm/6rsWxVsMsVnlTyYhg/IzhocKrkVD # 9ZWz+jAv+h4F0CLl/SeRvZFq4LEGZoP3KHWrDAgEO9i1yC+tNpGDFyV/hJXwapcm # jYGaPPgS2dLToMXf5uubfmyptircQKqdpC2Hl8UwgUS6OgwA2YRCxad8rrrdBezq # 2Nb8KissVB8ySL1Asf00gxioJNwLKrY+4NIeDVxAQ56f1/9kd0w0ylrweR492V/p # z3Yrs3uqqALR1jWfB7/Rh4EN2R0oe6bnlfb8bB6lzPKynXQicZLeoOnNPbkOQMw8 # HgjKVFT130ydXJKMJkgEQmi4JUGoaKqSKCmlSaHz9TAobwNiVBXaH0cyuX5QEuoX # WgZosiF5nBzdbhkC2IPcQYHzIIkelfx9j9mKE0PNfUSkFgMiywcI5TfqabPWGeaA # rxYPU4EZmbgCZPlBVdPFwog/BXap2EIo9+xtINM0COQDoy+Q/l5Z3keHhpjayBBS # qWc6CRSmhLs= # =sHK+ # -----END PGP SIGNATURE----- # gpg: Signature made Tue 20 Sep 2022 09:22:45 EDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-09-20' of https://gitlab.com/thuth/qemu: qga: Replace 'blacklist' and 'whitelist' in the guest agent sources qga: Replace 'blacklist' command line and config file options by 'block-rpcs' gitlab-ci: Update the FreeBSD 13 job from 13.0 to 13.1 tests: sb16 has both pc and q35 tests tests: Only run intel-hda-tests if machine type is compiled in bios-tables-test: Only run test for machine types compiled in bios-tables-test: Sort all x86_64 tests by machine type bios-tables-test: Make oem-fields tests be consistent meson-build: Enable CONFIG_REPLICATION only when replication is set tests: Fix error strings qtest/fuzz-lsi53c895a-test: set guest RAM to 2G tests/qtest: npcm7xx-emc-test: Skip checking MAC .gitlab-ci.d/windows.yml: Drop the sed processing in the 64-bit build tests/vm: update NetBSD to 9.3 tests: mark io-command test as skipped if socat is missing Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r--.gitlab-ci.d/cirrus.yml2
-rw-r--r--.gitlab-ci.d/windows.yml1
-rw-r--r--docs/about/deprecated.rst19
-rw-r--r--docs/interop/qemu-ga.rst8
-rw-r--r--meson.build2
-rw-r--r--qga/commands-posix.c16
-rw-r--r--qga/commands-win32.c10
-rw-r--r--qga/guest-agent-core.h2
-rw-r--r--qga/main.c77
-rw-r--r--qga/qapi-schema.json4
-rw-r--r--tests/data/test-qga-config2
-rw-r--r--tests/qtest/bios-tables-test.c155
-rw-r--r--tests/qtest/e1000-test.c2
-rw-r--r--tests/qtest/es1370-test.c2
-rw-r--r--tests/qtest/fuzz-lsi53c895a-test.c2
-rw-r--r--tests/qtest/fuzz-sb16-test.c10
-rw-r--r--tests/qtest/intel-hda-test.c13
-rw-r--r--tests/qtest/npcm7xx_emc-test.c3
-rw-r--r--tests/unit/test-io-channel-command.c3
-rw-r--r--tests/unit/test-qga.c2
-rwxr-xr-xtests/vm/netbsd4
21 files changed, 196 insertions, 143 deletions
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index 609c364308..d70da61248 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -63,7 +63,7 @@ x64-freebsd-13-build:
NAME: freebsd-13
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
CIRRUS_VM_IMAGE_SELECTOR: image_family
- CIRRUS_VM_IMAGE_NAME: freebsd-13-0
+ CIRRUS_VM_IMAGE_NAME: freebsd-13-1
CIRRUS_VM_CPUS: 8
CIRRUS_VM_RAM: 8G
UPDATE_COMMAND: pkg update
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index da6013904a..86a4339c48 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -60,7 +60,6 @@ msys2-64bit:
- $env:MSYS = 'winsymlinks:native' # Enable native Windows symlink
- .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
--enable-capstone --without-default-devices'
- - .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
- .\msys64\usr\bin\bash -lc 'make'
- .\msys64\usr\bin\bash -lc 'make check'
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index c75a25daad..8c914dfe0f 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -370,3 +370,22 @@ be deleted from this tree.
New deployments should use the Rust version, and existing systems
should consider moving to it. The command line and feature set
is very close and moving should be simple.
+
+
+QEMU guest agent
+----------------
+
+``--blacklist`` command line option (since 7.2)
+'''''''''''''''''''''''''''''''''''''''''''''''
+
+``--blacklist`` has been replaced by ``--block-rpcs`` (which is a better
+wording for what this option does). The short form ``-b`` still stays
+the same and thus is the preferred way for scripts that should run with
+both, older and future versions of QEMU.
+
+``blacklist`` config file option (since 7.2)
+''''''''''''''''''''''''''''''''''''''''''''
+
+The ``blacklist`` config file option has been renamed to ``block-rpcs``
+(to be in sync with the renaming of the corresponding command line
+option).
diff --git a/docs/interop/qemu-ga.rst b/docs/interop/qemu-ga.rst
index 3063357bb5..a9183802d1 100644
--- a/docs/interop/qemu-ga.rst
+++ b/docs/interop/qemu-ga.rst
@@ -79,10 +79,10 @@ Options
Daemonize after startup (detach from terminal).
-.. option:: -b, --blacklist=LIST
+.. option:: -b, --block-rpcs=LIST
- Comma-separated list of RPCs to disable (no spaces, ``?`` to list
- available RPCs).
+ Comma-separated list of RPCs to disable (no spaces, use ``help`` to
+ list available RPCs).
.. option:: -D, --dump-conf
@@ -125,7 +125,7 @@ pidfile string
fsfreeze-hook string
statedir string
verbose boolean
-blacklist string list
+block-rpcs string list
============= ===========
See also
diff --git a/meson.build b/meson.build
index c2adb7caf4..3885fc1076 100644
--- a/meson.build
+++ b/meson.build
@@ -1878,7 +1878,7 @@ config_host_data.set('CONFIG_DEBUG_STACK_USAGE', get_option('debug_stack_usage')
config_host_data.set('CONFIG_GPROF', get_option('gprof'))
config_host_data.set('CONFIG_LIVE_BLOCK_MIGRATION', get_option('live_block_migration').allowed())
config_host_data.set('CONFIG_QOM_CAST_DEBUG', get_option('qom_cast_debug'))
-config_host_data.set('CONFIG_REPLICATION', get_option('live_block_migration').allowed())
+config_host_data.set('CONFIG_REPLICATION', get_option('replication').allowed())
# has_header
config_host_data.set('CONFIG_EPOLL', cc.has_header('sys/epoll.h'))
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 954efed01b..eea819cff0 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -3356,8 +3356,8 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, Error **errp)
}
#endif
-/* add unsupported commands to the blacklist */
-GList *ga_command_blacklist_init(GList *blacklist)
+/* add unsupported commands to the list of blocked RPCs */
+GList *ga_command_init_blockedrpcs(GList *blockedrpcs)
{
#if !defined(__linux__)
{
@@ -3370,13 +3370,13 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, g_strdup(*p++));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup(*p++));
}
}
#endif
#if !defined(HAVE_GETIFADDRS)
- blacklist = g_list_append(blacklist,
+ blockedrpcs = g_list_append(blockedrpcs,
g_strdup("guest-network-get-interfaces"));
#endif
@@ -3390,18 +3390,18 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, g_strdup(*p++));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup(*p++));
}
}
#endif
#if !defined(CONFIG_FSTRIM)
- blacklist = g_list_append(blacklist, g_strdup("guest-fstrim"));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup("guest-fstrim"));
#endif
- blacklist = g_list_append(blacklist, g_strdup("guest-get-devices"));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup("guest-get-devices"));
- return blacklist;
+ return blockedrpcs;
}
/* register init/cleanup routines for stateful command groups */
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 7ed7664715..ec9f55b453 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -2005,8 +2005,8 @@ GuestMemoryBlockInfo *qmp_guest_get_memory_block_info(Error **errp)
return NULL;
}
-/* add unsupported commands to the blacklist */
-GList *ga_command_blacklist_init(GList *blacklist)
+/* add unsupported commands to the list of blocked RPCs */
+GList *ga_command_init_blockedrpcs(GList *blockedrpcs)
{
const char *list_unsupported[] = {
"guest-suspend-hybrid",
@@ -2017,7 +2017,7 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list_unsupported;
while (*p) {
- blacklist = g_list_append(blacklist, g_strdup(*p++));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup(*p++));
}
if (!vss_init(true)) {
@@ -2028,11 +2028,11 @@ GList *ga_command_blacklist_init(GList *blacklist)
p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, g_strdup(*p++));
+ blockedrpcs = g_list_append(blockedrpcs, g_strdup(*p++));
}
}
- return blacklist;
+ return blockedrpcs;
}
/* register init/cleanup routines for stateful command groups */
diff --git a/qga/guest-agent-core.h b/qga/guest-agent-core.h
index 29cd50402f..b4e7c52c61 100644
--- a/qga/guest-agent-core.h
+++ b/qga/guest-agent-core.h
@@ -24,7 +24,7 @@ typedef struct GACommandState GACommandState;
extern GAState *ga_state;
extern QmpCommandList ga_commands;
-GList *ga_command_blacklist_init(GList *blacklist);
+GList *ga_command_init_blockedrpcs(GList *blockedrpcs);
void ga_command_state_init(GAState *s, GACommandState *cs);
void ga_command_state_add(GACommandState *cs,
void (*init)(void),
diff --git a/qga/main.c b/qga/main.c
index 5f1efa2333..5a9d8252e0 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -87,7 +87,7 @@ struct GAState {
#endif
bool delimit_response;
bool frozen;
- GList *blacklist;
+ GList *blockedrpcs;
char *state_filepath_isfrozen;
struct {
const char *log_filepath;
@@ -107,7 +107,7 @@ struct GAState *ga_state;
QmpCommandList ga_commands;
/* commands that are safe to issue while filesystems are frozen */
-static const char *ga_freeze_whitelist[] = {
+static const char *ga_freeze_allowlist[] = {
"guest-ping",
"guest-info",
"guest-sync",
@@ -260,8 +260,8 @@ QEMU_COPYRIGHT "\n"
#ifdef _WIN32
" -s, --service service commands: install, uninstall, vss-install, vss-uninstall\n"
#endif
-" -b, --blacklist comma-separated list of RPCs to disable (no spaces, \"?\"\n"
-" to list available RPCs)\n"
+" -b, --block-rpcs comma-separated list of RPCs to disable (no spaces,\n"
+" use \"help\" to list available RPCs)\n"
" -D, --dump-conf dump a qemu-ga config file based on current config\n"
" options / command-line parameters to stdout\n"
" -r, --retry-path attempt re-opening path if it's unavailable or closed\n"
@@ -363,31 +363,31 @@ static gint ga_strcmp(gconstpointer str1, gconstpointer str2)
}
/* disable commands that aren't safe for fsfreeze */
-static void ga_disable_non_whitelisted(const QmpCommand *cmd, void *opaque)
+static void ga_disable_not_allowed(const QmpCommand *cmd, void *opaque)
{
- bool whitelisted = false;
+ bool allowed = false;
int i = 0;
const char *name = qmp_command_name(cmd);
- while (ga_freeze_whitelist[i] != NULL) {
- if (strcmp(name, ga_freeze_whitelist[i]) == 0) {
- whitelisted = true;
+ while (ga_freeze_allowlist[i] != NULL) {
+ if (strcmp(name, ga_freeze_allowlist[i]) == 0) {
+ allowed = true;
}
i++;
}
- if (!whitelisted) {
+ if (!allowed) {
g_debug("disabling command: %s", name);
qmp_disable_command(&ga_commands, name, "the agent is in frozen state");
}
}
-/* [re-]enable all commands, except those explicitly blacklisted by user */
-static void ga_enable_non_blacklisted(const QmpCommand *cmd, void *opaque)
+/* [re-]enable all commands, except those explicitly blocked by user */
+static void ga_enable_non_blocked(const QmpCommand *cmd, void *opaque)
{
- GList *blacklist = opaque;
+ GList *blockedrpcs = opaque;
const char *name = qmp_command_name(cmd);
- if (g_list_find_custom(blacklist, name, ga_strcmp) == NULL &&
+ if (g_list_find_custom(blockedrpcs, name, ga_strcmp) == NULL &&
!qmp_command_is_enabled(cmd)) {
g_debug("enabling command: %s", name);
qmp_enable_command(&ga_commands, name);
@@ -426,8 +426,8 @@ void ga_set_frozen(GAState *s)
if (ga_is_frozen(s)) {
return;
}
- /* disable all non-whitelisted (for frozen state) commands */
- qmp_for_each_command(&ga_commands, ga_disable_non_whitelisted, NULL);
+ /* disable all forbidden (for frozen state) commands */
+ qmp_for_each_command(&ga_commands, ga_disable_not_allowed, NULL);
g_warning("disabling logging due to filesystem freeze");
ga_disable_logging(s);
s->frozen = true;
@@ -465,8 +465,8 @@ void ga_unset_frozen(GAState *s)
s->deferred_options.pid_filepath = NULL;
}
- /* enable all disabled, non-blacklisted commands */
- qmp_for_each_command(&ga_commands, ga_enable_non_blacklisted, s->blacklist);
+ /* enable all disabled, non-blocked commands */
+ qmp_for_each_command(&ga_commands, ga_enable_non_blocked, s->blockedrpcs);
s->frozen = false;
if (!ga_delete_file(s->state_filepath_isfrozen)) {
g_warning("unable to delete %s, fsfreeze may not function properly",
@@ -896,7 +896,8 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp)
int64_t handle;
g_assert(s->pstate_filepath);
- /* we blacklist commands and avoid operations that potentially require
+ /*
+ * We block commands and avoid operations that potentially require
* writing to disk when we're in a frozen state. this includes opening
* new files, so we should never get here in that situation
*/
@@ -950,8 +951,8 @@ struct GAConfig {
#ifdef _WIN32
const char *service;
#endif
- gchar *bliststr; /* blacklist may point to this string */
- GList *blacklist;
+ gchar *bliststr; /* blockedrpcs may point to this string */
+ GList *blockedrpcs;
int daemonize;
GLogLevelFlags log_level;
int dumpconf;
@@ -963,6 +964,7 @@ static void config_load(GAConfig *config)
GError *gerr = NULL;
GKeyFile *keyfile;
g_autofree char *conf = g_strdup(g_getenv("QGA_CONF")) ?: get_relocated_path(QGA_CONF_DEFAULT);
+ const gchar *blockrpcs_key = "block-rpcs";
/* read system config */
keyfile = g_key_file_new();
@@ -1009,10 +1011,16 @@ static void config_load(GAConfig *config)
config->retry_path =
g_key_file_get_boolean(keyfile, "general", "retry-path", &gerr);
}
+
if (g_key_file_has_key(keyfile, "general", "blacklist", NULL)) {
+ g_warning("config using deprecated 'blacklist' key, should be replaced"
+ " with the 'block-rpcs' key.");
+ blockrpcs_key = "blacklist";
+ }
+ if (g_key_file_has_key(keyfile, "general", blockrpcs_key, NULL)) {
config->bliststr =
- g_key_file_get_string(keyfile, "general", "blacklist", &gerr);
- config->blacklist = g_list_concat(config->blacklist,
+ g_key_file_get_string(keyfile, "general", blockrpcs_key, &gerr);
+ config->blockedrpcs = g_list_concat(config->blockedrpcs,
split_list(config->bliststr, ","));
}
@@ -1072,8 +1080,8 @@ static void config_dump(GAConfig *config)
config->log_level == G_LOG_LEVEL_MASK);
g_key_file_set_boolean(keyfile, "general", "retry-path",
config->retry_path);
- tmp = list_join(config->blacklist, ',');
- g_key_file_set_string(keyfile, "general", "blacklist", tmp);
+ tmp = list_join(config->blockedrpcs, ',');
+ g_key_file_set_string(keyfile, "general", "block-rpcs", tmp);
g_free(tmp);
tmp = g_key_file_to_data(keyfile, NULL, &error);
@@ -1105,7 +1113,8 @@ static void config_parse(GAConfig *config, int argc, char **argv)
{ "method", 1, NULL, 'm' },
{ "path", 1, NULL, 'p' },
{ "daemonize", 0, NULL, 'd' },
- { "blacklist", 1, NULL, 'b' },
+ { "block-rpcs", 1, NULL, 'b' },
+ { "blacklist", 1, NULL, 'b' }, /* deprecated alias for 'block-rpcs' */
#ifdef _WIN32
{ "service", 1, NULL, 's' },
#endif
@@ -1163,8 +1172,8 @@ static void config_parse(GAConfig *config, int argc, char **argv)
qmp_for_each_command(&ga_commands, ga_print_cmd, NULL);
exit(EXIT_SUCCESS);
}
- config->blacklist = g_list_concat(config->blacklist,
- split_list(optarg, ","));
+ config->blockedrpcs = g_list_concat(config->blockedrpcs,
+ split_list(optarg, ","));
break;
}
#ifdef _WIN32
@@ -1218,7 +1227,7 @@ static void config_free(GAConfig *config)
#ifdef CONFIG_FSFREEZE
g_free(config->fsfreeze_hook);
#endif
- g_list_free_full(config->blacklist, g_free);
+ g_list_free_full(config->blockedrpcs, g_free);
g_free(config);
}
@@ -1302,7 +1311,7 @@ static GAState *initialize_agent(GAConfig *config, int socket_activation)
s->deferred_options.log_filepath = config->log_filepath;
}
ga_disable_logging(s);
- qmp_for_each_command(&ga_commands, ga_disable_non_whitelisted, NULL);
+ qmp_for_each_command(&ga_commands, ga_disable_not_allowed, NULL);
} else {
if (config->daemonize) {
become_daemon(config->pid_filepath);
@@ -1326,10 +1335,10 @@ static GAState *initialize_agent(GAConfig *config, int socket_activation)
return NULL;
}
- config->blacklist = ga_command_blacklist_init(config->blacklist);
- if (config->blacklist) {
- GList *l = config->blacklist;
- s->blacklist = config->blacklist;
+ config->blockedrpcs = ga_command_init_blockedrpcs(config->blockedrpcs);
+ if (config->blockedrpcs) {
+ GList *l = config->blockedrpcs;
+ s->blockedrpcs = config->blockedrpcs;
do {
g_debug("disabling command: %s", (char *)l->data);
qmp_disable_command(&ga_commands, l->data, NULL);
diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
index 869399ea1a..026a56f76c 100644
--- a/qga/qapi-schema.json
+++ b/qga/qapi-schema.json
@@ -16,8 +16,8 @@
{ 'pragma': { 'doc-required': true } }
-# Whitelists to permit QAPI rule violations; think twice before you
-# add to them!
+# Lists with items allowed to permit QAPI rule violations; think twice
+# before you add to them!
{ 'pragma': {
# Types whose member names may use '_'
'member-name-exceptions': [
diff --git a/tests/data/test-qga-config b/tests/data/test-qga-config
index 4bb721a4a1..b6b7bc9dfd 100644
--- a/tests/data/test-qga-config
+++ b/tests/data/test-qga-config
@@ -5,4 +5,4 @@ path=/path/to/org.qemu.guest_agent.0
pidfile=/var/foo/qemu-ga.pid
statedir=/var/state
verbose=true
-blacklist=guest-ping;guest-get-time
+block-rpcs=guest-ping;guest-get-time
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 36783966b0..46a46fe0aa 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1671,7 +1671,7 @@ static void test_oem_fields(test_data *data)
}
}
-static void test_acpi_oem_fields_pc(void)
+static void test_acpi_piix4_oem_fields(void)
{
test_data data;
char *args;
@@ -1691,7 +1691,7 @@ static void test_acpi_oem_fields_pc(void)
g_free(args);
}
-static void test_acpi_oem_fields_q35(void)
+static void test_acpi_q35_oem_fields(void)
{
test_data data;
char *args;
@@ -1711,7 +1711,7 @@ static void test_acpi_oem_fields_q35(void)
g_free(args);
}
-static void test_acpi_oem_fields_microvm(void)
+static void test_acpi_microvm_oem_fields(void)
{
test_data data;
char *args;
@@ -1728,7 +1728,7 @@ static void test_acpi_oem_fields_microvm(void)
g_free(args);
}
-static void test_acpi_oem_fields_virt(void)
+static void test_acpi_virt_oem_fields(void)
{
test_data data = {
.machine = "virt",
@@ -1766,85 +1766,102 @@ int main(int argc, char *argv[])
if (ret) {
return ret;
}
- qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35);
- if (tpm_model_is_available("-machine q35", "tpm-tis")) {
- qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm2_tis);
- qtest_add_func("acpi/q35/tpm12-tis", test_acpi_q35_tcg_tpm12_tis);
- }
- qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
- qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc);
- qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
- qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug",
- test_acpi_piix4_no_root_hotplug);
- qtest_add_func("acpi/piix4/pci-hotplug/no_bridge_hotplug",
- test_acpi_piix4_no_bridge_hotplug);
- qtest_add_func("acpi/piix4/pci-hotplug/off",
- test_acpi_piix4_no_acpi_pci_hotplug);
- qtest_add_func("acpi/q35", test_acpi_q35_tcg);
- qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
- qtest_add_func("acpi/q35/multif-bridge", test_acpi_q35_multif_bridge);
- qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
- qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
- qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
- qtest_add_func("acpi/q35/smbus/ipmi", test_acpi_q35_tcg_smbus_ipmi);
- qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
- qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
- qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
- qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
- qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
- qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
- qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
- qtest_add_func("acpi/piix4/smm-compat",
- test_acpi_piix4_tcg_smm_compat);
- qtest_add_func("acpi/piix4/smm-compat-nosmm",
- test_acpi_piix4_tcg_smm_compat_nosmm);
- qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet);
- qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm);
- qtest_add_func("acpi/q35/smm-compat",
- test_acpi_q35_tcg_smm_compat);
- qtest_add_func("acpi/q35/smm-compat-nosmm",
- test_acpi_q35_tcg_smm_compat_nosmm);
- qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet);
- qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
- qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
- qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat);
- qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat);
+ if (qtest_has_machine(MACHINE_PC)) {
+ qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
+ qtest_add_func("acpi/piix4/oem-fields", test_acpi_piix4_oem_fields);
+ qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
+ qtest_add_func("acpi/piix4/pci-hotplug/no_root_hotplug",
+ test_acpi_piix4_no_root_hotplug);
+ qtest_add_func("acpi/piix4/pci-hotplug/no_bridge_hotplug",
+ test_acpi_piix4_no_bridge_hotplug);
+ qtest_add_func("acpi/piix4/pci-hotplug/off",
+ test_acpi_piix4_no_acpi_pci_hotplug);
+ qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi);
+ qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp);
+ qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
+ qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
+ qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
+ qtest_add_func("acpi/piix4/smm-compat",
+ test_acpi_piix4_tcg_smm_compat);
+ qtest_add_func("acpi/piix4/smm-compat-nosmm",
+ test_acpi_piix4_tcg_smm_compat_nosmm);
+ qtest_add_func("acpi/piix4/nohpet", test_acpi_piix4_tcg_nohpet);
+ qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm);
+ qtest_add_func("acpi/piix4/acpihmat",
+ test_acpi_piix4_tcg_acpi_hmat);
#ifdef CONFIG_POSIX
- qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst);
- qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst);
+ qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst);
#endif
- qtest_add_func("acpi/q35/applesmc", test_acpi_q35_applesmc);
- qtest_add_func("acpi/q35/pvpanic-isa", test_acpi_q35_pvpanic_isa);
- qtest_add_func("acpi/microvm", test_acpi_microvm_tcg);
- qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg);
- qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg);
- qtest_add_func("acpi/microvm/ioapic2", test_acpi_microvm_ioapic2_tcg);
- qtest_add_func("acpi/microvm/oem-fields", test_acpi_oem_fields_microvm);
- if (has_tcg) {
- qtest_add_func("acpi/q35/ivrs", test_acpi_q35_tcg_ivrs);
- if (strcmp(arch, "x86_64") == 0) {
- qtest_add_func("acpi/microvm/pcie", test_acpi_microvm_pcie_tcg);
+ }
+ if (qtest_has_machine(MACHINE_Q35)) {
+ qtest_add_func("acpi/q35", test_acpi_q35_tcg);
+ qtest_add_func("acpi/q35/oem-fields", test_acpi_q35_oem_fields);
+ if (tpm_model_is_available("-machine q35", "tpm-tis")) {
+ qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm2_tis);
+ qtest_add_func("acpi/q35/tpm12-tis",
+ test_acpi_q35_tcg_tpm12_tis);
+ }
+ qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge);
+ qtest_add_func("acpi/q35/multif-bridge",
+ test_acpi_q35_multif_bridge);
+ qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64);
+ qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi);
+ qtest_add_func("acpi/q35/smbus/ipmi", test_acpi_q35_tcg_smbus_ipmi);
+ qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp);
+ qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
+ qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
+ qtest_add_func("acpi/q35/nosmm", test_acpi_q35_tcg_nosmm);
+ qtest_add_func("acpi/q35/smm-compat",
+ test_acpi_q35_tcg_smm_compat);
+ qtest_add_func("acpi/q35/smm-compat-nosmm",
+ test_acpi_q35_tcg_smm_compat_nosmm);
+ qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet);
+ qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm);
+ qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat);
#ifdef CONFIG_POSIX
- qtest_add_func("acpi/microvm/acpierst", test_acpi_microvm_acpi_erst);
+ qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst);
#endif
+ qtest_add_func("acpi/q35/applesmc", test_acpi_q35_applesmc);
+ qtest_add_func("acpi/q35/pvpanic-isa", test_acpi_q35_pvpanic_isa);
+ if (has_tcg) {
+ qtest_add_func("acpi/q35/ivrs", test_acpi_q35_tcg_ivrs);
}
+ if (has_kvm) {
+ qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic);
+ qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar);
+ }
+ qtest_add_func("acpi/q35/viot", test_acpi_q35_viot);
+#ifdef CONFIG_POSIX
+ qtest_add_func("acpi/q35/cxl", test_acpi_q35_cxl);
+#endif
+ qtest_add_func("acpi/q35/slic", test_acpi_q35_slic);
}
- if (has_kvm) {
- qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic);
- qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar);
- }
- qtest_add_func("acpi/q35/viot", test_acpi_q35_viot);
+ if (qtest_has_machine("microvm")) {
+ qtest_add_func("acpi/microvm", test_acpi_microvm_tcg);
+ qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg);
+ qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg);
+ qtest_add_func("acpi/microvm/ioapic2",
+ test_acpi_microvm_ioapic2_tcg);
+ qtest_add_func("acpi/microvm/oem-fields",
+ test_acpi_microvm_oem_fields);
+ if (has_tcg) {
+ if (strcmp(arch, "x86_64") == 0) {
+ qtest_add_func("acpi/microvm/pcie",
+ test_acpi_microvm_pcie_tcg);
#ifdef CONFIG_POSIX
- qtest_add_func("acpi/q35/cxl", test_acpi_q35_cxl);
+ qtest_add_func("acpi/microvm/acpierst",
+ test_acpi_microvm_acpi_erst);
#endif
- qtest_add_func("acpi/q35/slic", test_acpi_q35_slic);
+ }
+ }
+ }
} else if (strcmp(arch, "aarch64") == 0) {
if (has_tcg) {
qtest_add_func("acpi/virt", test_acpi_virt_tcg);
qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem);
qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp);
qtest_add_func("acpi/virt/pxb", test_acpi_virt_tcg_pxb);
- qtest_add_func("acpi/virt/oem-fields", test_acpi_oem_fields_virt);
+ qtest_add_func("acpi/virt/oem-fields", test_acpi_virt_oem_fields);
qtest_add_func("acpi/virt/viot", test_acpi_virt_viot);
}
}
diff --git a/tests/qtest/e1000-test.c b/tests/qtest/e1000-test.c
index c387984ef6..4e0d7a5607 100644
--- a/tests/qtest/e1000-test.c
+++ b/tests/qtest/e1000-test.c
@@ -35,7 +35,7 @@ static void *e1000_get_driver(void *obj, const char *interface)
return &e1000->dev;
}
- fprintf(stderr, "%s not present in e1000e\n", interface);
+ fprintf(stderr, "%s not present in e1000\n", interface);
g_assert_not_reached();
}
diff --git a/tests/qtest/es1370-test.c b/tests/qtest/es1370-test.c
index adccdac1be..97ab65c435 100644
--- a/tests/qtest/es1370-test.c
+++ b/tests/qtest/es1370-test.c
@@ -28,7 +28,7 @@ static void *es1370_get_driver(void *obj, const char *interface)
return &es1370->dev;
}
- fprintf(stderr, "%s not present in e1000e\n", interface);
+ fprintf(stderr, "%s not present in es1370\n", interface);
g_assert_not_reached();
}
diff --git a/tests/qtest/fuzz-lsi53c895a-test.c b/tests/qtest/fuzz-lsi53c895a-test.c
index b23d3ecf45..434c16bf42 100644
--- a/tests/qtest/fuzz-lsi53c895a-test.c
+++ b/tests/qtest/fuzz-lsi53c895a-test.c
@@ -21,7 +21,7 @@ static void test_lsi_do_msgout_cancel_req(void)
return;
}
- s = qtest_init("-M q35 -m 4G -display none -nodefaults "
+ s = qtest_init("-M q35 -m 2G -display none -nodefaults "
"-device lsi53c895a,id=scsi "
"-device scsi-hd,drive=disk0 "
"-drive file=null-co://,id=disk0,if=none,format=raw");
diff --git a/tests/qtest/fuzz-sb16-test.c b/tests/qtest/fuzz-sb16-test.c
index a65826b943..add2a2ad39 100644
--- a/tests/qtest/fuzz-sb16-test.c
+++ b/tests/qtest/fuzz-sb16-test.c
@@ -57,9 +57,13 @@ int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
- qtest_add_func("fuzz/test_fuzz_sb16/1c", test_fuzz_sb16_0x1c);
- qtest_add_func("fuzz/test_fuzz_sb16/91", test_fuzz_sb16_0x91);
- qtest_add_func("fuzz/test_fuzz_sb16/d4", test_fuzz_sb16_0xd4);
+ if (qtest_has_machine("q35")) {
+ qtest_add_func("fuzz/test_fuzz_sb16/1c", test_fuzz_sb16_0x1c);
+ }
+ if (qtest_has_machine("pc")) {
+ qtest_add_func("fuzz/test_fuzz_sb16/91", test_fuzz_sb16_0x91);
+ qtest_add_func("fuzz/test_fuzz_sb16/d4", test_fuzz_sb16_0xd4);
+ }
return g_test_run();
}
diff --git a/tests/qtest/intel-hda-test.c b/tests/qtest/intel-hda-test.c
index a58c98e4d1..d4a8db6fd6 100644
--- a/tests/qtest/intel-hda-test.c
+++ b/tests/qtest/intel-hda-test.c
@@ -18,7 +18,7 @@
/* Tests only initialization so far. TODO: Replace with functional tests */
static void ich6_test(void)
{
- qtest_start("-device intel-hda,id=" HDA_ID CODEC_DEVICES);
+ qtest_start("-machine pc -device intel-hda,id=" HDA_ID CODEC_DEVICES);
qtest_end();
}
@@ -65,9 +65,12 @@ static void test_issue542_ich6(void)
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
- qtest_add_func("/intel-hda/ich6", ich6_test);
- qtest_add_func("/intel-hda/ich9", ich9_test);
- qtest_add_func("/intel-hda/fuzz/issue542", test_issue542_ich6);
-
+ if (qtest_has_machine("pc")) {
+ qtest_add_func("/intel-hda/ich6", ich6_test);
+ }
+ if (qtest_has_machine("q35")) {
+ qtest_add_func("/intel-hda/ich9", ich9_test);
+ qtest_add_func("/intel-hda/fuzz/issue542", test_issue542_ich6);
+ }
return g_test_run();
}
diff --git a/tests/qtest/npcm7xx_emc-test.c b/tests/qtest/npcm7xx_emc-test.c
index c373d24e1e..b046f1d76a 100644
--- a/tests/qtest/npcm7xx_emc-test.c
+++ b/tests/qtest/npcm7xx_emc-test.c
@@ -381,7 +381,8 @@ static void test_init(gconstpointer test_data)
#undef CHECK_REG
- for (i = 0; i < NUM_CAMML_REGS; ++i) {
+ /* Skip over the MAC address registers, which is BASE+0 */
+ for (i = 1; i < NUM_CAMML_REGS; ++i) {
g_assert_cmpuint(emc_read(qts, mod, REG_CAMM_BASE + i * 2), ==,
0);
g_assert_cmpuint(emc_read(qts, mod, REG_CAML_BASE + i * 2), ==,
diff --git a/tests/unit/test-io-channel-command.c b/tests/unit/test-io-channel-command.c
index 99056e07c0..aa09c559cd 100644
--- a/tests/unit/test-io-channel-command.c
+++ b/tests/unit/test-io-channel-command.c
@@ -41,7 +41,8 @@ static void test_io_channel_command_fifo(bool async)
unlink(TEST_FIFO);
if (access("/bin/socat", X_OK) < 0) {
- return; /* Pretend success if socat is not present */
+ g_test_skip("socat is missing");
+ return;
}
if (mkfifo(TEST_FIFO, 0600) < 0) {
abort();
diff --git a/tests/unit/test-qga.c b/tests/unit/test-qga.c
index d27ff94d13..b6ea7c7304 100644
--- a/tests/unit/test-qga.c
+++ b/tests/unit/test-qga.c
@@ -730,7 +730,7 @@ static void test_qga_config(gconstpointer data)
g_assert_true(g_key_file_get_boolean(kf, "general", "verbose", &error));
g_assert_no_error(error);
- strv = g_key_file_get_string_list(kf, "general", "blacklist", &n, &error);
+ strv = g_key_file_get_string_list(kf, "general", "block-rpcs", &n, &error);
g_assert_cmpint(n, ==, 2);
g_assert_true(g_strv_contains((const char * const *)strv,
"guest-ping"));
diff --git a/tests/vm/netbsd b/tests/vm/netbsd
index da6773ff59..aa54338dfa 100755
--- a/tests/vm/netbsd
+++ b/tests/vm/netbsd
@@ -22,8 +22,8 @@ class NetBSDVM(basevm.BaseVM):
name = "netbsd"
arch = "x86_64"
- link = "https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.2/images/NetBSD-9.2-amd64.iso"
- csum = "5ee0ea101f73386b9b424f5d1041e371db3c42fdd6f4e4518dc79c4a08f31d43091ebe93425c9f0dcaaed2b51131836fe6774f33f89030b58d64709b35fda72f"
+ link = "https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.3/images/NetBSD-9.3-amd64.iso"
+ csum = "2bfce544f762a579f61478e7106c436fc48731ff25cf6f79b392ba5752e6f5ec130364286f7471716290a5f033637cf56aacee7fedb91095face59adf36300c3"
size = "20G"
pkgs = [
# tools