* [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
@ 2022-09-27 11:05 Bin Meng
2022-09-27 11:05 ` [PATCH v4 06/54] tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp Bin Meng
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Bin Meng @ 2022-09-27 11:05 UTC (permalink / raw)
To: qemu-devel, Thomas Huth
Cc: Marc-André Lureau, Alex Bennée, Alexander Bulekov,
Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
Daniel P. Berrangé, Darren Kenny, Dr. David Alan Gilbert,
Eduardo Habkost, Fam Zheng, Gerd Hoffmann, Greg Kurz, Hanna Reitz,
Igor Mammedov, Jason Wang, Joel Stanley, John Snow, Juan Quintela,
Kevin Wolf, Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
Markus Armbruster, Michael Roth, Michael S. Tsirkin,
Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
Wainer dos Santos Moschetta, Willian Rampazzo, Yanan Wang,
qemu-arm, qemu-block
In preparation to adding virtio-9p support on Windows, this series
enables running qtest on Windows, so that we can run the virtio-9p
tests on Windows to make sure it does not break accidently.
Changes in v4:
- Do not use g_autofree and g_steal_pointer
- Update the error reporting by using the GError "error" argument
of g_dir_make_tmp()
- Remove the const from tmpfs declaration
- Replace the whole block with a g_assert_no_error()
- Replace the error reporting with g_assert_no_error()
- Update error reporting
- Move the new text section after the "QTest" section instead
- Use plural in both cases: "on POSIX hosts as well as Windows hosts"
- Use "The following list shows some best practices"
- Fix typo of delimiter
- New patch: "tests/qtest: boot-serial-test: Close the serial file before starting QEMU"
- Drop patch: "chardev/char-file: Add FILE_SHARE_WRITE when openning the file for win32"
Changes in v3:
- Remove unnecessary "error = NULL" statements
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Use g_steal_pointer() in create_test_img()
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Ensure g_autofree variable is initialized
- Split to a separate patch
- Split to a separate patch
- Add a usleep(1) in the busy wait loop
- Drop the host test
- Drop patch: "tests: Change to use g_mkdir()"
- Drop patch: "block: Unify the get_tmp_filename() implementation",
and send it as a separate patch
Changes in v2:
- new patch: "tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable"
- Use g_autofree to declare the variable
- Change to use g_mkdir()
- Change to use g_mkdir()
- Change to use g_mkdir()
- Change to skip only part of the virtio-net-test cases that require
socketpair() intead of disabling all of them
- Introduce a new variable qtests_filter and add that to the
qtests_ARCH variables
- Add a comment in the code to explain why test_qmp_oob test case
is skipped on win32
- Replace signal by the semaphore on posix too
- Use __declspec(selectany) for the common weak symbol on Windows
- Introduce qemu_send_full() and use it
- Move the enabling of building qtests on Windows to a separate
patch to keep bisectablity
- Call socket_init() unconditionally
- Add a missing CloseHandle() call
- Drop ahci-test.c changes that are no longer needed
- Change the place that sets IO redirection in the command line
- Change to a busy wait after migration is canceled
- new patch: "io/channel-watch: Drop the unnecessary cast"
- Change the timeout limit to 90 minutes
- new patch: Display meson test logs in the Windows CI
- new patch: "tests/qtest: Enable qtest build on Windows"
- Minor wording changes
- Drop patches that were already applied in the mainline
- Drop patch: "qga/commands-posix-ssh: Use g_mkdir_with_parents()"
- Drop patch: "tests: Skip iotests and qtest when '--without-default-devices'"
- Drop patch: "tests/qtest: Fix ERROR_SHARING_VIOLATION for win32"
Bin Meng (48):
tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable
semihosting/arm-compat-semi: Avoid using hardcoded /tmp
tcg: Avoid using hardcoded /tmp
util/qemu-sockets: Use g_get_tmp_dir() to get the directory for
temporary files
tests/qtest: ahci-test: Avoid using hardcoded /tmp
tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp
tests/qtest: boot-serial-test: Avoid using hardcoded /tmp
tests/qtest: cxl-test: Avoid using hardcoded /tmp
tests/qtest: fdc-test: Avoid using hardcoded /tmp
tests/qtest: generic_fuzz: Avoid using hardcoded /tmp
tests/qtest: virtio_blk_fuzz: Avoid using hardcoded /tmp
tests/qtest: hd-geo-test: Avoid using hardcoded /tmp
tests/qtest: ide-test: Avoid using hardcoded /tmp
tests/qtest: migration-test: Avoid using hardcoded /tmp
tests/qtest: pflash-cfi02-test: Avoid using hardcoded /tmp
tests/qtest: qmp-test: Avoid using hardcoded /tmp
tests/qtest: vhost-user-blk-test: Avoid using hardcoded /tmp
tests/qtest: vhost-user-test: Avoid using hardcoded /tmp
tests/qtest: virtio-blk-test: Avoid using hardcoded /tmp
tests/qtest: virtio-scsi-test: Avoid using hardcoded /tmp
tests/qtest: libqtest: Avoid using hardcoded /tmp
tests/unit: test-image-locking: Avoid using hardcoded /tmp
tests/unit: test-qga: Avoid using hardcoded /tmp
tests: vhost-user-bridge: Avoid using hardcoded /tmp
block/vvfat: Unify the mkdir() call
fsdev/virtfs-proxy-helper: Use g_mkdir()
hw/usb: dev-mtp: Use g_mkdir()
tests/qtest: Skip running virtio-net-test cases that require
socketpair() for win32
tests/qtest: Build test-filter-{mirror,redirector} cases for posix
only
tests/qtest: qmp-test: Skip running test_qmp_oob for win32
tests/qtest: libqtest: Exclude the *_fds APIs for win32
tests/qtest: libqtest: Install signal handler via signal()
tests/qtest: Support libqtest to build and run on Windows
tests/qtest: {ahci,ide}-test: Use relative path for temporary files
for win32
tests/qtest: bios-tables-test: Adapt the case for win32
tests/qtest: boot-serial-test: Close the serial file before starting
QEMU
tests/qtest: microbit-test: Fix socket access for win32
tests/qtest: migration-test: Disable IO redirection for win32
tests/qtest: libqtest: Replace the call to close a socket with
closesocket()
tests/qtest: libqtest: Correct the timeout unit of blocking receive
calls for win32
io/channel-watch: Drop a superfluous '#ifdef WIN32'
io/channel-watch: Drop the unnecessary cast
io/channel-watch: Fix socket watch on Windows
tests/qtest: migration-test: Skip running some TLS cases for win32
.gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes
.gitlab-ci.d/windows.yml: Display meson test logs
tests/qtest: Enable qtest build on Windows
docs/devel: testing: Document writing portable test cases
Xuzhou Cheng (6):
accel/qtest: Implement a portable qtest accelerator
tests/qtest: libqtest: Adapt global_qtest declaration for win32
tests/qtest: Use send/recv for socket communication
tests/qtest: ide-test: Open file in binary mode
tests/qtest: migration-test: Make sure QEMU process "to" exited after
migration is canceled
tests/qtest: virtio-net-failover: Disable migration tests for win32
docs/devel/testing.rst | 30 +++++
include/hw/core/cpu.h | 1 +
include/qemu/sockets.h | 2 +
tests/qtest/fuzz/generic_fuzz_configs.h | 4 +-
tests/qtest/libqtest-single.h | 4 +
tests/qtest/libqtest.h | 8 ++
accel/dummy-cpus.c | 15 +--
block/vvfat.c | 9 +-
fsdev/virtfs-proxy-helper.c | 3 +-
hw/usb/dev-mtp.c | 4 +-
io/channel-watch.c | 12 +-
semihosting/arm-compat-semi.c | 3 +-
softmmu/cpus.c | 10 +-
tcg/tcg.c | 3 +-
tests/qtest/ahci-test.c | 36 ++++--
tests/qtest/aspeed_smc-test.c | 5 +-
tests/qtest/bios-tables-test.c | 12 +-
tests/qtest/boot-serial-test.c | 11 +-
tests/qtest/cxl-test.c | 15 +--
tests/qtest/fdc-test.c | 5 +-
tests/qtest/fuzz/virtio_blk_fuzz.c | 4 +-
tests/qtest/hd-geo-test.c | 24 ++--
tests/qtest/i440fx-test.c | 54 +++-----
tests/qtest/ide-test.c | 30 ++++-
tests/qtest/libqmp.c | 5 +-
tests/qtest/libqtest.c | 157 ++++++++++++++++++++----
tests/qtest/microbit-test.c | 10 +-
tests/qtest/migration-test.c | 38 +++++-
tests/qtest/pflash-cfi02-test.c | 15 ++-
tests/qtest/qmp-test.c | 17 ++-
tests/qtest/vhost-user-blk-test.c | 3 +-
tests/qtest/vhost-user-test.c | 10 +-
tests/qtest/virtio-blk-test.c | 4 +-
tests/qtest/virtio-net-failover.c | 9 +-
tests/qtest/virtio-net-test.c | 13 +-
tests/qtest/virtio-scsi-test.c | 4 +-
tests/unit/test-image-locking.c | 8 +-
tests/unit/test-qga.c | 2 +-
tests/vhost-user-bridge.c | 3 +-
util/osdep.c | 33 +++++
util/qemu-sockets.c | 5 +-
.gitlab-ci.d/windows.yml | 8 +-
accel/meson.build | 1 +
accel/qtest/meson.build | 1 +
tests/qtest/meson.build | 42 +++----
45 files changed, 452 insertions(+), 240 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4 06/54] tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
@ 2022-09-27 11:05 ` Bin Meng
2022-09-27 11:06 ` [PATCH v4 41/54] tests/qtest: microbit-test: Fix socket access for win32 Bin Meng
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Bin Meng @ 2022-09-27 11:05 UTC (permalink / raw)
To: qemu-devel, Thomas Huth
Cc: Marc-André Lureau, Bin Meng, Cédric Le Goater,
Andrew Jeffery, Joel Stanley, Laurent Vivier, Paolo Bonzini,
Peter Maydell, qemu-arm
From: Bin Meng <bin.meng@windriver.com>
This case was written to use hardcoded /tmp directory for temporary
files. Update to use g_file_open_tmp() for a portable implementation.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
(no changes since v3)
Changes in v3:
- Split to a separate patch
- Ensure g_autofree variable is initialized
tests/qtest/aspeed_smc-test.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tests/qtest/aspeed_smc-test.c b/tests/qtest/aspeed_smc-test.c
index 05ce941566..c713a3700b 100644
--- a/tests/qtest/aspeed_smc-test.c
+++ b/tests/qtest/aspeed_smc-test.c
@@ -608,16 +608,15 @@ static void test_write_block_protect_bottom_bit(void)
flash_reset();
}
-static char tmp_path[] = "/tmp/qtest.m25p80.XXXXXX";
-
int main(int argc, char **argv)
{
+ g_autofree char *tmp_path = NULL;
int ret;
int fd;
g_test_init(&argc, &argv, NULL);
- fd = mkstemp(tmp_path);
+ fd = g_file_open_tmp("qtest.m25p80.XXXXXX", &tmp_path, NULL);
g_assert(fd >= 0);
ret = ftruncate(fd, FLASH_SIZE);
g_assert(ret == 0);
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v4 41/54] tests/qtest: microbit-test: Fix socket access for win32
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
2022-09-27 11:05 ` [PATCH v4 06/54] tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp Bin Meng
@ 2022-09-27 11:06 ` Bin Meng
2022-09-28 10:31 ` [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Thomas Huth
2022-10-03 9:25 ` Marc-André Lureau
3 siblings, 0 replies; 8+ messages in thread
From: Bin Meng @ 2022-09-27 11:06 UTC (permalink / raw)
To: qemu-devel, Thomas Huth
Cc: Marc-André Lureau, Bin Meng, Joel Stanley, Laurent Vivier,
Paolo Bonzini, Peter Maydell, qemu-arm
From: Bin Meng <bin.meng@windriver.com>
Sockets on Windows do not use *nix-style file descriptors, so
write()/read()/close() do not work on Windows.
Switch over to use send()/recv()/closesocket() which work with
sockets on all platforms.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
(no changes since v1)
tests/qtest/microbit-test.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/qtest/microbit-test.c b/tests/qtest/microbit-test.c
index b71daae9a9..4bc267020b 100644
--- a/tests/qtest/microbit-test.c
+++ b/tests/qtest/microbit-test.c
@@ -51,7 +51,7 @@ static void uart_rw_to_rxd(QTestState *qts, int sock_fd, const char *in,
{
int i, in_len = strlen(in);
- g_assert_true(write(sock_fd, in, in_len) == in_len);
+ g_assert_true(send(sock_fd, in, in_len, 0) == in_len);
for (i = 0; i < in_len; i++) {
g_assert_true(uart_wait_for_event(qts, NRF51_UART_BASE +
A_UART_RXDRDY));
@@ -77,7 +77,7 @@ static void test_nrf51_uart(void)
char s[10];
QTestState *qts = qtest_init_with_serial("-M microbit", &sock_fd);
- g_assert_true(write(sock_fd, "c", 1) == 1);
+ g_assert_true(send(sock_fd, "c", 1, 0) == 1);
g_assert_cmphex(qtest_readl(qts, NRF51_UART_BASE + A_UART_RXD), ==, 0x00);
qtest_writel(qts, NRF51_UART_BASE + A_UART_ENABLE, 0x04);
@@ -97,17 +97,17 @@ static void test_nrf51_uart(void)
qtest_writel(qts, NRF51_UART_BASE + A_UART_STARTTX, 0x01);
uart_w_to_txd(qts, "d");
- g_assert_true(read(sock_fd, s, 10) == 1);
+ g_assert_true(recv(sock_fd, s, 10, 0) == 1);
g_assert_cmphex(s[0], ==, 'd');
qtest_writel(qts, NRF51_UART_BASE + A_UART_SUSPEND, 0x01);
qtest_writel(qts, NRF51_UART_BASE + A_UART_TXD, 'h');
qtest_writel(qts, NRF51_UART_BASE + A_UART_STARTTX, 0x01);
uart_w_to_txd(qts, "world");
- g_assert_true(read(sock_fd, s, 10) == 5);
+ g_assert_true(recv(sock_fd, s, 10, 0) == 5);
g_assert_true(memcmp(s, "world", 5) == 0);
- close(sock_fd);
+ closesocket(sock_fd);
qtest_quit(qts);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
2022-09-27 11:05 ` [PATCH v4 06/54] tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp Bin Meng
2022-09-27 11:06 ` [PATCH v4 41/54] tests/qtest: microbit-test: Fix socket access for win32 Bin Meng
@ 2022-09-28 10:31 ` Thomas Huth
2022-09-28 15:24 ` Thomas Huth
2022-10-03 9:25 ` Marc-André Lureau
3 siblings, 1 reply; 8+ messages in thread
From: Thomas Huth @ 2022-09-28 10:31 UTC (permalink / raw)
To: Bin Meng, qemu-devel
Cc: Marc-André Lureau, Alex Bennée, Alexander Bulekov,
Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
Daniel P. Berrangé, Darren Kenny, Dr. David Alan Gilbert,
Eduardo Habkost, Fam Zheng, Gerd Hoffmann, Greg Kurz, Hanna Reitz,
Igor Mammedov, Jason Wang, Joel Stanley, John Snow, Juan Quintela,
Kevin Wolf, Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
Markus Armbruster, Michael Roth, Michael S. Tsirkin,
Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
Wainer dos Santos Moschetta, Willian Rampazzo, Yanan Wang,
qemu-arm, qemu-block
On 27/09/2022 13.05, Bin Meng wrote:
> In preparation to adding virtio-9p support on Windows, this series
> enables running qtest on Windows, so that we can run the virtio-9p
> tests on Windows to make sure it does not break accidently.
Thanks for your patches - I've picked many of them for my pull request that
I sent out earlier today, so you don't have to carry them along anymore once
the PR got merged.
For the patches that are not directly related to tests/ ... could you maybe
ask the corresponding maintainers to pick those up? I'm not sure whether
they should go through my testing branch, too...
Anyway, there seems to be one more issue: The migration test sometimes seems
to be failing on aarch64 with all your patches applied:
87/470 qemu:qtest+qtest-aarch64 / qtest-aarch64/migration-test
ERROR 261.71s killed by signal 6 SIGABRT
>>> MALLOC_PERTURB_=171 QTEST_QEMU_BINARY=./qemu-system-aarch64
QTEST_QEMU_IMG=./qemu-img
G_TEST_DBUS_DAEMON=/home/thuth/devel/qemu/tests/dbus-vmstate-daemon.sh
QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon
/home/thuth/tmp/qemu-build/tests/qtest/migration-test --tap -k
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
stderr:
**
ERROR:../../devel/qemu/tests/qtest/migration-helpers.c:205:wait_for_migration_status:
assertion failed: (g_test_timer_elapsed() < MIGRATION_STATUS_WAIT_TIMEOUT)
../../devel/qemu/tests/qtest/libqtest.c:201: kill_qemu() tried to terminate
QEMU process but encountered exit status 1 (expected 0)
(test program exited with status code -6)
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Not sure whether it's really related to your patches or whether it's
something else that has been merged recently, I'm having problems to
reproduce it reliably, but it's definitely something we should keep an eye on...
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
2022-09-28 10:31 ` [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Thomas Huth
@ 2022-09-28 15:24 ` Thomas Huth
2022-09-28 15:30 ` Daniel P. Berrangé
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Huth @ 2022-09-28 15:24 UTC (permalink / raw)
To: Bin Meng, qemu-devel, qemu-arm
Cc: Marc-André Lureau, Alex Bennée, Alexander Bulekov,
Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
Daniel P. Berrangé, Darren Kenny, Dr. David Alan Gilbert,
Eduardo Habkost, Fam Zheng, Gerd Hoffmann, Greg Kurz, Hanna Reitz,
Igor Mammedov, Jason Wang, Joel Stanley, John Snow, Juan Quintela,
Kevin Wolf, Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
Markus Armbruster, Michael Roth, Michael S. Tsirkin,
Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
Wainer dos Santos Moschetta, Yanan Wang
On 28/09/2022 12.31, Thomas Huth wrote:
> On 27/09/2022 13.05, Bin Meng wrote:
>> In preparation to adding virtio-9p support on Windows, this series
>> enables running qtest on Windows, so that we can run the virtio-9p
>> tests on Windows to make sure it does not break accidently.
>
> Thanks for your patches - I've picked many of them for my pull request that
> I sent out earlier today, so you don't have to carry them along anymore once
> the PR got merged.
>
> For the patches that are not directly related to tests/ ... could you maybe
> ask the corresponding maintainers to pick those up? I'm not sure whether
> they should go through my testing branch, too...
>
> Anyway, there seems to be one more issue: The migration test sometimes seems
> to be failing on aarch64 with all your patches applied:
>
> 87/470 qemu:qtest+qtest-aarch64 / qtest-aarch64/migration-test
> ERROR 261.71s killed by signal 6 SIGABRT
> >>> MALLOC_PERTURB_=171 QTEST_QEMU_BINARY=./qemu-system-aarch64
> QTEST_QEMU_IMG=./qemu-img
> G_TEST_DBUS_DAEMON=/home/thuth/devel/qemu/tests/dbus-vmstate-daemon.sh
> QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon
> /home/thuth/tmp/qemu-build/tests/qtest/migration-test --tap -k
> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
> stderr:
> **
> ERROR:../../devel/qemu/tests/qtest/migration-helpers.c:205:wait_for_migration_status:
> assertion failed: (g_test_timer_elapsed() < MIGRATION_STATUS_WAIT_TIMEOUT)
> ../../devel/qemu/tests/qtest/libqtest.c:201: kill_qemu() tried to terminate
> QEMU process but encountered exit status 1 (expected 0)
>
> (test program exited with status code -6)
> ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
>
> Not sure whether it's really related to your patches or whether it's
> something else that has been merged recently, I'm having problems to
> reproduce it reliably, but it's definitely something we should keep an eye
> on...
Seems like somebody also ran into this issue with a vanilla QEMU:
https://gitlab.com/qemu-project/qemu/-/issues/1230
So it's not related to your patch series.
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
2022-09-28 15:24 ` Thomas Huth
@ 2022-09-28 15:30 ` Daniel P. Berrangé
0 siblings, 0 replies; 8+ messages in thread
From: Daniel P. Berrangé @ 2022-09-28 15:30 UTC (permalink / raw)
To: Thomas Huth
Cc: Bin Meng, qemu-devel, qemu-arm, Marc-André Lureau,
Alex Bennée, Alexander Bulekov, Andrew Jeffery, Ani Sinha,
Bandan Das, Beraldo Leal, Bin Meng, Christian Schoenebeck,
Coiby Xu, Cédric Le Goater, Darren Kenny,
Dr. David Alan Gilbert, Eduardo Habkost, Fam Zheng, Gerd Hoffmann,
Greg Kurz, Hanna Reitz, Igor Mammedov, Jason Wang, Joel Stanley,
John Snow, Juan Quintela, Kevin Wolf, Konstantin Kostiuk,
Laurent Vivier, Marcel Apfelbaum, Markus Armbruster, Michael Roth,
Michael S. Tsirkin, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Qiuhao Li, Richard Henderson,
Stefan Hajnoczi, Wainer dos Santos Moschetta, Yanan Wang
On Wed, Sep 28, 2022 at 05:24:56PM +0200, Thomas Huth wrote:
> On 28/09/2022 12.31, Thomas Huth wrote:
> > On 27/09/2022 13.05, Bin Meng wrote:
> > > In preparation to adding virtio-9p support on Windows, this series
> > > enables running qtest on Windows, so that we can run the virtio-9p
> > > tests on Windows to make sure it does not break accidently.
> >
> > Thanks for your patches - I've picked many of them for my pull request
> > that I sent out earlier today, so you don't have to carry them along
> > anymore once the PR got merged.
> >
> > For the patches that are not directly related to tests/ ... could you
> > maybe ask the corresponding maintainers to pick those up? I'm not sure
> > whether they should go through my testing branch, too...
> >
> > Anyway, there seems to be one more issue: The migration test sometimes
> > seems to be failing on aarch64 with all your patches applied:
> >
> > 87/470 qemu:qtest+qtest-aarch64 / qtest-aarch64/migration-test
> > ERROR 261.71s killed by signal 6 SIGABRT
> > >>> MALLOC_PERTURB_=171 QTEST_QEMU_BINARY=./qemu-system-aarch64
> > QTEST_QEMU_IMG=./qemu-img
> > G_TEST_DBUS_DAEMON=/home/thuth/devel/qemu/tests/dbus-vmstate-daemon.sh
> > QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon
> > /home/thuth/tmp/qemu-build/tests/qtest/migration-test --tap -k
> > ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
> > stderr:
> > **
> > ERROR:../../devel/qemu/tests/qtest/migration-helpers.c:205:wait_for_migration_status:
> > assertion failed: (g_test_timer_elapsed() <
> > MIGRATION_STATUS_WAIT_TIMEOUT)
> > ../../devel/qemu/tests/qtest/libqtest.c:201: kill_qemu() tried to
> > terminate QEMU process but encountered exit status 1 (expected 0)
> >
> > (test program exited with status code -6)
> > ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
> >
> > Not sure whether it's really related to your patches or whether it's
> > something else that has been merged recently, I'm having problems to
> > reproduce it reliably, but it's definitely something we should keep an
> > eye on...
>
> Seems like somebody also ran into this issue with a vanilla QEMU:
>
> https://gitlab.com/qemu-project/qemu/-/issues/1230
>
> So it's not related to your patch series.
This status timeout was something we merged in last cycle. We've
long had wierd hangs in the migration tests and this timeout change
was an attempt to turn the test suite hangs into explicit failures
for greater visibility. I guess this is working as intended, but
we're not really closer to understanding what the root problem is
we're hitting.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
` (2 preceding siblings ...)
2022-09-28 10:31 ` [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Thomas Huth
@ 2022-10-03 9:25 ` Marc-André Lureau
2022-10-03 10:08 ` Bin Meng
3 siblings, 1 reply; 8+ messages in thread
From: Marc-André Lureau @ 2022-10-03 9:25 UTC (permalink / raw)
To: Bin Meng
Cc: qemu-devel, Thomas Huth, Alex Bennée, Alexander Bulekov,
Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
Daniel P. Berrangé, Darren Kenny, Dr. David Alan Gilbert,
Eduardo Habkost, Fam Zheng, Gerd Hoffmann, Greg Kurz, Hanna Reitz,
Igor Mammedov, Jason Wang, Joel Stanley, John Snow, Juan Quintela,
Kevin Wolf, Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
Markus Armbruster, Michael Roth, Michael S. Tsirkin,
Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
Wainer dos Santos Moschetta, Willian Rampazzo, Yanan Wang,
qemu-arm, qemu-block
[-- Attachment #1: Type: text/plain, Size: 10270 bytes --]
Hi Bin
On Tue, Sep 27, 2022 at 3:18 PM Bin Meng <bmeng.cn@gmail.com> wrote:
> In preparation to adding virtio-9p support on Windows, this series
> enables running qtest on Windows, so that we can run the virtio-9p
> tests on Windows to make sure it does not break accidently.
>
> Changes in v4:
> - Do not use g_autofree and g_steal_pointer
> - Update the error reporting by using the GError "error" argument
> of g_dir_make_tmp()
> - Remove the const from tmpfs declaration
> - Replace the whole block with a g_assert_no_error()
> - Replace the error reporting with g_assert_no_error()
> - Update error reporting
> - Move the new text section after the "QTest" section instead
> - Use plural in both cases: "on POSIX hosts as well as Windows hosts"
> - Use "The following list shows some best practices"
> - Fix typo of delimiter
> - New patch: "tests/qtest: boot-serial-test: Close the serial file before
> starting QEMU"
> - Drop patch: "chardev/char-file: Add FILE_SHARE_WRITE when openning the
> file for win32"
>
>
Could you post a v5 rebased on the current master? thanks
(I think most of the remaining patches are simple enough that I could take
them in a misc PR if they are not picked by subsystem maintainers)
Changes in v3:
> - Remove unnecessary "error = NULL" statements
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Use g_steal_pointer() in create_test_img()
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Ensure g_autofree variable is initialized
> - Split to a separate patch
> - Split to a separate patch
> - Add a usleep(1) in the busy wait loop
> - Drop the host test
> - Drop patch: "tests: Change to use g_mkdir()"
> - Drop patch: "block: Unify the get_tmp_filename() implementation",
> and send it as a separate patch
>
> Changes in v2:
> - new patch: "tests/qtest: i440fx-test: Rewrite create_blob_file() to be
> portable"
> - Use g_autofree to declare the variable
> - Change to use g_mkdir()
> - Change to use g_mkdir()
> - Change to use g_mkdir()
> - Change to skip only part of the virtio-net-test cases that require
> socketpair() intead of disabling all of them
> - Introduce a new variable qtests_filter and add that to the
> qtests_ARCH variables
> - Add a comment in the code to explain why test_qmp_oob test case
> is skipped on win32
> - Replace signal by the semaphore on posix too
> - Use __declspec(selectany) for the common weak symbol on Windows
> - Introduce qemu_send_full() and use it
> - Move the enabling of building qtests on Windows to a separate
> patch to keep bisectablity
> - Call socket_init() unconditionally
> - Add a missing CloseHandle() call
> - Drop ahci-test.c changes that are no longer needed
> - Change the place that sets IO redirection in the command line
> - Change to a busy wait after migration is canceled
> - new patch: "io/channel-watch: Drop the unnecessary cast"
> - Change the timeout limit to 90 minutes
> - new patch: Display meson test logs in the Windows CI
> - new patch: "tests/qtest: Enable qtest build on Windows"
> - Minor wording changes
> - Drop patches that were already applied in the mainline
> - Drop patch: "qga/commands-posix-ssh: Use g_mkdir_with_parents()"
> - Drop patch: "tests: Skip iotests and qtest when
> '--without-default-devices'"
> - Drop patch: "tests/qtest: Fix ERROR_SHARING_VIOLATION for win32"
>
> Bin Meng (48):
> tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable
> semihosting/arm-compat-semi: Avoid using hardcoded /tmp
> tcg: Avoid using hardcoded /tmp
> util/qemu-sockets: Use g_get_tmp_dir() to get the directory for
> temporary files
> tests/qtest: ahci-test: Avoid using hardcoded /tmp
> tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp
> tests/qtest: boot-serial-test: Avoid using hardcoded /tmp
> tests/qtest: cxl-test: Avoid using hardcoded /tmp
> tests/qtest: fdc-test: Avoid using hardcoded /tmp
> tests/qtest: generic_fuzz: Avoid using hardcoded /tmp
> tests/qtest: virtio_blk_fuzz: Avoid using hardcoded /tmp
> tests/qtest: hd-geo-test: Avoid using hardcoded /tmp
> tests/qtest: ide-test: Avoid using hardcoded /tmp
> tests/qtest: migration-test: Avoid using hardcoded /tmp
> tests/qtest: pflash-cfi02-test: Avoid using hardcoded /tmp
> tests/qtest: qmp-test: Avoid using hardcoded /tmp
> tests/qtest: vhost-user-blk-test: Avoid using hardcoded /tmp
> tests/qtest: vhost-user-test: Avoid using hardcoded /tmp
> tests/qtest: virtio-blk-test: Avoid using hardcoded /tmp
> tests/qtest: virtio-scsi-test: Avoid using hardcoded /tmp
> tests/qtest: libqtest: Avoid using hardcoded /tmp
> tests/unit: test-image-locking: Avoid using hardcoded /tmp
> tests/unit: test-qga: Avoid using hardcoded /tmp
> tests: vhost-user-bridge: Avoid using hardcoded /tmp
> block/vvfat: Unify the mkdir() call
> fsdev/virtfs-proxy-helper: Use g_mkdir()
> hw/usb: dev-mtp: Use g_mkdir()
> tests/qtest: Skip running virtio-net-test cases that require
> socketpair() for win32
> tests/qtest: Build test-filter-{mirror,redirector} cases for posix
> only
> tests/qtest: qmp-test: Skip running test_qmp_oob for win32
> tests/qtest: libqtest: Exclude the *_fds APIs for win32
> tests/qtest: libqtest: Install signal handler via signal()
> tests/qtest: Support libqtest to build and run on Windows
> tests/qtest: {ahci,ide}-test: Use relative path for temporary files
> for win32
> tests/qtest: bios-tables-test: Adapt the case for win32
> tests/qtest: boot-serial-test: Close the serial file before starting
> QEMU
> tests/qtest: microbit-test: Fix socket access for win32
> tests/qtest: migration-test: Disable IO redirection for win32
> tests/qtest: libqtest: Replace the call to close a socket with
> closesocket()
> tests/qtest: libqtest: Correct the timeout unit of blocking receive
> calls for win32
> io/channel-watch: Drop a superfluous '#ifdef WIN32'
> io/channel-watch: Drop the unnecessary cast
> io/channel-watch: Fix socket watch on Windows
> tests/qtest: migration-test: Skip running some TLS cases for win32
> .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes
> .gitlab-ci.d/windows.yml: Display meson test logs
> tests/qtest: Enable qtest build on Windows
> docs/devel: testing: Document writing portable test cases
>
> Xuzhou Cheng (6):
> accel/qtest: Implement a portable qtest accelerator
> tests/qtest: libqtest: Adapt global_qtest declaration for win32
> tests/qtest: Use send/recv for socket communication
> tests/qtest: ide-test: Open file in binary mode
> tests/qtest: migration-test: Make sure QEMU process "to" exited after
> migration is canceled
> tests/qtest: virtio-net-failover: Disable migration tests for win32
>
> docs/devel/testing.rst | 30 +++++
> include/hw/core/cpu.h | 1 +
> include/qemu/sockets.h | 2 +
> tests/qtest/fuzz/generic_fuzz_configs.h | 4 +-
> tests/qtest/libqtest-single.h | 4 +
> tests/qtest/libqtest.h | 8 ++
> accel/dummy-cpus.c | 15 +--
> block/vvfat.c | 9 +-
> fsdev/virtfs-proxy-helper.c | 3 +-
> hw/usb/dev-mtp.c | 4 +-
> io/channel-watch.c | 12 +-
> semihosting/arm-compat-semi.c | 3 +-
> softmmu/cpus.c | 10 +-
> tcg/tcg.c | 3 +-
> tests/qtest/ahci-test.c | 36 ++++--
> tests/qtest/aspeed_smc-test.c | 5 +-
> tests/qtest/bios-tables-test.c | 12 +-
> tests/qtest/boot-serial-test.c | 11 +-
> tests/qtest/cxl-test.c | 15 +--
> tests/qtest/fdc-test.c | 5 +-
> tests/qtest/fuzz/virtio_blk_fuzz.c | 4 +-
> tests/qtest/hd-geo-test.c | 24 ++--
> tests/qtest/i440fx-test.c | 54 +++-----
> tests/qtest/ide-test.c | 30 ++++-
> tests/qtest/libqmp.c | 5 +-
> tests/qtest/libqtest.c | 157 ++++++++++++++++++++----
> tests/qtest/microbit-test.c | 10 +-
> tests/qtest/migration-test.c | 38 +++++-
> tests/qtest/pflash-cfi02-test.c | 15 ++-
> tests/qtest/qmp-test.c | 17 ++-
> tests/qtest/vhost-user-blk-test.c | 3 +-
> tests/qtest/vhost-user-test.c | 10 +-
> tests/qtest/virtio-blk-test.c | 4 +-
> tests/qtest/virtio-net-failover.c | 9 +-
> tests/qtest/virtio-net-test.c | 13 +-
> tests/qtest/virtio-scsi-test.c | 4 +-
> tests/unit/test-image-locking.c | 8 +-
> tests/unit/test-qga.c | 2 +-
> tests/vhost-user-bridge.c | 3 +-
> util/osdep.c | 33 +++++
> util/qemu-sockets.c | 5 +-
> .gitlab-ci.d/windows.yml | 8 +-
> accel/meson.build | 1 +
> accel/qtest/meson.build | 1 +
> tests/qtest/meson.build | 42 +++----
> 45 files changed, 452 insertions(+), 240 deletions(-)
>
> --
> 2.34.1
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 11972 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows
2022-10-03 9:25 ` Marc-André Lureau
@ 2022-10-03 10:08 ` Bin Meng
0 siblings, 0 replies; 8+ messages in thread
From: Bin Meng @ 2022-10-03 10:08 UTC (permalink / raw)
To: Marc-André Lureau
Cc: qemu-devel, Thomas Huth, Alex Bennée, Alexander Bulekov,
Andrew Jeffery, Ani Sinha, Bandan Das, Beraldo Leal, Bin Meng,
Christian Schoenebeck, Coiby Xu, Cédric Le Goater,
Daniel P. Berrangé, Darren Kenny, Dr. David Alan Gilbert,
Eduardo Habkost, Fam Zheng, Gerd Hoffmann, Greg Kurz, Hanna Reitz,
Igor Mammedov, Jason Wang, Joel Stanley, John Snow, Juan Quintela,
Kevin Wolf, Konstantin Kostiuk, Laurent Vivier, Marcel Apfelbaum,
Markus Armbruster, Michael Roth, Michael S. Tsirkin,
Paolo Bonzini, Peter Maydell, Philippe Mathieu-Daudé,
Qiuhao Li, Richard Henderson, Stefan Hajnoczi,
Wainer dos Santos Moschetta, Willian Rampazzo, Yanan Wang,
qemu-arm, qemu-block
Hi Marc-André,
On Mon, Oct 3, 2022 at 5:26 PM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi Bin
>
> On Tue, Sep 27, 2022 at 3:18 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>>
>> In preparation to adding virtio-9p support on Windows, this series
>> enables running qtest on Windows, so that we can run the virtio-9p
>> tests on Windows to make sure it does not break accidently.
>>
>> Changes in v4:
>> - Do not use g_autofree and g_steal_pointer
>> - Update the error reporting by using the GError "error" argument
>> of g_dir_make_tmp()
>> - Remove the const from tmpfs declaration
>> - Replace the whole block with a g_assert_no_error()
>> - Replace the error reporting with g_assert_no_error()
>> - Update error reporting
>> - Move the new text section after the "QTest" section instead
>> - Use plural in both cases: "on POSIX hosts as well as Windows hosts"
>> - Use "The following list shows some best practices"
>> - Fix typo of delimiter
>> - New patch: "tests/qtest: boot-serial-test: Close the serial file before starting QEMU"
>> - Drop patch: "chardev/char-file: Add FILE_SHARE_WRITE when openning the file for win32"
>>
>
> Could you post a v5 rebased on the current master? thanks
>
Sure, will do.
> (I think most of the remaining patches are simple enough that I could take them in a misc PR if they are not picked by subsystem maintainers)
Thank you.
Regards,
Bin
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-10-03 10:08 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-27 11:05 [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
2022-09-27 11:05 ` [PATCH v4 06/54] tests/qtest: aspeed_smc-test: Avoid using hardcoded /tmp Bin Meng
2022-09-27 11:06 ` [PATCH v4 41/54] tests/qtest: microbit-test: Fix socket access for win32 Bin Meng
2022-09-28 10:31 ` [PATCH v4 00/54] tests/qtest: Enable running qtest on Windows Thomas Huth
2022-09-28 15:24 ` Thomas Huth
2022-09-28 15:30 ` Daniel P. Berrangé
2022-10-03 9:25 ` Marc-André Lureau
2022-10-03 10:08 ` Bin Meng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).