From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 056564012F for ; Sat, 3 Dec 2022 17:25:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E3AB768B929; Sat, 3 Dec 2022 19:25:00 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2045.outbound.protection.outlook.com [40.92.74.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D04F56880A8 for ; Sat, 3 Dec 2022 19:24:53 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TU8jwZAyaOq5zbouWkgmuKaTaXpsTm1BAQBRrDGwl+E1yvxw4wXZVU0a+OfW1mTQs0Lz7NDIM4bjBISe9deS1qWBc02BGn1jkgYrgKwcUpvJppMHTIQxqKwI8oX6C8x8ZmMAFMqQxW1EK/eKh4xJcEWS1N18Ku2oN9cq1SqCM/gnU3J6036AZwWIK3EEzTDaOqc45GATmY6Gs6+EOxYDzOyiWrFdJ4bKRmZFrhnU4Z0p51ueqbPLLcfic0o8vjVo8cVyLhJQEdE9q/Ww7SZmIUgeen2l0RmF7iaaPCCLM0Po5oXYw5iv7YOpX6t9Dh2h3xwON6UJ3z28b0XieTwMfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oteLxuMWXWggtXEz1greW8WUlA/TQ+gCYYKhnPLNzg0=; b=FU6SOWv385ujVbbrSqWlh3YhR3XAWk6nEDHa9nXjmljp1p+OQ9BnjeCuLx+lAVkX1DKI93K6A5VakZ/gO8VaMEknr+W5Wi0Sdza1O1YAR16ogugsIrsSjTRWToT2bGELC+LoCBi8FsxxwCsMC4LNZH0NbiHysuzIFYkSylIscqDJoW/XYT+cOuzX3Y+3A28cRfFQe0HGVfHtucWwuGKUrCnXdILgeutuOFQjOEg4PVo4u2NNzEY2u8xfbaQjcsrNgrGWk9fIcfiAsb6E63C4TMIgIqBS8yWl+H81PCwkA94gP6MrMqIAIX4ajll+WwDqSW9nCs32/LmTedPc1Y53TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oteLxuMWXWggtXEz1greW8WUlA/TQ+gCYYKhnPLNzg0=; b=IylIFv9OnWOtOa6LKW5enzp/gGbKux1MzD2fk3eec+rpK1aYhijZnc9/iuh1a3Sp2p7YP+VeaIIR1ogyjbqnTPMWMeUhDg1DahXaC+5Yos+YhPeeGHj0/BTLJc5KjaN+agvTMEpd3jrfC5E1ASFhgPzVocmXlAayXNpF3SY5bMiNOzlQyDe2vBU7I8fRMaOAg3A4loKs5rVqekzhFlk9XHNMDYlq98lOKklhE62F52jiK5K/Br2krqZ8cnxRp8Fxj0L2wpSC2OQhjUxihzekVUfNzjFtRtwfXokO2cTirHHFF+pdEcjqDifRwjktsa/TZRsBrIkfzRSx4KyrlLTM1g== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DB9P250MB0474.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:33d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.11; Sat, 3 Dec 2022 17:24:51 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5%6]) with mapi id 15.20.5880.010; Sat, 3 Dec 2022 17:24:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Dec 2022 18:25:04 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [ZzrhiDu293NvvnRVVauYbbUpW3ixTsci] X-ClientProxiedBy: ZR2P278CA0037.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::19) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221203172504.530150-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DB9P250MB0474:EE_ X-MS-Office365-Filtering-Correlation-Id: 7652bad0-bf8b-4e2b-3ced-08dad5534912 X-MS-Exchange-SLBlob-MailProps: znQPCv1HvwXNoe4Ah95Dv91QBaTPY6yPmcY4Zy9NljV9r6kd+ekTAX5QW/SaPnD1ZgBWAQfAa4H1XXgBCmm4M+T1Hr+V2wqO0TrV1nQj/OxSamRD0ALnjEIPVhbG6E0VLUvJ4st/vc/aOzZGnQfH9sX/iMg/QBQtMPecWU/sKnJ0LOExY+LFwtfUDajsSPCJxCiFA6nWvpJo+OaCb3eVDRgWodfwnmUGO7YuBVnyPpEJo78rAImF/WAcz5j5HU+F1CuU+hOCEi4fGwTX+ke4UsuK9wrNrNkTrw0F9b5jYfzKoERhW7GK/tZ4Qoyv+h7mna4wKSEZoAc7ohpmUxNJURgA9NJGI7QMXIB+ov+8zz9Fmggq+uHckZA33kkk2QvpZaYUMg7gIdSvKPTxYDtVLb0P0ABRxuSgiR/e+wKbkPZm0TvbVHzF8k10W+SYVr58Vxp4A3loMIVGDvoBWIqqz5EFfGW3rPsj1d9cCZ3jqY3LiHbuV/QoOsxJorq4UGMJ5trbs1WiNcF57wFZRnoxoX14C52At5WyYjN7wkR6KkZVOnfoT7AhoLIBYdNJpjhLQZ2tvO50KUFSTUuEg/IQ70qfMRHoYxZ5J9DEFaZVXF4TfAa8ZEj2LttnaK7UT/4sQrEyzTwUBznojgaGXMatu41JGa7gno+Syw9ZljDr5elDz7rSIV/3cVTBaQXVuUf8imW1j4Uv77Ij0mShfXICybZF+8paPnoJe0UXuk3DxOotYtMknBFdFBbXfEgiaqSA8Q9OZlY3wXo= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +v0SF1OoHhg2De/GpdrKuPHB+vBIMga/4W8ZgG4Be4UWMr4x82PdlDfm+5ZLRhiam1Wdqk7MMwsu2DLmhA28w7ZjpYZHswtsVP+TRc1R1bnvInvb0cU9nQOaSx0lKBMjcr1HMpyctfO5JGAVY54kCtTKxuwHcg3BIybbS/jQdypBEV83LustqtKs8yWIlWKGdrq/u15pqLiQKQ1Jj9IkzplGm8iAphKKjdTIYiGAdWrUcQ8Qi8MWkjX1xDZPzAvYMmIWsQ2lFdkbsNicAs9y/nQQssFPnhbl6v59y9VbsYNQW2MsDQGYav2tbVYIJE4RjgQAPBWXc9/1cEmhVhgUxeYnIu4qKehwZ1QSxzoUGcVd9K5lzcIZo7MlKFuLEIuFZ5618VRaJX39+70yxxUUu4ilWcKZ5S0B7YIuGiAEuUUMLpGE6GqpRF5R+KeI4gy1QyyuADMItCzrWMpR/VZFjfDrpNkpcSWuJmgVJZ4iDOzEIWUlppWo/fMTL/fztSH18Ls1mHAH18O3Ptl9O7AwwO0Sv2uD4rLBzj4G+xPJdRlXoJNlKn7hsb9aEl4CQ0foinNTVYgv8TSxhycP5Hf4GvVWrTKC6GwkUTp9tnUHHEoGip00TfFn4L+Ewhz5J4GLVxNJ7bXRe2NYcmhx6td+CA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iN8yHCD1pIj8gqWdRnAqvHOkh98bcvXqKTjgFOP0YytfEYeNF/Figb8TeXbe?= =?us-ascii?Q?/ZNn8MHaIDWfZO09mXWPTgbM5wWLCjKQiWAMaKxc0tCXnxuBfEj7VRfX12+0?= =?us-ascii?Q?w3Cyb4t6gWub3RrTfVLS/p0VZiF+Ooeuc7tT/U0AkLpkb2vyuRdSqgaNn/NN?= =?us-ascii?Q?+Rz6ALfmc+khRCxwTv0crKKDgHc5iQEiT46ydq5D0uPb0JmXI5y504EwXAdW?= =?us-ascii?Q?wVUOf4RgVS120Le5Tuyk6pelNFcXIcJoh3ezHVc9TNOEkPr6kB2v8TmrdhDk?= =?us-ascii?Q?j+nwKvev+wPB3YcBpxkaiI2/JySMzbYJ50PbwbJtH/OL0PrI0IRHgLwTnmYB?= =?us-ascii?Q?gtDZQ9usnNV64Wq9C+YXCdO9pINZMUV96Bif1J7Yq4mtcfO1wTZXPZCFp4vF?= =?us-ascii?Q?wffUedsHM0Nb3D1+dIVe5zMwznr3d5Du6Ubi9mLlQQDOKnIav2jxQ5Pet+Z1?= =?us-ascii?Q?rPawFeHl5z5AF6qj8/xzqer2vtYHDAJ226PWqS5THK3zM715biFqBEzpkUbn?= =?us-ascii?Q?VGDMrFK/MWMiUCnVMlC0QzoKWyzQd7b/J3eAmpfJuLbc2XcOVVUKV8BViFFh?= =?us-ascii?Q?85lYF5zk6mNmIbQm3bSzdeD/g53NmWmUTe1mkLhKaLMk6xqWlRaT649MR22Y?= =?us-ascii?Q?BXh1Ck584MgXZAhKbYLSP5Q1hyRSaTFwkwK3fzJ54PvnJifSFrEWcU7LzlmA?= =?us-ascii?Q?FVRltd0uB97MUzD2M7UXC3f7nI8d0+izKSdYOfTTffgVt/xaHfJ6m32Vahdr?= =?us-ascii?Q?3XDPpF3ypBDpA3s920wlwGJkn9Ae34UO/4pNfOUrHhZR7xTf+nv0m3yh22Uc?= =?us-ascii?Q?/cPHKg8b+C6DKcoSZ4tDFPua4pwbFJqjpWn0yE0aqtO5ORHHAkktxQ8IYjKe?= =?us-ascii?Q?zc+q247ol8udSl8lVTxZ6vReLI4w4CnGuUZlm5dmTUHObbGL9CBEKcNBmfiV?= =?us-ascii?Q?sYjLAA/PrcvLB/ITEC94sa2MS88hS/pH/mhJIqjoVKrMeq4aLU0CnP+pMaDd?= =?us-ascii?Q?DUQzxoc23EeYiHdfNre9MjyrCQRbZhdOOiOKkoGaoGizcl3WldCQ3mQA3EuL?= =?us-ascii?Q?Nbo6SplWeNy4oaQjHgI0rP6INnrr19Iacs5Ql5D9HzA7cQEEth2cN+hNLWQh?= =?us-ascii?Q?311kwB8LwlrmirB3T6mVyqK1feWJheTHxjbiLBRU5NVf/A2Qz0bBER57Oo+h?= =?us-ascii?Q?tCDEYzYnDMXFbRq9c2Rpdg5yvD63iHyLaIgaRiCnN+RzXJb7lIYBecvJD+Hb?= =?us-ascii?Q?pqPeSmJbAEtyGJaptMaWPJjdyexQxzilUeCLYzjZ9Ku+RPEmbHPne5ssuetf?= =?us-ascii?Q?Gvk=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7652bad0-bf8b-4e2b-3ced-08dad5534912 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2022 17:24:51.3936 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9P250MB0474 Subject: [FFmpeg-devel] [PATCH] avutil/tests/dict: Explicitly test av_dict_iterate() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This commit tests it in a way that automatically checks that using av_dict_iterate() is equivalent to using av_dict_get() with key "" and AV_DICT_IGNORE_SUFFIX. Signed-off-by: Andreas Rheinhardt --- libavutil/tests/dict.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/libavutil/tests/dict.c b/libavutil/tests/dict.c index 91567289c2..bececefb31 100644 --- a/libavutil/tests/dict.c +++ b/libavutil/tests/dict.c @@ -20,10 +20,30 @@ #include "libavutil/dict.c" +static const AVDictionaryEntry *dict_iterate(const AVDictionary *m, + const AVDictionaryEntry *prev) +{ + const AVDictionaryEntry *dict_get = av_dict_get(m, "", prev, AV_DICT_IGNORE_SUFFIX); + const AVDictionaryEntry *dict_iterate = av_dict_iterate(m, prev); + + if (dict_get != dict_iterate) { +#define GET(entry, mem) ((entry) ? (entry)->mem : "N/A") + printf("Iterating with av_dict_iterate() yields a different result " + "than iterating with av_dict_get() and AV_DICT_IGNORE_SUFFIX " + "(prev: %p, key %s; av_dict_iterate() %p, key %s, value %s; " + "av_dict_get() %p, key %s, value %s)\n", + prev, GET(prev, key), + dict_iterate, GET(dict_iterate, key), GET(dict_iterate, value), + dict_get, GET(dict_get, key), GET(dict_get, value)); +#undef GET + } + return dict_iterate; +} + static void print_dict(const AVDictionary *m) { - AVDictionaryEntry *t = NULL; - while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) + const AVDictionaryEntry *t = NULL; + while ((t = dict_iterate(m, t))) printf("%s %s ", t->key, t->value); printf("\n"); } @@ -94,7 +114,7 @@ int main(void) if (av_dict_get(dict, NULL, NULL, 0)) printf("av_dict_get() does not correctly handle NULL key.\n"); e = NULL; - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) + while ((e = dict_iterate(dict, e))) printf("%s %s\n", e->key, e->value); av_dict_free(&dict); @@ -106,7 +126,7 @@ int main(void) printf("av_dict_set does not correctly handle NULL key\n"); e = NULL; - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) + while ((e = dict_iterate(dict, e))) printf("'%s' '%s'\n", e->key, e->value); av_dict_free(&dict); @@ -122,7 +142,7 @@ int main(void) av_dict_set_int(&dict, "12", 1, 0); av_dict_set_int(&dict, "12", 2, AV_DICT_APPEND); e = NULL; - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) + while ((e = dict_iterate(dict, e))) printf("%s %s\n", e->key, e->value); av_dict_free(&dict); -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".