qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Bin Meng" <bin.meng@windriver.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>
Subject: [PATCH v3 46/54] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32
Date: Sun, 25 Sep 2022 19:30:24 +0800	[thread overview]
Message-ID: <20220925113032.1949844-47-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20220925113032.1949844-1-bmeng.cn@gmail.com>

From: Bin Meng <bin.meng@windriver.com>

Some qtest cases don't get response from the QEMU executable under
test in time on Windows. It turns out that the socket receive call
got timeout before it receive the complete response.

The timeout value is supposed to be set to 50 seconds via the
setsockopt() call, but there is a difference among platforms.
The timeout unit of blocking receive calls is measured in
seconds on non-Windows platforms but milliseconds on Windows.

Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---

(no changes since v1)

 tests/qtest/libqtest.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 1ae58624d9..e3360338de 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -36,13 +36,14 @@
 #include "qapi/qmp/qstring.h"
 
 #define MAX_IRQ 256
-#define SOCKET_TIMEOUT 50
 
 #ifndef _WIN32
+# define SOCKET_TIMEOUT 50
 # define CMD_EXEC   "exec "
 # define DEV_STDERR "/dev/fd/2"
 # define DEV_NULL   "/dev/null"
 #else
+# define SOCKET_TIMEOUT 50000
 # define CMD_EXEC   ""
 # define DEV_STDERR "2"
 # define DEV_NULL   "nul"
@@ -106,8 +107,16 @@ static int socket_accept(int sock)
     struct sockaddr_un addr;
     socklen_t addrlen;
     int ret;
+    /*
+     * timeout unit of blocking receive calls is different among platfoms.
+     * It's in seconds on non-Windows platforms but milliseconds on Windows.
+     */
+#ifndef _WIN32
     struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT,
                                .tv_usec = 0 };
