| Message ID | 20260407124122.2810562-1-torbjorn.svensson@foss.st.com |
|---|---|
| State | New |
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 6098E4BA2E14 for <patchwork@sourceware.org>; Tue, 7 Apr 2026 12:42:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6098E4BA2E14 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=foss.st.com header.i=@foss.st.com header.a=rsa-sha256 header.s=selector2 header.b=ahZsuNK6 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012049.outbound.protection.outlook.com [52.101.66.49]) by sourceware.org (Postfix) with ESMTPS id 503B14BA543C for <gcc-patches@gcc.gnu.org>; Tue, 7 Apr 2026 12:41:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 503B14BA543C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=foss.st.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 503B14BA543C Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=52.101.66.49 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775565699; cv=pass; b=GuP1PzIL77qrlUj4mDyg7MMVfnJMmFkhsUK4N75YV1MNfdot0fUBWFy2QkIheBuS5cBeVs30q4xhfLXvR2pAOQgLbgzaKj9Os7MHuBMDv1LGzRuqM0ip8dtWZUIUDpPw4AnLvNPDFtLwzBeNeTF00rQLhLvlYZEY4RaoJXh9KUE= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775565699; c=relaxed/simple; bh=zr1ngwLmOcYY7NrI+KSNkD7vV6EyUquYS2NCFn81nYA=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=D8QUX7Knqa34rUt2BnzqgaUUrlCdgytZ3mauY1jLzdhnEWjIHfPS6HK8Nz1Dc2xBM+YHqV9D7ieL/0pGCi2FoStXYVrFWheqWA0Yt18ep8O4GX05Ix0U/RGcLvBmLctxMtAKXU+7Mtb//u+OJPIhzML03gf3Xg7sOiti6wpObe4= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 503B14BA543C ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QGmwzsThLEZ5QBwUeGdMpxK0AEXJSwtnn9gy+TVCjMeaE7HvJULeK1jSq/gg5/leqI2I7gNEb7bc77dyNdRu/DLs5PZRHmQBBRyttnOg3WxhQIVNAxhaLjIZC87fB8jmXc2slush7P7FybtoTGSry09n02HhXiRwb1KBRvNIB0VYOtD7n70TOCB8f1+DmvJDQYAbpSxOtq2WC/9ZyLyfMSPKvsjSO9/YEklpOiLJzzouCW5ML4mRe3xzqmRClUf+LpcB8S4/R1jZpbHh3HMQIxT8fEIU7V1KulZdC+0hx2InZQqtKCtl5dFgn36KoYdU5IR8RW67QD6iAXYCCBYrUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=2gGOLaeF3qIFIVvhrAlTkvv6Z1m/uuFc5OWB94/lDCw=; b=F56hz1Kt0IuMUnABKXmTpm20yKmEaKNFm0BYzmUwbh+tbKuNwbXlg7/mgL/IzfIm7Cv40HOabZZrq76sWDRyyFQUTrTEKC+G3tZMNcMdmT2truIJyDS89K5RuLqqDcWT7qdKt9E0Y11zTP5rZB2eIKwleB5+M+FGNOHmkG6cTm56tR4/44cO305SCz5yGf/OChzjlPJ2nTOTo9jgiB0VLafxatyTXdMej4Qe471kuw0tJ3dN8q51kI9B7smnj2BqgDgoXd5TejFqBzGwIxtkk/I07mAWIfr9QVJ818uB5/2X9CNysUtA2EAO/LfU6fxQ4IMgF5895ZQX9n6P5kmXlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2gGOLaeF3qIFIVvhrAlTkvv6Z1m/uuFc5OWB94/lDCw=; b=ahZsuNK6QDtfnyZloTjYILmlQk5Ss8pb/Z9UYdaZ0MB8ltdgQdmm/ZAG9A5NVO60hQw/7Tcu2DWtMjVF5A/IvPF7u/e8+2pMNjvbl3vLH840KZzUm/PDtAuNR6Es/gIyaMU5hvBYeeOzpxRemrWNROeC9NEkNnf1kaaGj2gCTmwLH/wAWnHFZMl0nzaAIWCq4iOZTVM/6vt7fjJtaXo4xq7txNQngDWs8fAr7DG2w2uno+9Ftv1l3Nf/snryRmKnMOXWlcU8Ce0KySkwEa++qvGOWhDA09wn/5U5sBH/Tb1bgdhpBHgnyO6/yrUVHIagxk/GSwitkRSc/CZlEdp/tg== Received: from CWLP123CA0202.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:19c::15) by VI0PR10MB9301.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:800:2ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Tue, 7 Apr 2026 12:41:35 +0000 Received: from AM4PEPF00025F99.EURPRD83.prod.outlook.com (2603:10a6:400:19c:cafe::94) by CWLP123CA0202.outlook.office365.com (2603:10a6:400:19c::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.33 via Frontend Transport; Tue, 7 Apr 2026 12:41:35 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by AM4PEPF00025F99.mail.protection.outlook.com (10.167.16.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.0 via Frontend Transport; Tue, 7 Apr 2026 12:41:35 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 7 Apr 2026 14:44:37 +0200 Received: from jkgcxl0012.jkg.st.com (10.74.22.122) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 7 Apr 2026 14:41:34 +0200 From: =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com> To: <gcc-patches@gcc.gnu.org>, <rguenther@suse.de> CC: <ben.boeckel@kitware.com>, =?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com> Subject: [PATCH] testsuite: get a predictable ordered array for comparison Date: Tue, 7 Apr 2026 14:41:12 +0200 Message-ID: <20260407124122.2810562-1-torbjorn.svensson@foss.st.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.74.22.122] X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM4PEPF00025F99:EE_|VI0PR10MB9301:EE_ X-MS-Office365-Filtering-Correlation-Id: 322f1945-cb92-4ce2-3d2f-08de94a30118 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|42112799006|1800799024|82310400026|36860700016|376014|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: NsVFHU/1nt8YoKOUOAa56bBaNY4Ai5MZJcs/xOoNLSJiHigoR7cKxPTdc10aQhLLdaNl9uYfnA7stFRZk2jNuhCH6KXbMO+zS7yUdhFhMEU2hIBOOJnTrc4Va7eUV/W17X4e0zrvIPNe2Q2QypUz6KJ4NnvtgdtBYdcq46MFYHBQEnEzqvayQpe8t4ZRVs1GyG3Ee4SRAo9O1IX2QRyjhl/7Al3y+IVqC+r5Zdk2/fkRbBSks0qpyP5lXfHdXV9mr/0KlDNKzfPC4SYtEnAbBU2Eh4wORLj6riaNfX5nSQOs82iZeRqSXu+xcxr03FdDc7vhV9sgQyaYKHRxMScQqNJutLI86v+dy9FKFmAeI4gQWXAg/GV9hWoAvqB8AOFzhI3fN0LRDoaIwjE1CcEqs8Ka2JOdHZ3vcJ3Z/Xu5xN1+xHh55vPZwKhZiL0LSyokvuRBym998lY9IWx5OXRX3y93Vhz6Wj/3shqoSIP0XAubn1XWY8etY5qoJMcmd+v1PjoI89wTpVGVGYnSZiLTevaqMRbbnmZx+Z5XG08qsqDqxCjPM8ebiflPOn4msxVp4++yE9UgYtvCMoCqWDUbeyEMrRTFBls7sgLktbUiY4QGkQe4DsW+qIwJFvgWf7V+hMszBGOxCtI21w5zFKUJLyf0PH6N7hSKv6mfK5HsC0LS1xRD0ym6tvwgPFWQRTKOJpmKqdyqzf2qM3mLPp0VLnTmndnKjRWB2cAXQEhPE7n1LPB+ZQUC7IYhEHWRchH+2yYKMfNmJxw6j0mAxGiB0A== X-Forefront-Antispam-Report: CIP:164.130.1.59; CTRY:IT; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:smtpO365.st.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(42112799006)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TmunKCEXhuW5I6PbX0ZQXzV35obqJZYdEE/BJDMFPOp6sCfsLpDJPiMWFaIv6tc1Git4SEwHJib5gbac2QejxuJ7taJ5eOcPG3nbvy3ulycFgoOsYANTIllMPjdAZNWOB57EuuqT8odoY5ol1LHjP+quXSUfh9WnwwRo/bmws3zPy1mivxU0U/5IAwsD00Bz+gc3rW/UzLE1V/lxAHFRWcb+yAlG0PSk0bmTp54IYM3c73QZkMIUyl/bMo69JGYF7nDDDBbrJWILtFmnxgAIvLpejMky1ktlsBXLBYbTHApf7P7pqcIP1y3ab6rTavHWzFdf+9zJuKy749ogvQ8fpUgTqwkzyK3B0Aka0z7YNZ+20JLn2tKf4VxaqkiigRyf01tgc1hixtprijkWQOU55O7/RkYOnRx5omiApSJkBW5kZCokfT6zO8W/hLyUwkSn X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2026 12:41:35.1286 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 322f1945-cb92-4ce2-3d2f-08de94a30118 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; Ip=[164.130.1.59]; Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00025F99.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR10MB9301 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
testsuite: get a predictable ordered array for comparison
|
|
Commit Message
Torbjörn SVENSSON
April 7, 2026, 12:41 p.m. UTC
Ok for trunk and releases/gcc-15?
--
Without this patch, errors like below can be seen in g++.log:
Traceback (most recent call last):
File "/build/gcc_src/gcc/testsuite/g++.dg/modules/test-p1689.py", line 220, in <module>
is_ok = validate_p1689(actual, expect)
...
File "/build/gcc_src/gcc/testsuite/g++.dg/modules/test-p1689.py", line 149, in compare_json
actual = set(actual)
TypeError: unhashable type: 'dict'
To avoid hashing dicts, transform the elements to string representation
prior to sorting the array and then transform back to objects after.
gcc/testsuite/ChangeLog:
* g++.dg/modules/test-p1689.py: Make arrays have predictable
order.
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
---
gcc/testsuite/g++.dg/modules/test-p1689.py | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
Comments
Gentle ping! :) Kind regards, Torbjörn On 2026-04-07 14:41, Torbjörn SVENSSON wrote: > Ok for trunk and releases/gcc-15? > > -- > > Without this patch, errors like below can be seen in g++.log: > > Traceback (most recent call last): > File "/build/gcc_src/gcc/testsuite/g++.dg/modules/test-p1689.py", line 220, in <module> > is_ok = validate_p1689(actual, expect) > ... > File "/build/gcc_src/gcc/testsuite/g++.dg/modules/test-p1689.py", line 149, in compare_json > actual = set(actual) > TypeError: unhashable type: 'dict' > > To avoid hashing dicts, transform the elements to string representation > prior to sorting the array and then transform back to objects after. > > gcc/testsuite/ChangeLog: > > * g++.dg/modules/test-p1689.py: Make arrays have predictable > order. > > Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> > --- > gcc/testsuite/g++.dg/modules/test-p1689.py | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/gcc/testsuite/g++.dg/modules/test-p1689.py b/gcc/testsuite/g++.dg/modules/test-p1689.py > index 2f07cc361aa..b9cb3ebfc32 100644 > --- a/gcc/testsuite/g++.dg/modules/test-p1689.py > +++ b/gcc/testsuite/g++.dg/modules/test-p1689.py > @@ -131,6 +131,16 @@ def _inspect_ordering(arr): > > return arr, req_ordering > > +def _get_predictable_ordered_array(arr): > + if not arr: > + return arr > + > + # Convert to list of string to get predictable order. > + # Using set() here causes issue with complex arrays > + arr = [json.dumps(x) for x in arr] > + arr.sort() > + return [json.loads(x) for x in arr] > + > > def compare_json(path, actual, expect): > actual_type = type(actual) > @@ -146,8 +156,8 @@ def compare_json(path, actual, expect): > elif actual_type == list: > expect, req_ordering = _inspect_ordering(expect) > if not req_ordering: > - actual = set(actual) > - expect = set(expect) > + actual = _get_predictable_ordered_array(actual) > + expect = _get_predictable_ordered_array(expect) > is_ok = _compare_array(path, actual, expect) > elif actual_type == str: > is_ok = _compare_string(path, actual, expect)
diff --git a/gcc/testsuite/g++.dg/modules/test-p1689.py b/gcc/testsuite/g++.dg/modules/test-p1689.py index 2f07cc361aa..b9cb3ebfc32 100644 --- a/gcc/testsuite/g++.dg/modules/test-p1689.py +++ b/gcc/testsuite/g++.dg/modules/test-p1689.py @@ -131,6 +131,16 @@ def _inspect_ordering(arr): return arr, req_ordering +def _get_predictable_ordered_array(arr): + if not arr: + return arr + + # Convert to list of string to get predictable order. + # Using set() here causes issue with complex arrays + arr = [json.dumps(x) for x in arr] + arr.sort() + return [json.loads(x) for x in arr] + def compare_json(path, actual, expect): actual_type = type(actual) @@ -146,8 +156,8 @@ def compare_json(path, actual, expect): elif actual_type == list: expect, req_ordering = _inspect_ordering(expect) if not req_ordering: - actual = set(actual) - expect = set(expect) + actual = _get_predictable_ordered_array(actual) + expect = _get_predictable_ordered_array(expect) is_ok = _compare_array(path, actual, expect) elif actual_type == str: is_ok = _compare_string(path, actual, expect)