From nobody Sat May 18 12:29:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1675795811; cv=none; d=zohomail.com; s=zohoarc; b=k/6BCxx8iLS/wRqW1xYWffEct0W2ZT+QG9jr+bVE5Dox4yHPsbTXeIXg76a0ewJ+szFOLglrH0sW3eEtxsP9ej+Avtc9op15NWsGsoYbrIE7nuhoECRj7JPhAxbnHwtY8Q6H1YXwBAXZBVzyeUmB32QgZXN/A+gizRDEQ3FEpZs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675795811; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=QWmIgT4dGHA58bYDOsY6h8HfoS6Afh3cx1vVMSU3nCk=; b=GlBQ+7Ey3T3DD3L31MqtUpCqvP5tUOiRXVIXepBtWmLwu3emki/ZIBTO8qtnWq9ZX1m0Bhe4NHfT10Oh34cYuKnBV6UqqxN+TMLlxn9glbRSzKpSgZbyr3pd2ZPcPT9vzJTCsttX4UzOEB0pdJ/yRqtI3GtO3fUJV5RHd+imj8Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1675795811289988.1505961473188; Tue, 7 Feb 2023 10:50:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pPT1m-0003Ky-K3; Tue, 07 Feb 2023 13:49:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1W-0003Cj-Bi for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:49:02 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1T-00018U-Ko for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:48:58 -0500 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 317Gntc9000479; Tue, 7 Feb 2023 18:48:52 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nhdy16d6b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:51 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 317I0iAJ028720; Tue, 7 Feb 2023 18:48:50 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nhdtd3rf1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:50 +0000 Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 317Im35U033516; Tue, 7 Feb 2023 18:48:49 GMT Received: from ca-dev63.us.oracle.com (ca-dev63.us.oracle.com [10.211.8.221]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3nhdtd3rdm-2; Tue, 07 Feb 2023 18:48:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2022-7-12; bh=QWmIgT4dGHA58bYDOsY6h8HfoS6Afh3cx1vVMSU3nCk=; b=rVSyyL04Ma+r6tGFj1rkRIyKRqnf4fAERtr5XIlAhIGh6D8VHWraGrx2UHilgdBu0ogT gstXicAYqqzAC6Nai4xBkR1c6xCcNSHwvAjNc1ePrMWl91/DYI2zcrQLlcxdE+MSjCCn LuAdZTWiBJn09AJjfMuTxNAxMBdrYkdsNSkot3l+Idb9uvtgobWlpN8qQ5wk+IR9M4xk KBwavhjGZjbfUzwTDxSFGS/Ni8CcgjM1y2BylokMwIXC1M5oQvYU7WvNivg4CTwB7YnG JcRdsCwsgmIYG0yZsWLFeagewrC3gaqklzdenMVmN/O09m4EukEkQT+cnLpxUb//Fcbz nQ== From: Steve Sistare To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , "Dr. David Alan Gilbert" , Markus Armbruster , Michael Roth , Steve Sistare Subject: [PATCH V2 1/4] qapi: strList_from_string Date: Tue, 7 Feb 2023 10:48:44 -0800 Message-Id: <1675795727-235010-2-git-send-email-steven.sistare@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> References: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-07_11,2023-02-06_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302070167 X-Proofpoint-GUID: KKCeLnoRfQRNuZ9arxCfWrbQ1Ae5ZkTe X-Proofpoint-ORIG-GUID: KKCeLnoRfQRNuZ9arxCfWrbQ1Ae5ZkTe 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=205.220.165.32; envelope-from=steven.sistare@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1675795811708100005 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Generalize hmp_split_at_comma() to take any delimiter character, rename as strList_from_string(), and move it to qapi/util.c. No functional change. Signed-off-by: Steve Sistare Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/monitor/hmp.h | 1 - include/qapi/util.h | 9 +++++++++ monitor/hmp-cmds.c | 19 ------------------- net/net-hmp-cmds.c | 2 +- qapi/qapi-util.c | 23 +++++++++++++++++++++++ stats/stats-hmp-cmds.c | 2 +- 6 files changed, 34 insertions(+), 22 deletions(-) diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 2220f14..e80848f 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -19,7 +19,6 @@ =20 bool hmp_handle_error(Monitor *mon, Error *err); void hmp_help_cmd(Monitor *mon, const char *name); -strList *hmp_split_at_comma(const char *str); =20 void hmp_info_name(Monitor *mon, const QDict *qdict); void hmp_info_version(Monitor *mon, const QDict *qdict); diff --git a/include/qapi/util.h b/include/qapi/util.h index 81a2b13..7d88b09 100644 --- a/include/qapi/util.h +++ b/include/qapi/util.h @@ -22,6 +22,8 @@ typedef struct QEnumLookup { const int size; } QEnumLookup; =20 +struct strList; + const char *qapi_enum_lookup(const QEnumLookup *lookup, int val); int qapi_enum_parse(const QEnumLookup *lookup, const char *buf, int def, Error **errp); @@ -31,6 +33,13 @@ bool qapi_bool_parse(const char *name, const char *value= , bool *obj, int parse_qapi_name(const char *name, bool complete); =20 /* + * Produce a strList from the character delimited string @in. + * All strings are g_strdup'd. + * A NULL or empty input string returns NULL. + */ +struct strList *strList_from_string(const char *in, char delim); + +/* * For any GenericList @list, insert @element at the front. * * Note that this macro evaluates @element exactly once, so it is safe diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 34bd8c6..9665e6e 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -39,25 +39,6 @@ bool hmp_handle_error(Monitor *mon, Error *err) return false; } =20 -/* - * Split @str at comma. - * A null @str defaults to "". - */ -strList *hmp_split_at_comma(const char *str) -{ - char **split =3D g_strsplit(str ?: "", ",", -1); - strList *res =3D NULL; - strList **tail =3D &res; - int i; - - for (i =3D 0; split[i]; i++) { - QAPI_LIST_APPEND(tail, split[i]); - } - - g_free(split); - return res; -} - void hmp_info_name(Monitor *mon, const QDict *qdict) { NameInfo *info; diff --git a/net/net-hmp-cmds.c b/net/net-hmp-cmds.c index 41d326b..30422d9 100644 --- a/net/net-hmp-cmds.c +++ b/net/net-hmp-cmds.c @@ -72,7 +72,7 @@ void hmp_announce_self(Monitor *mon, const QDict *qdict) migrate_announce_params()); =20 qapi_free_strList(params->interfaces); - params->interfaces =3D hmp_split_at_comma(interfaces_str); + params->interfaces =3D strList_from_string(interfaces_str, ','); params->has_interfaces =3D params->interfaces !=3D NULL; params->id =3D g_strdup(id); qmp_announce_self(params, NULL); diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c index 63596e1..b61c73c 100644 --- a/qapi/qapi-util.c +++ b/qapi/qapi-util.c @@ -15,6 +15,7 @@ #include "qapi/error.h" #include "qemu/ctype.h" #include "qapi/qmp/qerror.h" +#include "qapi/qapi-builtin-types.h" =20 CompatPolicy compat_policy; =20 @@ -152,3 +153,25 @@ int parse_qapi_name(const char *str, bool complete) } return p - str; } + +strList *strList_from_string(const char *in, char delim) +{ + strList *res =3D NULL; + strList **tail =3D &res; + + while (in && in[0]) { + char *next =3D strchr(in, delim); + char *value; + + if (next) { + value =3D g_strndup(in, next - in); + in =3D next + 1; /* skip the delim */ + } else { + value =3D g_strdup(in); + in =3D NULL; + } + QAPI_LIST_APPEND(tail, value); + } + + return res; +} diff --git a/stats/stats-hmp-cmds.c b/stats/stats-hmp-cmds.c index 531e35d..4a2adf8 100644 --- a/stats/stats-hmp-cmds.c +++ b/stats/stats-hmp-cmds.c @@ -174,7 +174,7 @@ static StatsFilter *stats_filter(StatsTarget target, co= nst char *names, request->provider =3D provider_idx; if (names && !g_str_equal(names, "*")) { request->has_names =3D true; - request->names =3D hmp_split_at_comma(names); + request->names =3D strList_from_string(names, ','); } QAPI_LIST_PREPEND(request_list, request); } --=20 1.8.3.1 From nobody Sat May 18 12:29:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1675795792; cv=none; d=zohomail.com; s=zohoarc; b=V60WFBOHdQtNayH+qkoC5GLpt+JAC4GEJKlccKyGQKD9qg+/a6rXxJ87iTjUawPI8gRrOJ2obtvYoTPN/inlNZMDX+rEpclY0gHwqGK84QGoGD9fWhp8Keku9AkOmevgemY7ihXE0o8gjS8c94WenrLghS/TL1MHxctLhZyL7T8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675795792; 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=cL3xZ0uADdTDQzJmb0SSc4HZPvnB+mHXNqLrVpETg1s=; b=X0P5xgBZj+JnovIfbmatHK6/41BIf3AdzjhR5D5BKfIbP8pjn09ZwOkxGB16raTtX6eaxLKc47+/dHKdJIt9ARRRDmDV85qvr6u/oh1PXwTtTH2PrYW2zILCDBbNZ2AfmC/0d+9pExPClp888HEFA3gvXQWoxZHWL63K7cDpVNE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1675795791906438.56545878299846; Tue, 7 Feb 2023 10:49:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pPT1u-0003cT-I8; Tue, 07 Feb 2023 13:49:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1X-0003D3-EZ for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:49:04 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1T-00018N-Hj for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:48:59 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 317GmgDD024047; Tue, 7 Feb 2023 18:48:52 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nhdsdpdk1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:52 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 317I0QaW028809; Tue, 7 Feb 2023 18:48:51 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nhdtd3rft-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:51 +0000 Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 317Im35W033516; Tue, 7 Feb 2023 18:48:50 GMT Received: from ca-dev63.us.oracle.com (ca-dev63.us.oracle.com [10.211.8.221]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3nhdtd3rdm-3; Tue, 07 Feb 2023 18:48:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2022-7-12; bh=cL3xZ0uADdTDQzJmb0SSc4HZPvnB+mHXNqLrVpETg1s=; b=kCZ7dP0xsA8Kgf67n+9IH9TCLY1ynYVG/ZkLiBWDaSmVPkQeaKN/ogjeXFNBMAS4n9y+ biyjb6Rjeyl53FQoNcHrH+IA2TU3glAtFY7fudpmGZCzT8GXQQOp/v1CU5d/PNOL3PQr SlmWjpKueLhrc2LECi+JBm+z7k8TlV58dFsoHrsnhK7ZtQo81Z278Oi4es9Tpz8mbxhV +gVpHzPq4IFDMa+hzrBtCpAVZCtF4TCFTaXT5M61EfgUaUO6lsYOv8VXF8jDUKtFh/Fs /AwxbrJZtbSEb28kIP3LMkXwtJjAnXnkmTD6RJih9MQDcCIBY1vR4tPx20mNV/4moxaD 5Q== From: Steve Sistare To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , "Dr. David Alan Gilbert" , Markus Armbruster , Michael Roth , Steve Sistare Subject: [PATCH V2 2/4] qapi: QAPI_LIST_LENGTH Date: Tue, 7 Feb 2023 10:48:45 -0800 Message-Id: <1675795727-235010-3-git-send-email-steven.sistare@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> References: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-07_11,2023-02-06_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302070167 X-Proofpoint-ORIG-GUID: EwpGcwvsey_oRqHjUU_hExnyBaiHM3Lf X-Proofpoint-GUID: EwpGcwvsey_oRqHjUU_hExnyBaiHM3Lf 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=205.220.177.32; envelope-from=steven.sistare@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1675795793124100001 Signed-off-by: Steve Sistare Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/qapi/util.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/qapi/util.h b/include/qapi/util.h index 7d88b09..75dddca 100644 --- a/include/qapi/util.h +++ b/include/qapi/util.h @@ -65,4 +65,17 @@ struct strList *strList_from_string(const char *in, char= delim); (tail) =3D &(*(tail))->next; \ } while (0) =20 +/* + * For any GenericList @list, return its length. + */ +#define QAPI_LIST_LENGTH(list) \ + ({ \ + int len =3D 0; \ + typeof(list) elem; \ + for (elem =3D list; elem !=3D NULL; elem =3D elem->next) { \ + len++; \ + } \ + len; \ + }) + #endif --=20 1.8.3.1 From nobody Sat May 18 12:29:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1675795813; cv=none; d=zohomail.com; s=zohoarc; b=n/y+XEYrXhQvyRdkWnni0dGAdzDfpb9hm1hczXYYpJMXoHUoXAyoTGUzu26OmpT+ViLZDxQr006zyE91v+T0BG/uNOTrU+tFVT0lol4ix9SYxUM0L5QGbFZ86HawT8so7+6w8sSjWzYWkHkRfwDScQQZN8fg9kR4YOFsAIhA/Z0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675795813; 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=uIzEGC0jXaqPYoVhdVCmhjj6OWp+ypUWq6WHLdseACM=; b=HIes8tY85Z+qf/pvkEjHfLJRck3nN6whv65VsweT/KIusp1Ng/JawsFHEGLCoYsrQtc21mi3PSvE1xq09RehpABC4NfzDj/fsDuLMpoaiswF2qwVuumFWX2XKBO/UnndSVN/Fs6sh5dq3GJvUYrTIA7oA+DhceSankt+vgrVYaU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167579581379615.83395339093147; Tue, 7 Feb 2023 10:50:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pPT1n-0003O6-Rp; Tue, 07 Feb 2023 13:49:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1Y-0003D5-2m for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:49:04 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1U-00018Y-KS for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:48:59 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 317Gmqtb022928; Tue, 7 Feb 2023 18:48:53 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nheytxds1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:53 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 317I0cp8028808; Tue, 7 Feb 2023 18:48:52 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nhdtd3rge-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:52 +0000 Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 317Im35Y033516; Tue, 7 Feb 2023 18:48:52 GMT Received: from ca-dev63.us.oracle.com (ca-dev63.us.oracle.com [10.211.8.221]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3nhdtd3rdm-4; Tue, 07 Feb 2023 18:48:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2022-7-12; bh=uIzEGC0jXaqPYoVhdVCmhjj6OWp+ypUWq6WHLdseACM=; b=RDb+BtelDxxbjN9j1X6AJz9vA94lWxss1LBjVR7wGHuWEgecFT14fdms25PF3vrtnsVp BVY4x7++nxxMI3XyD+52rebLM4IrYx+mA0LlzQFF7SHVFFvrhJEhKynkcOV6Qp3+kPrA m2zC1rHTCifIj7ZUXny3ExdjLOO4qscSw92+LPCpV4WvTQJOwJ3nLwtnLGPa6RWnyQLy yI7R+ZwxnEENUhkwMqwGZlhFjzPTuNW4Ne8vqLk0QAgKB0R6EuKPYBC1B/ML74tpMLfl vH9+82B7RJb/A0lfA1hSsp1nJqR1Y+Xr50ZnflckCfIuMcYE32+5nYFl8gwdKzbD9ILr iQ== From: Steve Sistare To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , "Dr. David Alan Gilbert" , Markus Armbruster , Michael Roth , Steve Sistare Subject: [PATCH V2 3/4] qapi: strv_from_strList Date: Tue, 7 Feb 2023 10:48:46 -0800 Message-Id: <1675795727-235010-4-git-send-email-steven.sistare@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> References: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-07_11,2023-02-06_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302070167 X-Proofpoint-GUID: r7Mcia0PsnZ5DvZuZQlxY0LlX2bijY1Q X-Proofpoint-ORIG-GUID: r7Mcia0PsnZ5DvZuZQlxY0LlX2bijY1Q 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=205.220.177.32; envelope-from=steven.sistare@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1675795815779100011 Signed-off-by: Steve Sistare Reviewed-by: Marc-Andr=C3=A9 Lureau --- include/qapi/util.h | 6 ++++++ qapi/qapi-util.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/qapi/util.h b/include/qapi/util.h index 75dddca..51ff64e 100644 --- a/include/qapi/util.h +++ b/include/qapi/util.h @@ -33,6 +33,12 @@ bool qapi_bool_parse(const char *name, const char *value= , bool *obj, int parse_qapi_name(const char *name, bool complete); =20 /* + * Produce and return a NULL-terminated array of strings from @args. + * All strings are g_strdup'd. + */ +GStrv strv_from_strList(const struct strList *args); + +/* * Produce a strList from the character delimited string @in. * All strings are g_strdup'd. * A NULL or empty input string returns NULL. diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c index b61c73c..fe6bda2 100644 --- a/qapi/qapi-util.c +++ b/qapi/qapi-util.c @@ -154,6 +154,20 @@ int parse_qapi_name(const char *str, bool complete) return p - str; } =20 +GStrv strv_from_strList(const strList *args) +{ + const strList *arg; + int i =3D 0; + GStrv argv =3D g_new(char *, QAPI_LIST_LENGTH(args) + 1); + + for (arg =3D args; arg !=3D NULL; arg =3D arg->next) { + argv[i++] =3D g_strdup(arg->value); + } + argv[i] =3D NULL; + + return argv; +} + strList *strList_from_string(const char *in, char delim) { strList *res =3D NULL; --=20 1.8.3.1 From nobody Sat May 18 12:29:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1675795984; cv=none; d=zohomail.com; s=zohoarc; b=m2blro0uVaWP2NP9+SQ1K76wrkb1IxM2XoAbwYSe56kvTv4Ye/yIb63EPoW5ek1xAOeh95WvcqFKG9EaCnpzLoDO0ffBcikk+S/qGpQz/8vVAirVk0RnCItScnrHYpFvSoTg2boW4FWPl7EYgff49tLr20lDs954DQRAKd6sSq4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675795984; 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=9KvRMO5UjyPNaODrn//m8PsW5PdvuMwBt2tE4uaayns=; b=nee8WiW7vWhUTnGEkLnNE3sm5Alq3rzW8yPmVkEPv5T93QUIuSW9SYO8P1x6hYdWDvf3jlsis6nPlFb813ekjFXxtPSUVvT2zAC1f+Dt7CTDBV5hP+4rPJgfwHYdbq70Q01yA6gYe2Wd+kIgaQ+v/Y42EyqXu29qZJXV76DyNQc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1675795984378110.59470299556324; Tue, 7 Feb 2023 10:53:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pPT1u-0003cF-0J; Tue, 07 Feb 2023 13:49:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1Y-0003D6-2z for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:49:04 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pPT1U-00018h-Mj for qemu-devel@nongnu.org; Tue, 07 Feb 2023 13:48:59 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 317GmfHQ021424; Tue, 7 Feb 2023 18:48:54 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3nhe53edb9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:54 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 317Hwj11028682; Tue, 7 Feb 2023 18:48:53 GMT Received: from pps.reinject (localhost [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3nhdtd3rh4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Feb 2023 18:48:53 +0000 Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 317Im35a033516; Tue, 7 Feb 2023 18:48:53 GMT Received: from ca-dev63.us.oracle.com (ca-dev63.us.oracle.com [10.211.8.221]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3nhdtd3rdm-5; Tue, 07 Feb 2023 18:48:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2022-7-12; bh=9KvRMO5UjyPNaODrn//m8PsW5PdvuMwBt2tE4uaayns=; b=BnqQFkGzWWFf1j8MKjPS5jOmDQzSq/WhZYe8H3nUVuxxXaiQ6AVxmm0d3CN6D4VOhJUe Wc+89CUtBXDQ0Yl+a99qQvQboPBnG2iVghnLmU3/y7XJDLTyldp7WRhxI+71iGFzHQiM FI8OrlV6pDsQuoi1NJ1Nzs7CEeARuMZ2SbK+DcXgeAKAgZk6G8KZYRQiGKACdG+UF1U/ ZeGXSIPXt9KFQjtWjmTpNmmwKak3dKzCHU4SbcZd88OXdAsMS0t58PicOYF/C6Kfmdfw sjHPw9qKUP9DFpQ61J1lTAepKEMxif3zBwn6+KMm8SXFte9MDweyFNlhYHf4pWN36FyB OQ== From: Steve Sistare To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , "Dr. David Alan Gilbert" , Markus Armbruster , Michael Roth , Steve Sistare Subject: [PATCH V2 4/4] qapi: strList unit tests Date: Tue, 7 Feb 2023 10:48:47 -0800 Message-Id: <1675795727-235010-5-git-send-email-steven.sistare@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> References: <1675795727-235010-1-git-send-email-steven.sistare@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-07_11,2023-02-06_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302070167 X-Proofpoint-ORIG-GUID: pbsHC1j1b4gvJG0QHtpHUigESoRpp3Jg X-Proofpoint-GUID: pbsHC1j1b4gvJG0QHtpHUigESoRpp3Jg 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=205.220.177.32; envelope-from=steven.sistare@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @oracle.com) X-ZM-MESSAGEID: 1675795984642100001 Signed-off-by: Steve Sistare Reviewed-by: Marc-Andr=C3=A9 Lureau --- tests/unit/meson.build | 1 + tests/unit/test-strlist.c | 81 +++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 82 insertions(+) create mode 100644 tests/unit/test-strlist.c diff --git a/tests/unit/meson.build b/tests/unit/meson.build index ffa444f..43c3bee 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -17,6 +17,7 @@ tests =3D { 'test-forward-visitor': [testqapi], 'test-string-input-visitor': [testqapi], 'test-string-output-visitor': [testqapi], + 'test-strlist': [testqapi], 'test-opts-visitor': [testqapi], 'test-visitor-serialization': [testqapi], 'test-bitmap': [], diff --git a/tests/unit/test-strlist.c b/tests/unit/test-strlist.c new file mode 100644 index 0000000..ef740dc --- /dev/null +++ b/tests/unit/test-strlist.c @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2022 Oracle and/or its affiliates. + * + * This work is licensed under the terms of the GNU GPL, version 2. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "qapi/util.h" +#include "qapi/qapi-builtin-types.h" + +static strList *make_list(int length) +{ + strList *head =3D 0, *list, **prev =3D &head; + + while (length--) { + list =3D *prev =3D g_new0(strList, 1); + list->value =3D g_strdup("aaa"); + prev =3D &list->next; + } + return head; +} + +static void test_length(void) +{ + strList *list; + int i; + + for (i =3D 0; i < 5; i++) { + list =3D make_list(i); + g_assert_cmpint(i, =3D=3D, QAPI_LIST_LENGTH(list)); + qapi_free_strList(list); + } +} + +struct { + const char *string; + char delim; + const char *args[5]; +} list_data[] =3D { + { 0, ',', { 0 } }, + { "", ',', { 0 } }, + { "a", ',', { "a", 0 } }, + { "a,b", ',', { "a", "b", 0 } }, + { "a,b,c", ',', { "a", "b", "c", 0 } }, + { "first last", ' ', { "first", "last", 0 } }, + { "a:", ':', { "a", 0 } }, + { "a::b", ':', { "a", "", "b", 0 } }, + { ":", ':', { "", 0 } }, + { ":a", ':', { "", "a", 0 } }, + { "::a", ':', { "", "", "a", 0 } }, +}; + +static void test_strv(void) +{ + int i, j; + const char **expect; + strList *list; + GStrv args; + + for (i =3D 0; i < ARRAY_SIZE(list_data); i++) { + expect =3D list_data[i].args; + list =3D strList_from_string(list_data[i].string, list_data[i].del= im); + args =3D strv_from_strList(list); + qapi_free_strList(list); + for (j =3D 0; expect[j] && args[j]; j++) { + g_assert_cmpstr(expect[j], =3D=3D, args[j]); + } + g_assert_null(expect[j]); + g_assert_null(args[j]); + g_strfreev(args); + } +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + g_test_add_func("/test-string/length", test_length); + g_test_add_func("/test-string/strv", test_strv); + return g_test_run(); +} --=20 1.8.3.1