From nobody Mon Feb 9 09:52:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604310546; cv=none; d=zohomail.com; s=zohoarc; b=jpVINtwD06F81i7ra6bgjlXCfvfr2Ntrhli+dd+3KsYGRpFuHB45JxQh6cjcB4Jml9EVPONhebscYCb7TBvPM31K4K4JmPLpIG3Pl/UEHwFJZH9LIbN1SVIS8ojsvT7srWmbAA95k4yOsrZwZyLNFENcmc9ieZlKBke/nx8h6lk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604310546; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p/OgfYQh8HJzQ0t4tZ94KeAjaQks7kVAngJOMp4dio0=; b=nbjJiCd+EP+o73EdtJ5UyuVB7xz3Y+a63/fpNb5T66tpuxTMBB681yt2g5FBVuANMqX3usfIbWQauzSw0PpiSg+XGyw3HiIb6Sf39eT5DgGQxaXVo9xPAIV3o63nWfAJzF9HC7ISPurpbsTz/e8JbL4EqJQTwmzDs7HdSVpcf7Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160431054677599.60999696246904; Mon, 2 Nov 2020 01:49:06 -0800 (PST) Received: from localhost ([::1]:49630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZWSX-0007VD-Au for importer@patchew.org; Mon, 02 Nov 2020 04:49:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48286) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZWOK-0002dK-N5 for qemu-devel@nongnu.org; Mon, 02 Nov 2020 04:44:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:51422) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZWOI-00059k-8h for qemu-devel@nongnu.org; Mon, 02 Nov 2020 04:44:44 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-Vm2UiXZgNcKH1FUzenY-vw-1; Mon, 02 Nov 2020 04:44:39 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 049E457203; Mon, 2 Nov 2020 09:44:38 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-103.ams2.redhat.com [10.36.112.103]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B77955D9DD; Mon, 2 Nov 2020 09:44:31 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id EBF28116B844; Mon, 2 Nov 2020 10:44:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604310280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p/OgfYQh8HJzQ0t4tZ94KeAjaQks7kVAngJOMp4dio0=; b=ap2PHXQPqdNTXwAopPODK09jIES8yGBg1STbQQdu4b6tO55/UjrsWXatzhHJF0SABJzoMg WT/E6Wy0XRsxXcoaNu4NaHABC3hhgHG6/+UK+S9scKYhdl3pLN8vcbBmf3TQHpGoMZ09PP iIVoc1380Hjgrn1OQvQakjjNRpcb7Ew= X-MC-Unique: Vm2UiXZgNcKH1FUzenY-vw-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PATCH v2 05/11] test-util-sockets: Synchronize properly, don't sleep(1) Date: Mon, 2 Nov 2020 10:44:16 +0100 Message-Id: <20201102094422.173975-6-armbru@redhat.com> In-Reply-To: <20201102094422.173975-1-armbru@redhat.com> References: <20201102094422.173975-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=armbru@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/02 01:33:03 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, berrange@redhat.com, zxq_yx_007@163.com, kraxel@redhat.com, pbonzini@redhat.com, marcandre.lureau@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The abstract sockets test spawns a thread to listen and accept, and a second one to connect, with a sleep(1) in between to "ensure" the former is listening when the latter tries to connect. Review fail. Risks spurious test failure, say when a heavily loaded machine doesn't schedule the first thread quickly enough. It's also slow. Listen and accept in the main thread, and start the connect thread in between. Look ma, no sleep! Run time drops from 2s wall clock to a few milliseconds. Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster --- tests/test-util-sockets.c | 40 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 40ff893e64..4cedf622f0 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -230,26 +230,6 @@ static void test_socket_fd_pass_num_nocli(void) #endif =20 #ifdef __linux__ -static gpointer unix_server_thread_func(gpointer user_data) -{ - SocketAddress *addr =3D user_data; - int fd; - int connfd; - struct sockaddr_un un; - socklen_t len =3D sizeof(un); - - fd =3D socket_listen(addr, 1, &error_abort); - g_assert_cmpint(fd, >=3D, 0); - g_assert(fd_is_socket(fd)); - - connfd =3D accept(fd, (struct sockaddr *)&un, &len); - g_assert_cmpint(connfd, !=3D, -1); - close(connfd); - - close(fd); - return NULL; -} - static gpointer unix_client_thread_func(gpointer user_data) { SocketAddress *addr =3D user_data; @@ -263,20 +243,26 @@ static gpointer unix_client_thread_func(gpointer user= _data) =20 static void test_socket_unix_abstract_one(SocketAddress *addr) { - GThread *serv, *cli; + int fd, connfd; + GThread *cli; + struct sockaddr_un un; + socklen_t len =3D sizeof(un); =20 - serv =3D g_thread_new("abstract_unix_server", - unix_server_thread_func, - addr); - - sleep(1); + fd =3D socket_listen(addr, 1, &error_abort); + g_assert_cmpint(fd, >=3D, 0); + g_assert(fd_is_socket(fd)); =20 cli =3D g_thread_new("abstract_unix_client", unix_client_thread_func, addr); =20 + connfd =3D accept(fd, (struct sockaddr *)&un, &len); + g_assert_cmpint(connfd, !=3D, -1); + close(connfd); + + close(fd); + g_thread_join(cli); - g_thread_join(serv); } =20 static void test_socket_unix_abstract_good(void) --=20 2.26.2