mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
- Some fixes for various tests
- Improve wordings in some files -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmLn6aYRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbWekg/+NVIT1jp3tcbfPIE6pB0vI/AhqN3i2hUd zfJ4V3rSe5tg54JpmuuSt542mp4BDM9bPfYcY/DYESWEtW0c9wv80iP/5LFdJF0G GYtk7Q4pRXvB32kF0v9OxjCEGPUeEqSRrDrsI/Ify5evEIhr55oHPnDjN/US1Bx+ TIuVfmyz8jhSPHsUvZzfVyFxkHre1+BWDxgM3zxoHFIaWEscIPE1KhwRILbKIxWx MHpL8JLAneGFwljQoUAMCl7GzHkVna59RhqkbBJ+8iTaNGipQj9FhHZBo2CulO0J SR7scWowYN8Jt2FNMe3tcKM2xQn/2Fg2TEK4sp6q+hCXhJuvFfWFHBiFYTNpagFA LGgZmPfDr4uZtMEqY4AdEZdL14YZcoM9E/RpW7GhSvMHy73wOj16O8luH1bU0jtG 6X1VvAZlw8/Son1Tbq2CC6WejlMfJFXSzF6Fy6M7SflMPW44vJOs5uKdW405MYjE Pksbfz1rwoNfK+1qBNQop7SccgDRvPtlLf3lDAU9V/JHWVEITs1KTfyS+46U8jKA 9SVBzKuTpVd+aXvMgvMAmmqnyvUBPHJ9KcFq4vHNbIETsGaQsXu0Q6waBmpcK8YB KUL/g0EsdfhkpVVgKYZ4Bzj7shG6SKTdwc/lUcOt+wQuDrZZzaC+A2cu/6ReQN6T BIHtoaxTz8E= =K6RW -----END PGP SIGNATURE----- Merge tag 'pull-request-2022-08-01' of https://gitlab.com/thuth/qemu into staging - Some fixes for various tests - Improve wordings in some files # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmLn6aYRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbWekg/+NVIT1jp3tcbfPIE6pB0vI/AhqN3i2hUd # zfJ4V3rSe5tg54JpmuuSt542mp4BDM9bPfYcY/DYESWEtW0c9wv80iP/5LFdJF0G # GYtk7Q4pRXvB32kF0v9OxjCEGPUeEqSRrDrsI/Ify5evEIhr55oHPnDjN/US1Bx+ # TIuVfmyz8jhSPHsUvZzfVyFxkHre1+BWDxgM3zxoHFIaWEscIPE1KhwRILbKIxWx # MHpL8JLAneGFwljQoUAMCl7GzHkVna59RhqkbBJ+8iTaNGipQj9FhHZBo2CulO0J # SR7scWowYN8Jt2FNMe3tcKM2xQn/2Fg2TEK4sp6q+hCXhJuvFfWFHBiFYTNpagFA # LGgZmPfDr4uZtMEqY4AdEZdL14YZcoM9E/RpW7GhSvMHy73wOj16O8luH1bU0jtG # 6X1VvAZlw8/Son1Tbq2CC6WejlMfJFXSzF6Fy6M7SflMPW44vJOs5uKdW405MYjE # Pksbfz1rwoNfK+1qBNQop7SccgDRvPtlLf3lDAU9V/JHWVEITs1KTfyS+46U8jKA # 9SVBzKuTpVd+aXvMgvMAmmqnyvUBPHJ9KcFq4vHNbIETsGaQsXu0Q6waBmpcK8YB # KUL/g0EsdfhkpVVgKYZ4Bzj7shG6SKTdwc/lUcOt+wQuDrZZzaC+A2cu/6ReQN6T # BIHtoaxTz8E= # =K6RW # -----END PGP SIGNATURE----- # gpg: Signature made Mon 01 Aug 2022 07:56:38 AM PDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [undefined] # gpg: aka "Thomas Huth <thuth@redhat.com>" [undefined] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-08-01' of https://gitlab.com/thuth/qemu: tests/qtest/migration-test: Run the dirty ring tests only with the x86 target trivial: Fix duplicated words misc: fix commonly doubled up words tests/unit/test-qga: Replace the word 'blacklist' in the guest agent unit test migration-test: Allow test to run without uffd migration-test: Use migrate_ensure_converge() for auto-converge tests/tcg/linux-test: Fix random hangs in test_socket Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
b15bdb1d83
35 changed files with 76 additions and 88 deletions
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Docker Debian Native
|
||||
#
|
||||
# This this intended to build QEMU on native host systems. Debian is
|
||||
# This is intended to build QEMU on native host systems. Debian is
|
||||
# chosen due to the broadest range on supported host systems for QEMU.
|
||||
#
|
||||
# This docker target is based on the docker.io Debian Bullseye base
|
||||
|
|
|
@ -447,11 +447,11 @@ static void test_nrf51_timer(void)
|
|||
|
||||
timer_set_bitmode(qts, NRF51_TIMER_WIDTH_16); /* 16 MHz Timer */
|
||||
timer_set_prescaler(qts, 0);
|
||||
/* Swept over in first step */
|
||||
/* Swept over, during the first step */
|
||||
timer_set_cc(qts, 0, 2);
|
||||
/* Barely miss on first step */
|
||||
/* Barely miss, after the second step */
|
||||
timer_set_cc(qts, 1, 162);
|
||||
/* Spot on on third step */
|
||||
/* Spot on, after the third step */
|
||||
timer_set_cc(qts, 2, 480);
|
||||
|
||||
timer_assert_events(qts, 0, 0, 0, 0);
|
||||
|
|
|
@ -1768,7 +1768,7 @@ static void test_migrate_auto_converge(void)
|
|||
g_autofree char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs);
|
||||
MigrateStart args = {};
|
||||
QTestState *from, *to;
|
||||
int64_t remaining, percentage;
|
||||
int64_t percentage;
|
||||
|
||||
/*
|
||||
* We want the test to be stable and as fast as possible.
|
||||
|
@ -1776,14 +1776,6 @@ static void test_migrate_auto_converge(void)
|
|||
* so we need to decrease a bandwidth.
|
||||
*/
|
||||
const int64_t init_pct = 5, inc_pct = 50, max_pct = 95;
|
||||
const int64_t max_bandwidth = 400000000; /* ~400Mb/s */
|
||||
const int64_t downtime_limit = 250; /* 250ms */
|
||||
/*
|
||||
* We migrate through unix-socket (> 500Mb/s).
|
||||
* Thus, expected migration speed ~= bandwidth limit (< 500Mb/s).
|
||||
* So, we can predict expected_threshold
|
||||
*/
|
||||
const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000;
|
||||
|
||||
if (test_migrate_start(&from, &to, uri, &args)) {
|
||||
return;
|
||||
|
@ -1818,8 +1810,7 @@ static void test_migrate_auto_converge(void)
|
|||
/* The first percentage of throttling should be equal to init_pct */
|
||||
g_assert_cmpint(percentage, ==, init_pct);
|
||||
/* Now, when we tested that throttling works, let it converge */
|
||||
migrate_set_parameter_int(from, "downtime-limit", downtime_limit);
|
||||
migrate_set_parameter_int(from, "max-bandwidth", max_bandwidth);
|
||||
migrate_ensure_converge(from);
|
||||
|
||||
/*
|
||||
* Wait for pre-switchover status to check last throttle percentage
|
||||
|
@ -1830,11 +1821,6 @@ static void test_migrate_auto_converge(void)
|
|||
/* The final percentage of throttling shouldn't be greater than max_pct */
|
||||
percentage = read_migrate_property_int(from, "cpu-throttle-percentage");
|
||||
g_assert_cmpint(percentage, <=, max_pct);
|
||||
|
||||
remaining = read_ram_property_int(from, "remaining");
|
||||
g_assert_cmpint(remaining, <,
|
||||
(expected_threshold + expected_threshold / 100));
|
||||
|
||||
migrate_continue(from, "pre-switchover");
|
||||
|
||||
qtest_qmp_eventwait(to, "RESUME");
|
||||
|
@ -1842,7 +1828,6 @@ static void test_migrate_auto_converge(void)
|
|||
wait_for_serial("dest_serial");
|
||||
wait_for_migration_complete(from);
|
||||
|
||||
|
||||
test_migrate_end(from, to, true);
|
||||
}
|
||||
|
||||
|
@ -2439,20 +2424,18 @@ int main(int argc, char **argv)
|
|||
{
|
||||
char template[] = "/tmp/migration-test-XXXXXX";
|
||||
const bool has_kvm = qtest_has_accel("kvm");
|
||||
const bool has_uffd = ufd_version_check();
|
||||
const char *arch = qtest_get_arch();
|
||||
int ret;
|
||||
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
||||
if (!ufd_version_check()) {
|
||||
return g_test_run();
|
||||
}
|
||||
|
||||
/*
|
||||
* On ppc64, the test only works with kvm-hv, but not with kvm-pr and TCG
|
||||
* is touchy due to race conditions on dirty bits (especially on PPC for
|
||||
* some reason)
|
||||
*/
|
||||
if (g_str_equal(qtest_get_arch(), "ppc64") &&
|
||||
if (g_str_equal(arch, "ppc64") &&
|
||||
(!has_kvm || access("/sys/module/kvm_hv", F_OK))) {
|
||||
g_test_message("Skipping test: kvm_hv not available");
|
||||
return g_test_run();
|
||||
|
@ -2462,7 +2445,7 @@ int main(int argc, char **argv)
|
|||
* Similar to ppc64, s390x seems to be touchy with TCG, so disable it
|
||||
* there until the problems are resolved
|
||||
*/
|
||||
if (g_str_equal(qtest_get_arch(), "s390x") && !has_kvm) {
|
||||
if (g_str_equal(arch, "s390x") && !has_kvm) {
|
||||
g_test_message("Skipping test: s390x host with KVM is required");
|
||||
return g_test_run();
|
||||
}
|
||||
|
@ -2475,13 +2458,15 @@ int main(int argc, char **argv)
|
|||
|
||||
module_call_init(MODULE_INIT_QOM);
|
||||
|
||||
qtest_add_func("/migration/postcopy/unix", test_postcopy);
|
||||
qtest_add_func("/migration/postcopy/plain", test_postcopy);
|
||||
qtest_add_func("/migration/postcopy/recovery/plain",
|
||||
test_postcopy_recovery);
|
||||
qtest_add_func("/migration/postcopy/preempt/plain", test_postcopy_preempt);
|
||||
qtest_add_func("/migration/postcopy/preempt/recovery/plain",
|
||||
test_postcopy_preempt_recovery);
|
||||
if (has_uffd) {
|
||||
qtest_add_func("/migration/postcopy/unix", test_postcopy);
|
||||
qtest_add_func("/migration/postcopy/plain", test_postcopy);
|
||||
qtest_add_func("/migration/postcopy/recovery/plain",
|
||||
test_postcopy_recovery);
|
||||
qtest_add_func("/migration/postcopy/preempt/plain", test_postcopy_preempt);
|
||||
qtest_add_func("/migration/postcopy/preempt/recovery/plain",
|
||||
test_postcopy_preempt_recovery);
|
||||
}
|
||||
|
||||
qtest_add_func("/migration/bad_dest", test_baddest);
|
||||
qtest_add_func("/migration/precopy/unix/plain", test_precopy_unix_plain);
|
||||
|
@ -2489,18 +2474,21 @@ int main(int argc, char **argv)
|
|||
#ifdef CONFIG_GNUTLS
|
||||
qtest_add_func("/migration/precopy/unix/tls/psk",
|
||||
test_precopy_unix_tls_psk);
|
||||
/*
|
||||
* NOTE: psk test is enough for postcopy, as other types of TLS
|
||||
* channels are tested under precopy. Here what we want to test is the
|
||||
* general postcopy path that has TLS channel enabled.
|
||||
*/
|
||||
qtest_add_func("/migration/postcopy/tls/psk", test_postcopy_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/recovery/tls/psk",
|
||||
test_postcopy_recovery_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/preempt/tls/psk",
|
||||
test_postcopy_preempt_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/preempt/recovery/tls/psk",
|
||||
test_postcopy_preempt_all);
|
||||
|
||||
if (has_uffd) {
|
||||
/*
|
||||
* NOTE: psk test is enough for postcopy, as other types of TLS
|
||||
* channels are tested under precopy. Here what we want to test is the
|
||||
* general postcopy path that has TLS channel enabled.
|
||||
*/
|
||||
qtest_add_func("/migration/postcopy/tls/psk", test_postcopy_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/recovery/tls/psk",
|
||||
test_postcopy_recovery_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/preempt/tls/psk",
|
||||
test_postcopy_preempt_tls_psk);
|
||||
qtest_add_func("/migration/postcopy/preempt/recovery/tls/psk",
|
||||
test_postcopy_preempt_all);
|
||||
}
|
||||
#ifdef CONFIG_TASN1
|
||||
qtest_add_func("/migration/precopy/unix/tls/x509/default-host",
|
||||
test_precopy_unix_tls_x509_default_host);
|
||||
|
@ -2572,7 +2560,7 @@ int main(int argc, char **argv)
|
|||
#endif /* CONFIG_TASN1 */
|
||||
#endif /* CONFIG_GNUTLS */
|
||||
|
||||
if (kvm_dirty_ring_supported()) {
|
||||
if (g_str_equal(arch, "x86_64") && has_kvm && kvm_dirty_ring_supported()) {
|
||||
qtest_add_func("/migration/dirty_ring",
|
||||
test_precopy_unix_dirty_ring);
|
||||
qtest_add_func("/migration/vcpu_dirty_limit",
|
||||
|
|
|
@ -263,7 +263,7 @@ static int server_socket(void)
|
|||
sockaddr.sin_port = htons(0); /* choose random ephemeral port) */
|
||||
sockaddr.sin_addr.s_addr = 0;
|
||||
chk_error(bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)));
|
||||
chk_error(listen(fd, 0));
|
||||
chk_error(listen(fd, 1));
|
||||
return fd;
|
||||
|
||||
}
|
||||
|
|
|
@ -629,7 +629,7 @@ static void test_qga_get_time(gconstpointer fix)
|
|||
g_assert_cmpint(time, >, 0);
|
||||
}
|
||||
|
||||
static void test_qga_blacklist(gconstpointer data)
|
||||
static void test_qga_blockedrpcs(gconstpointer data)
|
||||
{
|
||||
TestFixture fix;
|
||||
QDict *ret, *error;
|
||||
|
@ -637,7 +637,7 @@ static void test_qga_blacklist(gconstpointer data)
|
|||
|
||||
fixture_setup(&fix, "-b guest-ping,guest-get-time", NULL);
|
||||
|
||||
/* check blacklist */
|
||||
/* check blocked RPCs */
|
||||
ret = qmp_fd(fix.fd, "{'execute': 'guest-ping'}");
|
||||
g_assert_nonnull(ret);
|
||||
error = qdict_get_qdict(ret, "error");
|
||||
|
@ -968,7 +968,7 @@ int main(int argc, char **argv)
|
|||
g_test_add_data_func("/qga/fsfreeze-status", &fix,
|
||||
test_qga_fsfreeze_status);
|
||||
|
||||
g_test_add_data_func("/qga/blacklist", NULL, test_qga_blacklist);
|
||||
g_test_add_data_func("/qga/blockedrpcs", NULL, test_qga_blockedrpcs);
|
||||
g_test_add_data_func("/qga/config", NULL, test_qga_config);
|
||||
g_test_add_data_func("/qga/guest-exec", &fix, test_qga_guest_exec);
|
||||
g_test_add_data_func("/qga/guest-exec-invalid", &fix,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue