From nobody Mon Feb 9 17:58:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1499956837989676.1638257596491; Thu, 13 Jul 2017 07:40:37 -0700 (PDT) Received: from localhost ([::1]:60432 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVfI8-00071L-KU for importer@patchew.org; Thu, 13 Jul 2017 10:40:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51091) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVf3E-0000kz-Ps for qemu-devel@nongnu.org; Thu, 13 Jul 2017 10:25:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVf39-00025Q-Pb for qemu-devel@nongnu.org; Thu, 13 Jul 2017 10:25:08 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:33482) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dVf39-000255-Jt for qemu-devel@nongnu.org; Thu, 13 Jul 2017 10:25:03 -0400 Received: by mail-wr0-x241.google.com with SMTP id n18so1461796wrb.0 for ; Thu, 13 Jul 2017 07:25:03 -0700 (PDT) Received: from 640k.lan (94-39-191-51.adsl-ull.clienti.tiscali.it. [94.39.191.51]) by smtp.gmail.com with ESMTPSA id k75sm6042448wmh.10.2017.07.13.07.24.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2017 07:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z11R0kgY9M85lwDByGHSr+TiFFxUIdLH5nWuehclEWM=; b=pCW1OEXO+potJvbY7HtkEhg+IgYNzvvW0D1kMRvOkcEX3SccjQ1hVkNLmyO4XmepoH r44ZUQJg961plctzebkZxW/6cFVokSq86wRbyjLJtH/GnDfmkM3poaLJkvWLYm4ht3lO A3GZn9sMy3eRFGuGwkQJ6FtPj+9lGWvUMjFEqU2l0FXPCNVy7PokkXBnjkrC472Fr4fp kWrVVfMROSFHBJy/KzXjTqV7R3Qk7zdj7iCXW1JoPAPU01NPmGkFRCQEigi0SnEW5Fm7 jNublW22OclZ31C52Bawf4MvN3V6KFUjZAdF/QYYVBSILV5wtvq4RSScLY3dgE1gFQ1N WIrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Z11R0kgY9M85lwDByGHSr+TiFFxUIdLH5nWuehclEWM=; b=KyO0+PCd/qdCS9rFyMGvYbK7fGqxRvYOFLHhox7bR+ZUsIXHyDjO+F4Q0Y9KyRH3X8 Ruo7RRG2krIBRrGvpxYvCTFW5ylmItspvRFI8vGTQJ3gpoBTtpCGZXHYF33bjkIraNQW ds8Y23aU5eO3tpHOkTA+DmeIqiMv273rFL2X4d7/Sa0K+qx+GayVOHulOgJsTnVlrG4q ZUHCTrcSI4d7xQq2S/v0ZKJxS8uinW2vNaJPEcIntfpOFIbiA5sML1L8KrNrSqxN/+jr 4FYsUqtd7rY/wEeqIJycPfFsjpKMnKbIDG1HNF+5NOf1KGILthLvi01IHV3VVCKqq226 RobQ== X-Gm-Message-State: AIVw110Lb3yPiU4E5MdL8ueC1aTDSoqBDsxAHdpR9aykHYLH72fS5vFA XV1YvrCXhx4GZvrVsGM= X-Received: by 10.223.133.99 with SMTP id 90mr1795463wrh.44.1499955901926; Thu, 13 Jul 2017 07:25:01 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Thu, 13 Jul 2017 16:24:07 +0200 Message-Id: <1499955874-10954-15-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1499955874-10954-1-git-send-email-pbonzini@redhat.com> References: <1499955874-10954-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 14/41] test-char: split char_udp_test X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anton Nefedov Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Anton Nefedov makes it possible to test the existing chardev-udp Signed-off-by: Anton Nefedov Reviewed-by: Marc-Andr=C3=A9 Lureau Message-Id: <1499342940-56739-8-git-send-email-anton.nefedov@virtuozzo.com> Signed-off-by: Paolo Bonzini --- tests/test-char.c | 56 +++++++++++++++++++++++++++++++++++++++------------= ---- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/tests/test-char.c b/tests/test-char.c index 536536e..e0bde5e 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -407,16 +407,11 @@ static void char_pipe_test(void) } #endif =20 -static void char_udp_test(void) +static int make_udp_socket(int *port) { - struct sockaddr_in addr =3D { 0, }, other; - SocketIdleData d =3D { 0, }; - Chardev *chr; - CharBackend be; + struct sockaddr_in addr =3D { 0, }; socklen_t alen =3D sizeof(addr); int ret, sock =3D qemu_socket(PF_INET, SOCK_DGRAM, 0); - char buf[10]; - char *tmp; =20 g_assert_cmpint(sock, >, 0); addr.sin_family =3D AF_INET ; @@ -427,19 +422,41 @@ static void char_udp_test(void) ret =3D getsockname(sock, (struct sockaddr *)&addr, &alen); g_assert_cmpint(ret, =3D=3D, 0); =20 - tmp =3D g_strdup_printf("udp:127.0.0.1:%d", - ntohs(addr.sin_port)); - chr =3D qemu_chr_new("client", tmp); - g_assert_nonnull(chr); + *port =3D ntohs(addr.sin_port); + return sock; +} + +static void char_udp_test_internal(Chardev *reuse_chr, int sock) +{ + struct sockaddr_in other; + SocketIdleData d =3D { 0, }; + Chardev *chr; + CharBackend *be; + socklen_t alen =3D sizeof(other); + int ret; + char buf[10]; + char *tmp =3D NULL; + + if (reuse_chr) { + chr =3D reuse_chr; + be =3D chr->be; + } else { + int port; + sock =3D make_udp_socket(&port); + tmp =3D g_strdup_printf("udp:127.0.0.1:%d", port); + chr =3D qemu_chr_new("client", tmp); + g_assert_nonnull(chr); + + be =3D g_alloca(sizeof(CharBackend)); + qemu_chr_fe_init(be, chr, &error_abort); + } =20 d.chr =3D chr; - qemu_chr_fe_init(&be, chr, &error_abort); - qemu_chr_fe_set_handlers(&be, socket_can_read_hello, socket_read_hello, + qemu_chr_fe_set_handlers(be, socket_can_read_hello, socket_read_hello, NULL, NULL, &d, NULL, true); ret =3D qemu_chr_write_all(chr, (uint8_t *)"hello", 5); g_assert_cmpint(ret, =3D=3D, 5); =20 - alen =3D sizeof(addr); ret =3D recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *)&other, &alen); g_assert_cmpint(ret, =3D=3D, 5); @@ -448,9 +465,16 @@ static void char_udp_test(void) =20 main_loop(); =20 - close(sock); + if (!reuse_chr) { + close(sock); + qemu_chr_fe_deinit(be, true); + } g_free(tmp); - qemu_chr_fe_deinit(&be, true); +} + +static void char_udp_test(void) +{ + char_udp_test_internal(NULL, 0); } =20 #ifdef HAVE_CHARDEV_SERIAL --=20 1.8.3.1