From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id YYawHTZmqGmERxQAWB0awg (envelope-from ) for ; Wed, 04 Mar 2026 12:04:54 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=AOR+53W0; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 721E11E0DD; Wed, 04 Mar 2026 12:04:54 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id AB41E1E089 for ; Wed, 04 Mar 2026 12:04:53 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 5779F4BA23D5 for ; Wed, 4 Mar 2026 17:04:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5779F4BA23D5 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=labware.com header.i=@labware.com header.a=rsa-sha256 header.s=mimecast20220511 header.b=AOR+53W0 Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.129.114]) by sourceware.org (Postfix) with ESMTP id DFE8F4BA2E1C for ; Wed, 4 Mar 2026 17:00:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DFE8F4BA2E1C Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DFE8F4BA2E1C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.114 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1772643630; cv=none; b=INGF5P1SZtJus5UBk+yqh68GqnD6iH9I3FinNYVW07hxzTLYYosPWbG5kts9NAiefFHNip1EbY9N6Md1ky9nVnt3y8qRPlMAWyCxtREOV9v/zsVpcZMtpHNrFbP7zA73ateFpMAmAWYnPA/rWMErW4EO+L3ptgTYLHe+x3W5M8M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1772643630; c=relaxed/simple; bh=1+T/RtL0ucVpHJ/1aEcWTBjByIfX4DrOJ6iuwGfNPVQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=PSEjbAqo0OQrzVyAjFg8eg8r8cprNr6fcgdGguf5h1QTivKYtkop26m5x+JKQGBmeZ0Hd2Tz7Do+6AEgYc2nTJd5VJckPdTQGH9A8NeF2VQJc1mv48qDzdUIdkhLoVy9J1Az7ATl0tpR6azwfnGxCwCfN8WVfq0e2Ta3P4ty0tw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DFE8F4BA2E1C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=labware.com; s=mimecast20220511; t=1772643628; 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=RSFMKLDKUuPv9bj/HKp7PDp+YMptyYOT49YZJBAzc1c=; b=AOR+53W02qngPuLjA1KizQKdJWqcVw7mu8w9zAT67sfVVbvuNJDVpC3u3zCsmpaL2clO3q K/dwchf+MshEWJO7jLSyD0RQRFr/hY+iwE5cy0D3O0oqxkfuyIrLU5xT/LHvj+Z094+40o WhiRvLCVvIYKjkvOs/W5YUEV/PatfU4= Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11022136.outbound.protection.outlook.com [40.107.200.136]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-629--cnZhGqUMrSl2CrM3uWCmg-1; Wed, 04 Mar 2026 12:00:27 -0500 X-MC-Unique: -cnZhGqUMrSl2CrM3uWCmg-1 X-Mimecast-MFC-AGG-ID: -cnZhGqUMrSl2CrM3uWCmg_1772643626 Received: from SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) by IA3PR17MB7264.namprd17.prod.outlook.com (2603:10b6:208:51c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Wed, 4 Mar 2026 17:00:25 +0000 Received: from SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e]) by SA1PR17MB5365.namprd17.prod.outlook.com ([fe80::9a:538a:fa42:730e%3]) with mapi id 15.20.9654.022; Wed, 4 Mar 2026 17:00:23 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [PATCH v2 7/7] gdb: add unit test for blockvector::lookup of non-contiguous blocks Date: Wed, 4 Mar 2026 16:59:14 +0000 Message-ID: <20260304165914.3209106-8-jan.vrany@labware.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260304165914.3209106-1-jan.vrany@labware.com> References: <20260304165914.3209106-1-jan.vrany@labware.com> X-ClientProxiedBy: LO4P123CA0170.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18a::13) To SA1PR17MB5365.namprd17.prod.outlook.com (2603:10b6:806:1d8::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR17MB5365:EE_|IA3PR17MB7264:EE_ X-MS-Office365-Filtering-Correlation-Id: 320d1afd-8977-450f-d562-08de7a0f863a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014 X-Microsoft-Antispam-Message-Info: XmVntQQy+2OQen0+ohYi/jiLufgBSvm5xlzR7geTipoFKbzlN3pn5N0qYzoaDv2KLNMK3E0uoz3OND0bQ/DLS1SwJUbX6E8giJq6onbRlVjnIYrMiJC0huA9lbB8dgmWa4pYg2Rn5SJKewg7EMzqOvIIUXAmFZpgAznbmbMl+uDBjz1LtJWk5PLueOYtUjA/P3vMwmI1qcw0dDIVA6ZEcVokNJsqRyQlogBSVeR+lNPJEQx/zPAyhwhNktqw/NUaZbRt7EN534yI4+JUiW+Cj950HYuDy3bhjeh1nWtQ/NEX/VgiW5e2yYqYZW+m+mTDKugZA/ezOxeQg1dhezJ5sNgLMKCS+/BYz57zbae40HUB8at1TEGc/HgZhX4mG9ji/D4brfBTDViNGCVOY1SrUvQ6NdMZSbVta68MEx1Clm94g/gj4zeLvhh9Hhf3MRKZa9CffL4aCuqs7QTwGAyRdxIpG3aIUXejDFm16O6DtpWW21m4ogAc+VyFIgbJkIrHRn81aHahvae2FtuCFAB8nnwuxqabG1N+fkSCp6Nla034/hch7ixBVi8ixoz6V06wxef2gyR0Vlodu0O6h46bSPOFX06UWJu5qdmFR6zssNAcOzEGbMJxfP/le4gedTOkaMLtwk4FfWLmIotadoGO62dhIOPfBaaJsN0VcXWW9OrJi+1bMOO1RKJZKNf7eFFpdWJXXUDelil5gtiotwL02bzRxH+JJie8gFfwhzqKv0A= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR17MB5365.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ourl0/1+5kk+h2fiauZRBPhzF7IRM+mKhAljq6Y0xajmly5n5OPH469LG/yl?= =?us-ascii?Q?r7yLIIhqmtrFq90+M9N6DCNRsF2Jc2Xx+qbpoKTAYJ3u23XXzJId2HHJxDkA?= =?us-ascii?Q?ybAeQas8GkhlZgy002/q2DxEHMsREv7N7QIZ33YsjOqSN/0Eqa4htW4AKpS6?= =?us-ascii?Q?k5nxw744xZazM93FwObvZSFJf+KwpmQAw1VxFFWdhGNZM9PtOloavOLhwR7T?= =?us-ascii?Q?5lelbRbF4D3fZhT0QJDElS55C/DDQMPuymxCSmHacET2F6uP/gAxSLosHIa2?= =?us-ascii?Q?aao3deE5OlpnAgzkQ9GLWCE8ohB6gaVGphrsYqSkmhUjUO7uqu8R0C+zmabf?= =?us-ascii?Q?y37KXMimfDOCE76EVN42EZ2xbC5o4SYOq4/CHWpjQgTsMMbfBk+kwtVphDaO?= =?us-ascii?Q?cydFbKBTq3Q3Q2JU19xMlLerh2w/Ta8wN+OQj7lwI8tY/neir8AQfrGvN2bJ?= =?us-ascii?Q?QZphwOQ3fudxOzpoGUANPCkdDGSzs/ReH31MERmElAX331bfGgd9hcM8k9O/?= =?us-ascii?Q?b/vmVb595MLy7yMYQuHSLnTIPK/ZIwC8jZAj75g6PD5OocvhaO4OLK1sQP8C?= =?us-ascii?Q?3A1gJlV6+jDK/BTKce4YOxHfobZumGir5Nn93Qf+Z06w+UZSF2YQd9EqhAux?= =?us-ascii?Q?vk4xVLTLJCDbSjS7mCugxBk//IIaEWZoaQG8QNy9lkULMDW4MP/4ML2WhGGP?= =?us-ascii?Q?BxhKwO6bRojMLTY2ZTBeCGrgb0sEi8bveWngbPfFoHBLVdpCDAQ2FI5/OfaH?= =?us-ascii?Q?Qvkx903iuP/qmcRSgmX8f0gsn5HUKGut7TVMdsCgZGxWMTAGj1YyijQjhnSd?= =?us-ascii?Q?J93PBJBlgyYa4TAcJMgb8J+6/Gad5cQRadb8hfTh40frwkpQ2vf+QdQ7AZkP?= =?us-ascii?Q?qliw7Fz+mLfLNvdsuShV//ZUYI4YZYd9Z0ttBum6kRtk7gtANBpdQGE4GVAM?= =?us-ascii?Q?3N8+AbjpfZlODt1alXRMyqQiZfa6BL0yPiDZUsnOtxjdZkeW9q6r04ftMZ13?= =?us-ascii?Q?8JOK/vtjxBEQMUF/yWArGxpS2xTtE8LTnXkIBJ7JJV3Dm1+CYbXyRaJsFxtw?= =?us-ascii?Q?M6DugubhRtE10ylKBLV6KAwkldLkfrkxE8ib/exJvPCpoJ1vInAJoWj1VMbr?= =?us-ascii?Q?lIsTMi9gFGEZb5ijkx6l9E9wwwVddOtUgowTXhDPALXRDxAGcMpTsls7IDYh?= =?us-ascii?Q?wL9IiGCgle7qShFlvtUVgHQEg8wn9dXtBq6MkEwt16kQ7DZT5Cxw3cuuDnyW?= =?us-ascii?Q?HKKT9xYYcDNvPGy93hrDmo/gQcSq4AeyvZy9R9yJtZwyqotZiw5oJ48osii9?= =?us-ascii?Q?5F4YFPjqLAa5NDdWjBcAekdI98YI11lbXt/Z0T4r2amBWhti+4Otpr8WUqUg?= =?us-ascii?Q?4TlsvmM/qud43oKYE9DZzKQb+lz37NKyBCk2YDrV2XmuqPu+SnEDQiYUh8MH?= =?us-ascii?Q?SKYGc/q8IvCx8mTZbNb/biVbE1vOZ6cPr5yfhEr0MjS6Lma95CTW7zxTJBnI?= =?us-ascii?Q?4TudLxgBVFRdUoparFLeJlQcLZPBjpFL0wRALYZd3mr5EkL6caKOwjQnVu7g?= =?us-ascii?Q?K5IZgRU0ul6Kdx95tyEtIGvi1UUOpiaoISPlwVkv/hvvK84gkrHh9HBdKYAU?= =?us-ascii?Q?T7GsUt9uixU5B1HcODF4QCk4MfGeXQrDJrCptCUaotAG7wJyHv5dM0vq3mxL?= =?us-ascii?Q?+FMTwKEyliYKcr7PKT1AWI8wHqikc6WBny6EWqRRjPso0AZnuUQYZskxgZJN?= =?us-ascii?Q?TakBoDFMvw=3D=3D?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 320d1afd-8977-450f-d562-08de7a0f863a X-MS-Exchange-CrossTenant-AuthSource: SA1PR17MB5365.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 17:00:23.1209 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IuvU73mPeicKiXHBYb4xvFHefstM/2NvI0CWQR3v2F6qb9RUsmkC2tonjEXhXqLX/hvLiFX0RCCmoMXvrjjmdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR17MB7264 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: KqgoCimrOM455-DC2NJOTXzqnh6vbwBKltR1kpR021Q_1772643626 X-Mimecast-Originator: labware.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=WINDOWS-1252 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org This commit add a new unit test that tests block lookup when blocks are non-contiguous. --- gdb/block-selftests.c | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gdb/block-selftests.c b/gdb/block-selftests.c index 77b8d67ded8..c41a9ac7e82 100644 --- a/gdb/block-selftests.c +++ b/gdb/block-selftests.c @@ -81,6 +81,75 @@ test_blockvector_lookup_contains () SELF_CHECK (bv->contains (0x4000) =3D=3D false); } =20 +/* Create and return struct blockranges* from 2 ranges. */ +static struct blockranges * +make_blockranges_2 (struct obstack &ob, CORE_ADDR start0, CORE_ADDR end0, +=09=09 CORE_ADDR start1, CORE_ADDR end1) +{ + struct blockranges *ranges =3D (struct blockranges *) obstack_alloc + (&ob, sizeof (struct blockranges) + (2 - 1) * sizeof (struct blockrang= e)); + + ranges->nranges =3D 2; + ranges->range[0].set_start (start0); + ranges->range[0].set_end (end0); + ranges->range[1].set_start (start1); + ranges->range[1].set_end (end1); + + return ranges; +} + +static void +test_blockvector_lookup_non_continuguous () +{ + /* Create blockvector with following blocks: + +=09B0 0x1000 - 0x8000 (global block) +=09B1 0x1000 - 0x8000 (static block) +=09 B2 0x1000 - 0x2000 (B2's range 1) +=09 B3 0x2000 - 0x3000 (B3's range 1) +=09=09=09=09 (hole 1) +=09 B4 0x5000 - 0x5500 +=09=09=09=09 (hole 2) +=09 (B2) 0x6000 - 0x7000 (B2's range 2) +=09 (B3) 0x7000 - 0x8000 (B3's range 2) + + Blocks B2 and B3 are non-continguous (consist of two + disjoint ranges) and interleaved. + */ + auto_obstack ob; + blockvector_up bv =3D std::make_unique (0); + + auto global_block =3D make_block (*bv.get (), ob, 0x1000, 0x8000); + auto static_block =3D make_block (*bv.get (), ob, 0x1000, 0x8000, +=09=09=09=09 global_block); + auto b2 =3D make_block (*bv.get (), ob, 0x1000, 0x7000, static_block); + b2->set_ranges (make_blockranges_2 (ob, 0x1000, 0x2000, 0x6000, 0x7000))= ; + auto b3 =3D make_block (*bv.get (), ob, 0x2000, 0x8000, static_block); + b3->set_ranges (make_blockranges_2 (ob, 0x2000, 0x3000, 0x7000, 0x8000))= ; + auto b4 =3D make_block (*bv.get (), ob, 0x5000, 0x5500, static_block); + + /* Test address falling into range 1 of B2. */ + SELF_CHECK (bv->lookup (0x1500) =3D=3D b2); + + /* Test address falling into range 2 of B2. */ + SELF_CHECK (bv->lookup (0x6000) =3D=3D b2); + + /* Test address falling into range 1 of B3. */ + SELF_CHECK (bv->lookup (0x2500) =3D=3D b3); + + /* Test address falling into range 2 of B3. */ + SELF_CHECK (bv->lookup (0x7999) =3D=3D b3); + + /* Test address falling into B4. */ + SELF_CHECK (bv->lookup (0x5250) =3D=3D b4); + + /* Test address falling into hole 1. */ + SELF_CHECK (bv->lookup (0x4000) =3D=3D static_block); + + /* Test address falling into hole 2. */ + SELF_CHECK (bv->lookup (0x5750) =3D=3D static_block); +} + } /* namespace selftests */ =20 =20 @@ -88,4 +157,7 @@ INIT_GDB_FILE (block_selftest) { selftests::register_test ("blockvector-lookup-contains", =09=09=09 selftests::test_blockvector_lookup_contains); + selftests::register_test + ("blockvector-lookup-non-contiguous", + selftests::test_blockvector_lookup_non_continuguous); } --=20 2.51.0