+#else
+    DWORD timeout = SOCKET_TIMEOUT;
+#endif
 
     if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
                    (void *)&timeout, sizeof(timeout))) {
-- 
2.34.1



  parent reply	other threads:[~2022-09-25 12:19 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-25 11:29 [PATCH v3 00/54] tests/qtest: Enable running qtest on Windows Bin Meng
2022-09-25 11:29 ` [PATCH v3 01/54] tests/qtest: i440fx-test: Rewrite create_blob_file() to be portable Bin Meng
2022-09-26 12:10   ` Thomas Huth
2022-09-25 11:29 ` [PATCH v3 02/54] semihosting/arm-compat-semi: Avoid using hardcoded /tmp Bin Meng
2022-09-25 11:29 ` [PATCH v3 03/54] tcg: " Bin Meng
2022-09-25 11:29 ` [PATCH v3 04/54] util/qemu-sockets: Use g_get_tmp_dir() to get the directory for temporary files Bin Meng
2022-09-25 11:29 ` [PATCH v3 05/54] tests/qtest: ahci-test: Avoid using hardcoded /tmp Bin Meng
2022-09-26 12:17   ` Thomas Huth
2022-09-25 11:29 ` [PATCH v3 06/54] tests/qtest: aspeed_smc-test: " Bin Meng
2022-09-25 16:20   ` Cédric Le Goater
2022-09-26 12:18   ` Thomas Huth
2022-09-25 11:29 ` [PATCH v3 07/54] tests/qtest: boot-serial-test: " Bin Meng
2022-09-26 12:22   ` Thomas Huth
2022-09-25 11:29 ` [PATCH v3 08/54] tests/qtest: cxl-test: " Bin Meng
2022-09-26 13:07   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 09/54] tests/qtest: fdc-test: " Bin Meng
2022-09-26 13:08   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 10/54] tests/qtest: generic_fuzz: " Bin Meng
2022-09-26 13:09   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 11/54] tests/qtest: virtio_blk_fuzz: " Bin Meng
2022-09-26 13:11   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 12/54] tests/qtest: hd-geo-test: " Bin Meng
2022-09-26 13:11   ` Marc-André Lureau
2022-09-26 15:38   ` Thomas Huth
2022-09-25 11:29 ` [PATCH v3 13/54] tests/qtest: ide-test: " Bin Meng
2022-09-26 13:12   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 14/54] tests/qtest: migration-test: " Bin Meng
2022-09-26 13:15   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 15/54] tests/qtest: pflash-cfi02-test: " Bin Meng
2022-09-26 13:18   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 16/54] tests/qtest: qmp-test: " Bin Meng
2022-09-26 13:19   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 17/54] tests/qtest: vhost-user-blk-test: " Bin Meng
2022-09-26 13:20   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 18/54] tests/qtest: vhost-user-test: " Bin Meng
2022-09-26 13:21   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 19/54] tests/qtest: virtio-blk-test: " Bin Meng
2022-09-26 13:21   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 20/54] tests/qtest: virtio-scsi-test: " Bin Meng
2022-09-26 13:21   ` Marc-André Lureau
2022-09-25 11:29 ` [PATCH v3 21/54] tests/qtest: libqtest: " Bin Meng
2022-09-26 13:22   ` Marc-André Lureau
2022-09-25 11:30 ` [PATCH v3 22/54] tests/unit: test-image-locking: " Bin Meng
2022-09-26 13:22   ` Marc-André Lureau
2022-09-25 11:30 ` [PATCH v3 23/54] tests/unit: test-qga: " Bin Meng
2022-09-26 13:23   ` Marc-André Lureau
2022-09-25 11:30 ` [PATCH v3 24/54] tests: vhost-user-bridge: " Bin Meng
2022-09-26 13:23   ` Marc-André Lureau
2022-09-25 11:30 ` [PATCH v3 25/54] block/vvfat: Unify the mkdir() call Bin Meng
2022-09-25 11:30 ` [PATCH v3 26/54] fsdev/virtfs-proxy-helper: Use g_mkdir() Bin Meng
2022-09-25 11:30 ` [PATCH v3 27/54] hw/usb: dev-mtp: " Bin Meng
2022-09-25 11:30 ` [PATCH v3 28/54] tests/qtest: Skip running virtio-net-test cases that require socketpair() for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 29/54] tests/qtest: Build test-filter-{mirror, redirector} cases for posix only Bin Meng
2022-09-25 11:30 ` [PATCH v3 30/54] tests/qtest: qmp-test: Skip running test_qmp_oob for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 31/54] accel/qtest: Implement a portable qtest accelerator Bin Meng
2022-09-25 11:30 ` [PATCH v3 32/54] tests/qtest: libqtest: Adapt global_qtest declaration for win32 Bin Meng
2022-09-26 16:07   ` Thomas Huth
2022-09-25 11:30 ` [PATCH v3 33/54] tests/qtest: Use send/recv for socket communication Bin Meng
2022-09-25 11:30 ` [PATCH v3 34/54] tests/qtest: libqtest: Exclude the *_fds APIs for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 35/54] tests/qtest: libqtest: Install signal handler via signal() Bin Meng
2022-09-26 13:24   ` Marc-André Lureau
2022-09-25 11:30 ` [PATCH v3 36/54] tests/qtest: Support libqtest to build and run on Windows Bin Meng
2022-09-25 11:30 ` [PATCH v3 37/54] tests/qtest: {ahci, ide}-test: Use relative path for temporary files for win32 Bin Meng
2022-09-26 16:20   ` Thomas Huth
2022-09-27  0:17     ` Bin Meng
2022-09-25 11:30 ` [PATCH v3 38/54] tests/qtest: bios-tables-test: Adapt the case " Bin Meng
2022-09-25 12:41   ` Michael S. Tsirkin
2022-09-25 11:30 ` [PATCH v3 39/54] tests/qtest: migration-test: Disable IO redirection " Bin Meng
2022-09-25 11:30 ` [PATCH v3 40/54] tests/qtest: ide-test: Open file in binary mode Bin Meng
2022-09-25 11:30 ` [PATCH v3 41/54] tests/qtest: virtio-net-failover: Disable migration tests for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 42/54] chardev/char-file: Add FILE_SHARE_WRITE when opening the file " Bin Meng
2022-09-26 13:27   ` Marc-André Lureau
2022-09-26 15:05     ` Bin Meng
2022-09-27  9:00       ` Marc-André Lureau
2022-09-27 10:44         ` Bin Meng
2022-09-25 11:30 ` [PATCH v3 43/54] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Bin Meng
2022-09-25 11:30 ` [PATCH v3 44/54] tests/qtest: microbit-test: Fix socket access for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 45/54] tests/qtest: libqtest: Replace the call to close a socket with closesocket() Bin Meng
2022-09-25 11:30 ` Bin Meng [this message]
2022-09-25 11:30 ` [PATCH v3 47/54] io/channel-watch: Drop a superfluous '#ifdef WIN32' Bin Meng
2022-09-25 11:30 ` [PATCH v3 48/54] io/channel-watch: Drop the unnecessary cast Bin Meng
2022-09-25 11:30 ` [PATCH v3 49/54] io/channel-watch: Fix socket watch on Windows Bin Meng
2022-09-25 11:30 ` [PATCH v3 50/54] tests/qtest: migration-test: Skip running some TLS cases for win32 Bin Meng
2022-09-25 11:30 ` [PATCH v3 51/54] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes Bin Meng
2022-09-25 11:30 ` [PATCH v3 52/54] .gitlab-ci.d/windows.yml: Display meson test logs Bin Meng
2022-09-26 16:46   ` Thomas Huth
2022-09-25 11:30 ` [PATCH v3 53/54] tests/qtest: Enable qtest build on Windows Bin Meng
2022-09-25 11:30 ` [PATCH v3 54/54] docs/devel: testing: Document writing portable test cases Bin Meng
2022-09-26 16:55   ` Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220925113032.1949844-47-bmeng.cn@gmail.com \
    --to=bmeng.cn@gmail.com \
    --cc=bin.meng@windriver.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).