From nobody Mon Apr 29 22:59:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.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=1565075534; cv=none; d=zoho.com; s=zohoarc; b=iTAZX+XT0ux0y0XAMs5yejgHeYclc6hDbsR4y6ysm6j9hSiDIaPnbsoLjY78zooLfe5ujGmxQ61iOtiF/ABf9j/43lI8b6pY996KwKRPSHvFY+di3Pu2sx7ZPdoQtPdmxU6P6e937R3Jacel9mXLINrLWpIfRdkhDqDOHbxTPu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565075534; 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:ARC-Authentication-Results; bh=nzam9gYUF60MRs/2JS9aPYlPKRjnWzxCy94vlOEn3tw=; b=mdo3quNuR8wZKjkqfc+SA/IthyI6VXJxirGHdqmumlSk8xPpYgX8AHWALBqKgbCk37RQNjtEc7Ve+QisuY/QocGu8dmQzFOL8D0EZZ8nacW0/zRfsigNptFJddklBhnd+cUcYZg15tchUf+RhWWauZE1zfQkgWidpq0xC/pDu+Q= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1565075534114177.4364369466815; Tue, 6 Aug 2019 00:12:14 -0700 (PDT) Received: from localhost ([::1]:59356 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutdc-00075k-4Y for importer@patchew.org; Tue, 06 Aug 2019 03:12:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39652) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutcl-0005sb-7v for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hutck-0002Fq-CZ for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:11 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:43438) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hutck-0002FD-6Z for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:10 -0400 Received: by mail-wr1-x442.google.com with SMTP id p13so12165798wru.10 for ; Tue, 06 Aug 2019 00:11:10 -0700 (PDT) Received: from 640k.localdomain.com ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id z6sm74944037wrw.2.2019.08.06.00.11.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Aug 2019 00:11:08 -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=nzam9gYUF60MRs/2JS9aPYlPKRjnWzxCy94vlOEn3tw=; b=Pm0R3BqRKOySZUrZsvVy6cp5kC6cLZtY6s7Xph81K1pNQ6VES8+tWuCSkmrH7ZKA/S jTAB7UXFWQc+Z9sYAZxbIjZRM3ESGEYYja8Qd4UgtYK/s+WCzVttSFw6FWXXuoeXG7Mh ISeAgP+pIc40O/lWwC+jwV4rh5IPl3684uVlQtMi+PI8mJ0Ob0olLtp3SYIf2DPc7JSJ XScvnXhy7mCML3gGFFMFUrUqRHwemnpRz9CPqpD2m9ZqMb9xFe2M5WB6DObnjRQRhzI1 f8ZEAUqxNJ+0rdA5yufxOk9oy79ViJckRO9+a2BLkwJeW6hPoLXRsTP1uNqnocI41H2R wpPA== 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=nzam9gYUF60MRs/2JS9aPYlPKRjnWzxCy94vlOEn3tw=; b=WUqL3gnTVgUfu9TopCaKwR04Fn8tCLHDqxmTsReH1fXRot4aeGYydjITN/T7iKdEKg Pau/NqObIP4Pw7/Z/bC9TLrgLnetnUjL9SaI72BOn1j1Abi6bx+MxR50KSJ8LM7X+BUX ZfRjY3r9ic0Zzj3F/qhwaasL3WuTnVqJA/TFlc6NMHj609A+yMq1/7bhK6iKcmF7jQ4D ZQK4ga66olhAj8/lXkOez0HCK9jKuQmEd5ms2lFZQpcJuQmv7EVRReQP2qDvV6m4CAPJ 61SYOPqmzJV/VVT+MSzOsW6Z0IWK7YBNadmSewmX55WuTPmryH4bErGbYE1oixm8IlFf KK7Q== X-Gm-Message-State: APjAAAVBaIX761iz9pSRmM+7Cz0XQSofArPoChRKTV1HXYGkzuMDPSk8 uruHlWCeeA8OVmJQpFyO9uQhCKOB X-Google-Smtp-Source: APXvYqyq0ha7QOPPcJuAOs8YdWnKWqvpmCInwiV151T3/g2rdRznRe53Z+HfR4pdzn6uFzqH6NEcgg== X-Received: by 2002:a5d:63c9:: with SMTP id c9mr2759267wrw.15.1565075468989; Tue, 06 Aug 2019 00:11:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 6 Aug 2019 09:11:04 +0200 Message-Id: <1565075466-14943-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1565075466-14943-1-git-send-email-pbonzini@redhat.com> References: <1565075466-14943-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:4864:20::442 Subject: [Qemu-devel] [PATCH 1/3] module: use g_hash_table_add() 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau The hashtable is used like a set, use the convenience g_hash_table_add() function. Signed-off-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- util/module.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/util/module.c b/util/module.c index 142db7e..ca9885c 100644 --- a/util/module.c +++ b/util/module.c @@ -179,11 +179,10 @@ void module_load_one(const char *prefix, const char *= lib_name) =20 module_name =3D g_strdup_printf("%s%s", prefix, lib_name); =20 - if (g_hash_table_lookup(loaded_modules, module_name)) { + if (!g_hash_table_add(loaded_modules, module_name)) { g_free(module_name); return; } - g_hash_table_insert(loaded_modules, module_name, module_name); =20 exec_dir =3D qemu_get_exec_dir(); search_dir =3D getenv("QEMU_MODULE_DIR"); --=20 1.8.3.1 From nobody Mon Apr 29 22:59:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.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=1565075585; cv=none; d=zoho.com; s=zohoarc; b=CVc3j0LEycD558f1iW2qKYPv91sf7UppJ0Jb7DzBGyWh2S0ZHs/MBPnlLASrcw4UHgTlt+f012HmRyrlpqpMD96v6zoj8UQ2hnLG77gpVexFlcY8JZTXvT9OuxHYJZmQ8CPJkhRfVv50IDpQsQpOUVzI+7EdV2sIuRZhciXZ7Jo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565075585; 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:ARC-Authentication-Results; bh=TcocXI61yPYShryckVHC8C3lt7n1GolpIL0mLOqSWCU=; b=hQJSF07Qwgw9Zugh2CKq5xIvFWcbYkoejt/pZG2huDx0tpmJX81EGs1n15H9h+yGyvA9MvfHNjTQe8LQVIsFjg63d/JW5HTrUKv/9gJQroGtgdhv+Z7R0NC/D6Ct6LG3SkAhA1JthXJq37Kj8NPppbLwM3T4BzegjMvPppedfuI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1565075585070178.96039772910444; Tue, 6 Aug 2019 00:13:05 -0700 (PDT) Received: from localhost ([::1]:59376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutea-0000vM-2T for importer@patchew.org; Tue, 06 Aug 2019 03:13:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39666) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutcm-0005tH-HY for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hutcl-0002Gp-EH for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:12 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:40800) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hutcl-0002G1-7g for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:11 -0400 Received: by mail-wm1-x344.google.com with SMTP id v19so75314301wmj.5 for ; Tue, 06 Aug 2019 00:11:11 -0700 (PDT) Received: from 640k.localdomain.com ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id z6sm74944037wrw.2.2019.08.06.00.11.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Aug 2019 00:11:09 -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=TcocXI61yPYShryckVHC8C3lt7n1GolpIL0mLOqSWCU=; b=WkaeL0TIQfvhMzvxXoGIj/J1yCIQuDdTAJhsZstex0fUQgLKLA2ZbUIgb+CnVvRQ9M AZdgU1ob/jHy+cj6UQkCwngnufzW3TM85D2stPb5Dw/kVTb0Wi8OEt9wNW5RcQ2846Zk Opz2PjMeURcS36k0Rr1nH7rmMpysETph5PSdV6vQ/fZ2PgjFqd5CL/11hW5YFJvCyQDR rMR7Aq/zbKx2iQGRX2QZElCdzm0C6v0y1O4vZFnVbocUl78ZoSgpMM3CP0hu0Z1rJkzR cx63Wvhhl/j9DYuNZ8rgucwfwVyExVyeIsrMEc7ODN/6PhhI9t67JGhiIGXo6h34BdrM Pt6w== 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=TcocXI61yPYShryckVHC8C3lt7n1GolpIL0mLOqSWCU=; b=FcriZyq2L9NM7Q5y5wK0WXNmHv9AdYuAmCdhlJFh5AMWSmp2UVcBrpoUXZ5N5YH9pV Fj2r9kODd+3qc5SD5O2hmOCrcOgM50yJGt7SaMRm3iBaKP9mzoNk7hyrJTwswHESy6CA LXFUOtENU8wecKdNA7+z/z/ccpRDhj5YMo3cBGSK+G2RPvxm2ONOAEjvKSDmiGXAhyP4 r8KJfxEjfDrfcsa7GuIMWUATbph6yh/7w9pun+xxNRBzbkEUTUrzmNw4eQUyhYPQZOqP LMKmpe+cxZTw7JMQvBm0mUNaOEcNo4x8s1BHQqxLhNo/ffTKb64tvuZkuCwt5GhT8h7R 79Ag== X-Gm-Message-State: APjAAAWGTEyoEMz3r3u2Qc9GGu66JN1jE20K1DAgSlVQ+gfTm0mSjBgG b7he4LhkE9SM+cQCr5M86NLM3q3l X-Google-Smtp-Source: APXvYqyBUz87UAYiwQNFN/4eRs+JrTcPSyaIRear8F61tCtyzL9CwqQeIjQ1uf51KbTg3udN+r5oNg== X-Received: by 2002:a1c:7e85:: with SMTP id z127mr2884825wmc.95.1565075469998; Tue, 06 Aug 2019 00:11:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 6 Aug 2019 09:11:05 +0200 Message-Id: <1565075466-14943-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1565075466-14943-1-git-send-email-pbonzini@redhat.com> References: <1565075466-14943-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:4864:20::344 Subject: [Qemu-devel] [PATCH 2/3] module: return success on module load 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau Let the caller know of load success. Note that this also changes slightly the behaviour of the function to try loading on subsequent calls if the previous ones failed. Signed-off-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- include/qemu/module.h | 2 +- util/module.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/qemu/module.h b/include/qemu/module.h index db30653..65ba596 100644 --- a/include/qemu/module.h +++ b/include/qemu/module.h @@ -65,6 +65,6 @@ void register_module_init(void (*fn)(void), module_init_t= ype type); void register_dso_module_init(void (*fn)(void), module_init_type type); =20 void module_call_init(module_init_type type); -void module_load_one(const char *prefix, const char *lib_name); +bool module_load_one(const char *prefix, const char *lib_name); =20 #endif diff --git a/util/module.c b/util/module.c index ca9885c..e9fe3e5 100644 --- a/util/module.c +++ b/util/module.c @@ -156,8 +156,10 @@ out: } #endif =20 -void module_load_one(const char *prefix, const char *lib_name) +bool module_load_one(const char *prefix, const char *lib_name) { + bool success =3D false; + #ifdef CONFIG_MODULES char *fname =3D NULL; char *exec_dir; @@ -170,7 +172,7 @@ void module_load_one(const char *prefix, const char *li= b_name) =20 if (!g_module_supported()) { fprintf(stderr, "Module is not supported by system.\n"); - return; + return false; } =20 if (!loaded_modules) { @@ -181,7 +183,7 @@ void module_load_one(const char *prefix, const char *li= b_name) =20 if (!g_hash_table_add(loaded_modules, module_name)) { g_free(module_name); - return; + return true; } =20 exec_dir =3D qemu_get_exec_dir(); @@ -205,13 +207,19 @@ void module_load_one(const char *prefix, const char *= lib_name) fname =3D NULL; /* Try loading until loaded a module file */ if (!ret) { + success =3D true; break; } } =20 + if (!success) { + g_hash_table_remove(loaded_modules, module_name); + } + for (i =3D 0; i < n_dirs; i++) { g_free(dirs[i]); } =20 #endif + return success; } --=20 1.8.3.1 From nobody Mon Apr 29 22:59:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.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=1565075646; cv=none; d=zoho.com; s=zohoarc; b=g9psStSLeXxsad38McPvyt03hHoHUSjhjkVukPuBYzDvsw46t3rztHZbUzDDvNET7cexL5pXuzUuatn1T05MpePGwl/ET783ckcqpP844ADj8OvtMuneajsD3g0aKYD6567OT/zmibWmqFY2vc++vM7ycPZzfmX5JEvZDanw+c4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565075646; 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:ARC-Authentication-Results; bh=Hun2Fzp3UC3+BE6p1OV7nB2Qd68PIPI16xM6ErbZLo8=; b=hppusp9qwWInBsdmUYEff1M0boJcsDaIbbUZCgq0Daq0KcBY9wvxvlk3jNGFHvbr+ecuQioW9KqpwC/Dme1HjluKvpx3EdRGsBX8sYHNahYm5brtiLz9/0s4cwQYCiJBea0P6NxFwClC9eks9SsBvtCuWaOfk1+AY5PbXbOzTyw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1565075646086844.6100523318129; Tue, 6 Aug 2019 00:14:06 -0700 (PDT) Received: from localhost ([::1]:59390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutfZ-0002Bt-5z for importer@patchew.org; Tue, 06 Aug 2019 03:14:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39676) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hutcn-0005vQ-II for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hutcm-0002HZ-Au for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:13 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:38261) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hutcm-0002H8-4j for qemu-devel@nongnu.org; Tue, 06 Aug 2019 03:11:12 -0400 Received: by mail-wm1-x342.google.com with SMTP id s15so53950763wmj.3 for ; Tue, 06 Aug 2019 00:11:12 -0700 (PDT) Received: from 640k.localdomain.com ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id z6sm74944037wrw.2.2019.08.06.00.11.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Aug 2019 00:11:10 -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=Hun2Fzp3UC3+BE6p1OV7nB2Qd68PIPI16xM6ErbZLo8=; b=qjlrSxGa7ZoLF801q9Ps9e9lMQJ8ybDQeEPB0jWmHuMYGqkyfdA3nI6tVj0Kx47vKq XNycZK9xKmauJYC4lVhPltTUemEHIOLU1rD2y6svEccxsPg4aTPJcVIXePIDJFvlzeLc NYnL1J2k6fu0u3Vy3eE/hcTtDX9eOd0S8GbnEh9TOY1o/3I3xs/voZ44PHa08OBVjSty ib5LTNZ1bLBq2mMCib63kIZenmL3lMB+YQokA25z5UjIrnPfZKnEn6HH6b0E60cku1Gz KXy4Cr6j96udLBmVYHG4hurqW6kFJc9qDopMRJczj78dS+nuk3whr+pp+tibG1E110Q6 PA0Q== 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=Hun2Fzp3UC3+BE6p1OV7nB2Qd68PIPI16xM6ErbZLo8=; b=benBLBYSGHzYPoMa1XrDDwWcowzTERvz7F8cqergRvmTkR2Q1Li/MWJfmDvVgkR/rx oCZIm1PhxxRbF6Kc8sguvXYR36dUmxFCBi210P6knK6V2mm+Obmcov2MfZTCQvAAespj /FE7epyU+3ZeoN8TtTJ2hwKCJ9XoJEHkb/h6OBxiXw8OrEv5NcYJKOOOF2uECzjDxwO5 +yyw/9XUQYILbWIEOCHbIwa7xdyscXhKZIv1TxXCIkYjmzj3lkeQVSWHRm/ewCANTToZ usdQPZ7Y8z+O8ZF6j9p3HM+QhgSjeMYVqRBy7RAuMTXCylSd5CgcoVAwmWemWcaEUIrd oyEQ== X-Gm-Message-State: APjAAAVxUN9e9XPAxXAbCBd33t4LVxl9e88TomBBu7d8cagJGs9lAN+Q scYXQ1kPwx/k1G75Xelp2kkfiavU X-Google-Smtp-Source: APXvYqx+fxnkD/g0epwjzDOaljVdDDsih7qxXgMhnxDjkd3JxywPX6s7/NRP50N6NiAc2WcPifExKg== X-Received: by 2002:a7b:cd94:: with SMTP id y20mr2974331wmj.94.1565075470876; Tue, 06 Aug 2019 00:11:10 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 6 Aug 2019 09:11:06 +0200 Message-Id: <1565075466-14943-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1565075466-14943-1-git-send-email-pbonzini@redhat.com> References: <1565075466-14943-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:4864:20::342 Subject: [Qemu-devel] [PATCH 3/3] tests: add module loading test 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau This test will simply check that modules can be loaded, and no symbols are missing. Signed-off-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- qtest.c | 9 +++++++ tests/Makefile.include | 1 + tests/libqtest.c | 6 +++++ tests/libqtest.h | 2 ++ tests/modules-test.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ 5 files changed, 89 insertions(+) create mode 100644 tests/modules-test.c diff --git a/qtest.c b/qtest.c index 15e27e9..40c3609 100644 --- a/qtest.c +++ b/qtest.c @@ -661,6 +661,15 @@ static void qtest_process_command(CharBackend *chr, gc= har **words) qtest_send_prefix(chr); qtest_sendf(chr, "OK %"PRIi64"\n", (int64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)); + } else if (strcmp(words[0], "module_load") =3D=3D 0) { + g_assert(words[1] && words[2]); + + qtest_send_prefix(chr); + if (module_load_one(words[1], words[2])) { + qtest_sendf(chr, "OK\n"); + } else { + qtest_sendf(chr, "FAIL\n"); + } } else if (qtest_enabled() && strcmp(words[0], "clock_set") =3D=3D 0) { int64_t ns; int ret; diff --git a/tests/Makefile.include b/tests/Makefile.include index db750dd..17dd439 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -147,6 +147,7 @@ check-block-$(CONFIG_POSIX) +=3D tests/qemu-iotests-qui= ck.sh =20 check-qtest-generic-y +=3D tests/qmp-test$(EXESUF) check-qtest-generic-y +=3D tests/qmp-cmd-test$(EXESUF) +check-qtest-generic-$(CONFIG_MODULES) +=3D tests/modules-test$(EXESUF) =20 check-qtest-generic-y +=3D tests/device-introspect-test$(EXESUF) check-qtest-generic-y +=3D tests/cdrom-test$(EXESUF) diff --git a/tests/libqtest.c b/tests/libqtest.c index 3c5c3f4..e158e50 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -811,6 +811,12 @@ bool qtest_get_irq(QTestState *s, int num) return s->irq_level[num]; } =20 +void qtest_module_load(QTestState *s, const char *prefix, const char *libn= ame) +{ + qtest_sendf(s, "module_load %s %s\n", prefix, libname); + qtest_rsp(s, 0); +} + static int64_t qtest_clock_rsp(QTestState *s) { gchar **words; diff --git a/tests/libqtest.h b/tests/libqtest.h index cadf1d4..2a09102 100644 --- a/tests/libqtest.h +++ b/tests/libqtest.h @@ -262,6 +262,8 @@ char *qtest_hmp(QTestState *s, const char *fmt, ...) GC= C_FMT_ATTR(2, 3); char *qtest_vhmp(QTestState *s, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0); =20 +void qtest_module_load(QTestState *s, const char *prefix, const char *libn= ame); + /** * qtest_get_irq: * @s: #QTestState instance to operate on. diff --git a/tests/modules-test.c b/tests/modules-test.c new file mode 100644 index 0000000..3aef0e5 --- /dev/null +++ b/tests/modules-test.c @@ -0,0 +1,71 @@ +#include "qemu/osdep.h" +#include "libqtest.h" + +static void test_modules_load(const void *data) +{ + QTestState *qts; + const char **args =3D data; + + qts =3D qtest_init(NULL); + qtest_module_load(qts, args[0], args[1]); + qtest_quit(qts); +} + +int main(int argc, char *argv[]) +{ + const char *modules[] =3D { +#ifdef CONFIG_CURL + "block-", "curl", +#endif +#ifdef CONFIG_GLUSTERFS + "block-", "gluster", +#endif +#ifdef CONFIG_LIBISCSI + "block-", "iscsi", +#endif +#ifdef CONFIG_LIBNFS + "block-", "nfs", +#endif +#ifdef CONFIG_LIBSSH + "block-", "ssh", +#endif +#ifdef CONFIG_RBD + "block-", "rbd", +#endif +#ifdef CONFIG_AUDIO_ALSA + "audio-", "alsa", +#endif +#ifdef CONFIG_AUDIO_OSS + "audio-", "oss", +#endif +#ifdef CONFIG_AUDIO_PA + "audio-", "pa", +#endif +#ifdef CONFIG_AUDIO_SDL + "audio-", "sdl", +#endif +#ifdef CONFIG_CURSES + "ui-", "curses", +#endif +#if defined(CONFIG_GTK) && defined(CONFIG_VTE) + "ui-", "gtk", +#endif +#ifdef CONFIG_SDL + "ui-", "sdl", +#endif +#if defined(CONFIG_SPICE) && defined(CONFIG_GIO) + "ui-", "spice-app", +#endif + }; + int i; + + g_test_init(&argc, &argv, NULL); + + for (i =3D 0; i < G_N_ELEMENTS(modules); i +=3D 2) { + char *testname =3D g_strdup_printf("/module/load/%s", modules[i + = 1]); + qtest_add_data_func(testname, modules + i, test_modules_load); + g_free(testname); + } + + return g_test_run(); +} --=20 1.8.3.1