From patchwork Mon Aug 24 13:58:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142084 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E0F884BA9004 for ; Mon, 24 Aug 2026 13:59:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E0F884BA9004 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=m/I4F5Cx; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ReAfW9gO; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=RgH+J8Z9; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=pG4fVbsG X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 4776F4BA9023 for ; Mon, 24 Aug 2026 13:59:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4776F4BA9023 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4776F4BA9023 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; cv=none; b=LBnGP+HYut2D5EuZVZaWqlXvqmNxxi9nCdEMPTkUAHKCYI8zuLqhcb5rtwbWupZzIZmOcUxLUoJbQV+GijDiJCDtixWjoHucRno86jHDbuP/Xm2ZBOw+VotEckT3YMWpwkq4EsuV8k81Jl51TlzrXY2inBYK22XYiUgkKk/3bFk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; c=relaxed/simple; bh=N5+q2m6f6oXn0mJVcZhqvHwLw45NloumZnexRda7gEI=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=I1jWssEFYMPCYNCaddyYJ3eKgq0g0OqLeQOGVHqhNekufdmukKWeVy6UNAT5MNyOXlLxJL8vAjuBYc6clH3vKRL1qhNdF3KB5s+V4/Yn0FelBwy7COxF5ArJMr4D7OE0CJD/stmI/45RaPyPPsFd0SBBmXUmCHH7f3l+OJk+iy8= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=m/I4F5Cx; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ReAfW9gO; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=RgH+J8Z9; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=pG4fVbsG DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4776F4BA9023 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 020611F38E for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OoIKyWcRpKXlOIkyHKItiNiKSePoi1BATbeRfeLzU2M=; b=m/I4F5CxQpBSgsnYVBSPGlTcZFmWhWKqO/r0ymxragmg0TCS0bRKLUa22yT+9g32oxqUOq LcETTpyxmP65cIMglyyzWWGAmAhjj414oN4MVj+44SgNFuWXDM7Cp+cYxYVUp0Uk5+/Tfb TVmhid6DfrH9+ywe97THyHuw//QByIw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OoIKyWcRpKXlOIkyHKItiNiKSePoi1BATbeRfeLzU2M=; b=ReAfW9gOltwCKwhRgJnK+Pqpy7RpJoff3ODjC77X10CpNEPQcHEyBQYy1SLynKYIS1XuBL krPl8EevdB+nWnAg== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OoIKyWcRpKXlOIkyHKItiNiKSePoi1BATbeRfeLzU2M=; b=RgH+J8Z9P5ipJhaXPiPfS3lvdVC+DKkA2quCSZkoArib5/qThYCfymyCHQDlkgXL0sVMOi NTjoRrBsfqKYU9OseXuA09F7MLFfdmJt+BexeHJQo9XXh2Ll1reusLU4oPX+zrIycd+uwV +GeLx/hGMOPsx7ITNC+ffvl+W0H4eOM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OoIKyWcRpKXlOIkyHKItiNiKSePoi1BATbeRfeLzU2M=; b=pG4fVbsGobVnddWZh+BORiaEvysjwTi0P3PJIxY304XRq3YGT0ZENg4Bpp9rksSdUhihqM euS/24Vafi0TE3BQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E133A1333B for ; Mon, 24 Aug 2026 13:58:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 2LdTNR9OjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:55 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 01/11] [gdb/testsuite] Normalize indentation in with_test_prefix Date: Mon, 24 Aug 2026 15:58:45 +0200 Message-ID: <20260824135855.1195963-2-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Normalize indentation in proc with_test_prefix to 4 spaces. --- gdb/testsuite/lib/gdb.exp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 1a6438f36a5..09c89624f2e 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3290,19 +3290,19 @@ gdb_caching_proc allow_tui_tests {} { # Returns the result of BODY. # proc with_test_prefix { prefix body } { - global pf_prefix + global pf_prefix - set saved $pf_prefix - append pf_prefix " " $prefix ":" - set code [catch {uplevel 1 $body} result] - set pf_prefix $saved + set saved $pf_prefix + append pf_prefix " " $prefix ":" + set code [catch {uplevel 1 $body} result] + set pf_prefix $saved - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result - } + if {$code == 1} { + global errorInfo errorCode + return -code $code -errorinfo $errorInfo -errorcode $errorCode $result + } else { + return -code $code $result + } } # Wrapper for foreach that calls with_test_prefix on each iteration, From patchwork Mon Aug 24 13:58:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142086 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ABA704BA900A for ; Mon, 24 Aug 2026 14:00:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ABA704BA900A Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=b2Evcgso; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ZBonNIT5; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=p+It5usS; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=KF7NPQDG X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 5DC1D4BA23EE for ; Mon, 24 Aug 2026 13:59:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5DC1D4BA23EE Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5DC1D4BA23EE Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; cv=none; b=eHDPjtH64id0WOSqUf4bfvF9u5yY435wLSz/dZX82cD1tDEeH6y34dgKVyZulNHotCOKVFq8LHtvLAMQdQWCky4oHP3DGbYO37thGbPTcZN2MNZ6iv3ImVnhuZmHAfHYp2CHfSATu+nmKTgqgSRb91+8Lemuy6K+D1tZ6dozFcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; c=relaxed/simple; bh=VX7UtvcCOkbWeMbZTNJ5wPVpGYEAW4w4t8+rXC6cduc=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=dbsAcyy1sxZuadGiPgkgsGhLbjFDmTEWcdLGbfvQ1S81M3sQmFZAFKXbpqPjrUelYfyiQYHibFiVQfaGamStMHoCdxIiQNyNmC40MLehNHpit+QHSkfUomDEi0tKRnWggsfs/a9ESWXO75qETWRKt0EVZ6tyN3pBriP2N1KaxMA= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=b2Evcgso; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ZBonNIT5; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=p+It5usS; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=KF7NPQDG DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5DC1D4BA23EE Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 1A8A186930 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jl+H2V96ceYfgyvqjpjPQz0e6f1l7zJdlyoDTYBuwmY=; b=b2EvcgsohT1eqcS5pVAZyJnOVFwrvEgDEzGPttYt8tA18h3LgBu8+Wz+XXET1CMkUjUYdS SszAoJJLzOlOAovLGpmRCP3T5yyZNgfoPI0z9mO4mnZ0QslMpabMLsKPGVxMsp3A/cNJvf rDoUD2HGWh8WjW/5szS9fj6FhHGXF/g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jl+H2V96ceYfgyvqjpjPQz0e6f1l7zJdlyoDTYBuwmY=; b=ZBonNIT5me3MjHwGaObpGrOjWWc8zTe27XLG9X/MGp8zWZq24C9d+KZZKLClCOoC5yaSJl UhI/SSZj5j/PGNDQ== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=p+It5usS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=KF7NPQDG DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jl+H2V96ceYfgyvqjpjPQz0e6f1l7zJdlyoDTYBuwmY=; b=p+It5usSSUb1BkBliMxvhb4TfCfbTmWlqPiTn5pk7KFpfIHomoM3BGhsOwMGA2RtG+9ZYu ypj+ndAupWIumB7Ij58OroWGDLdma2NcPE2jjR6c3J5VIW1x3g4S5BqUgOi+8dhAfm39ak MN5HIIhiFx+eZwGr5X0cDDw+AcDogRQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jl+H2V96ceYfgyvqjpjPQz0e6f1l7zJdlyoDTYBuwmY=; b=KF7NPQDGNiwoNTPVl/yirhpy6rQOE18QN3c3foGyAKbMWXh4YedIKucGpFkt5ilcAWG3QN uJx/msfP+TNDbKDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 081DE133A6 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id aECnACBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 02/11] [gdb/testsuite] Fix return -level 2 bug in with_test_prefix Date: Mon, 24 Aug 2026 15:58:46 +0200 Message-ID: <20260824135855.1195963-3-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Spam-Level: X-Rspamd-Action: no action X-Rspamd-Queue-Id: 1A8A186930 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; FROM_HAS_DN(0.00)[]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[gnu.org:url, imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns, suse.de:mid, suse.de:dkim] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Consider proc with_test_prefix: ... proc with_test_prefix { prefix body } { global pf_prefix set saved $pf_prefix append pf_prefix " " $prefix ":" set code [catch {uplevel 1 $body} result] set pf_prefix $saved if {$code == 1} { global errorInfo errorCode return -code $code -errorinfo $errorInfo -errorcode $errorCode $result } else { return -code $code $result } } ... I asked Claude Code: ... The function test_with_prefix is trying to implement that "test_with_prefix prefix body" has the same semantics as "body" (ignoring the prefix part). Can you verify this, and possibly come up with a counter-example? ... and it came up with using return -level 2. I wrote a standalone reproducer: ... proc with_test_prefix { body } { set code [catch {uplevel 1 $body} result] if {$code == 1} { global errorInfo errorCode return -code $code -errorinfo $errorInfo -errorcode $errorCode $result } else { return -code $code $result } } proc bar {} { with_test_prefix { puts "Returning in bar (ok)" return -level 2 1 } } proc foo {} { set res [bar] puts "returning in foo (not ok)" return 2 } puts [foo] ... which gives us: ... $ tclsh ./test.tcl Returning in bar (ok) returning in foo (not ok) 2 ... Fix this by: - using "catch {...} result opts" to capture the return options dictionary - increasing -level in $opts, and - using return -options $opts, reducing exception handling to just two lines: ... catch {uplevel 1 $body} result opts ... return -options [dict incr opts -level 1] $result ... The problem exists everywhere were we use the same catch/return pattern, but that gets fixed in following patches. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34553 --- .../gdb.testsuite/with-test-prefix.exp | 45 +++++++++++++++++++ gdb/testsuite/lib/gdb.exp | 9 +--- 2 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 gdb/testsuite/gdb.testsuite/with-test-prefix.exp diff --git a/gdb/testsuite/gdb.testsuite/with-test-prefix.exp b/gdb/testsuite/gdb.testsuite/with-test-prefix.exp new file mode 100644 index 00000000000..366be7ee3e6 --- /dev/null +++ b/gdb/testsuite/gdb.testsuite/with-test-prefix.exp @@ -0,0 +1,45 @@ +# Copyright 2026 Free Software Foundation, Inc. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Testsuite self-tests for with_test_prefix. + +proc bar {variant} { + if {$variant == 0} { + verbose -log "Returning in bar (ok)" + return -level 2 1 + } else { + with_test_prefix dummy { + verbose -log "Returning in bar (ok)" + return -level 2 1 + } + } +} + +proc foo {variant} { + set res [bar $variant] + verbose -log "returning in foo (not ok)" + return 2 +} + +# Note: don't use with_test_prefix (directly or indirectly) to make sure that +# this test is run even if with_test_prefix is broken. +foreach variant {0 1} { + set msg "$variant: return -level 2" + try { + set res 0 + set res [foo $variant] + } finally { + gdb_assert {$res == 1} $msg + } +} diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 09c89624f2e..71e38e4801a 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3294,15 +3294,10 @@ proc with_test_prefix { prefix body } { set saved $pf_prefix append pf_prefix " " $prefix ":" - set code [catch {uplevel 1 $body} result] + catch {uplevel 1 $body} result opts set pf_prefix $saved - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result - } + return -options [dict incr opts -level 1] $result } # Wrapper for foreach that calls with_test_prefix on each iteration, From patchwork Mon Aug 24 13:58:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142087 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 12AB84BA79B1 for ; Mon, 24 Aug 2026 14:01:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 12AB84BA79B1 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=PgS5sRFg; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=q7anF1D0; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=A8+hrxBf; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ml6/IleE X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 6962C4BA2E30 for ; Mon, 24 Aug 2026 13:59:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6962C4BA2E30 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6962C4BA2E30 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; cv=none; b=EqTMqF35xrsw04jHZCEnAIx/2SeV/RP1USht1cyTMVQYUmPzEnK1kmPGE2ZEbzLfZ0glmdrHkE9We6M+eScEKZIGchkG1Cr+GOzutWDzfC5LktANljyoC0h7Kg+fbewUSP9WD9d1ehM6Orlb9KPbS0Ae2IZ2uOdqpooJic4hCNQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579945; c=relaxed/simple; bh=6X2FJXnhjvryuR4BQfOdAO4EHPSIM5b5YmpZzs6NaSA=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=MkEjk/APUaTuxhl7IZLseOOoNJMIBHQ5eEVQqfPleCpT9SfAcUiUZTbB+htcMtHGe3SljDg8q7viFgDaS5zvhbYTNXNKzUxNGgU6lhKWpglAPtNbp2pNkGtns+whQWLpJxItoIu8fNrgIZYuJO8nVF4bFusGODuI3JfUoZ9nQs8= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=PgS5sRFg; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=q7anF1D0; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=A8+hrxBf; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ml6/IleE DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6962C4BA2E30 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 34F9D86951 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3yOkoNWGBhO43xtzAZhKSRZoy1YMvHA7gxbVD97OIxU=; b=PgS5sRFgv5avyLHxaisZEvZMikliyKUxzIqQXUAKDDitKzgpUGaWT1bGOcsqh++9vwxUhH WDKkznGvrxJy8El4ogItgQAMl6Azlc0rTY8kRoa8WYi5ShynLipspO/XzCWc8iqFO0Wkz5 AGBVZepveCxGmKab5MaEYlt/t40Fzes= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3yOkoNWGBhO43xtzAZhKSRZoy1YMvHA7gxbVD97OIxU=; b=q7anF1D0O5ZT8rn8R3P/eqITauWSm/vV9h+q/hp4fPj2Oc2m+n9+rGYelPW+yxCDYD/42E AESkFqmI8n3jT2CA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=A8+hrxBf; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="ml6/IleE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3yOkoNWGBhO43xtzAZhKSRZoy1YMvHA7gxbVD97OIxU=; b=A8+hrxBfHlXKLKZPScRxg+qidTf5iOj7qKyxCqBSRci8QKF6B/ItSui0lMobJKYFZKv8t4 Co0uA1IEwrZtZILVW9KYkHk4ZajljYpPzELSC4stqIik98DUq1+0OXmOysGplmjMHOW4Qy ohN0VsQVbE1WL7Q4NAr7935tcwiCW28= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579936; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3yOkoNWGBhO43xtzAZhKSRZoy1YMvHA7gxbVD97OIxU=; b=ml6/IleEMwL58TMgX+AlZCrdPGAAozhNqbB8mxnOMias9mxCt+Wpm2xLKuxfwfHcIUuHRr Ruqn3fIloNn+Y5DA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2134C133CF for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id cDvQBiBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 03/11] [gdb/testsuite] Simplify foreach_with_prefix Date: Mon, 24 Aug 2026 15:58:47 +0200 Message-ID: <20260824135855.1195963-4-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; MIME_TRACE(0.00)[0:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.de:mid,suse.de:dkim]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Score: -3.01 X-Spam-Level: X-Rspamd-Queue-Id: 34F9D86951 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org In the testsuite there's a pattern for handling a catch result: ... proc foo {body} { set code [catch {uplevel 1 $body} result] if {$code == 1} { global errorInfo errorCode return -code $code -errorinfo $errorInfo -errorcode $errorCode $result } else { return -code $code $result } } ... with the intended effect that executing "foo body" has the same effect as "body". The pattern's different though in proc foreach_with_prefix: ... proc foreach_with_prefix {var list body} { upvar 1 $var myvar foreach myvar $list { with_test_prefix "$var=$myvar" { set code [catch {uplevel 1 $body} result] } if {$code == 1} { global errorInfo errorCode return -code $code -errorinfo $errorInfo -errorcode $errorCode $result } elseif {$code == 3} { break } elseif {$code == 2} { return -code $code $result } } } ... where it handles: - break ($code == 3) by breaking, and - ok and continue ($code == 0/4) by ignoring it. Move the foreach into the catch: ... set code [catch { foreach myvar $list { with_test_prefix "$var=$myvar" { uplevel 1 $body } } } result] ... to let foreach handle break and continue, allowing us to handle the catch result in the usual way. Likewise in foreach_mi_ui_mode. --- gdb/testsuite/lib/gdb.exp | 22 +++++++++++----------- gdb/testsuite/lib/mi-support.exp | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 71e38e4801a..c8254ac9dd3 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3305,19 +3305,19 @@ proc with_test_prefix { prefix body } { proc foreach_with_prefix {var list body} { upvar 1 $var myvar - foreach myvar $list { - with_test_prefix "$var=$myvar" { - set code [catch {uplevel 1 $body} result] + set code [catch { + foreach myvar $list { + with_test_prefix "$var=$myvar" { + uplevel 1 $body + } } + } result] - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } elseif {$code == 3} { - break - } elseif {$code == 2} { - return -code $code $result - } + if {$code == 1} { + global errorInfo errorCode + return -code $code -errorinfo $errorInfo -errorcode $errorCode $result + } else { + return -code $code $result } } diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 4fd3eeb0dde..2e87769b538 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -2931,19 +2931,19 @@ proc foreach_mi_ui_mode { var_name body } { set modes {"main" "separate"} } - foreach var $modes { - with_test_prefix "$var_name=$var" { - set code [catch {uplevel 1 $body} result] - } - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } elseif {$code == 3} { - break - } elseif {$code == 2} { - return -code $code $result - } + set code [catch { + foreach var $modes { + with_test_prefix "$var_name=$var" { + uplevel 1 $body + } + } + } result] + + if {$code == 1} { + global errorInfo errorCode + return -code $code -errorinfo $errorInfo -errorcode $errorCode $result + } else { + return -code $code $result } } From patchwork Mon Aug 24 13:58:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142088 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 175F54BA2E09 for ; Mon, 24 Aug 2026 14:01:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 175F54BA2E09 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=UKYQxVX0; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=q6/FM78V; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ga3PBcRu; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=YGSdV9RV X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 516644BA9031 for ; Mon, 24 Aug 2026 13:59:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 516644BA9031 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 516644BA9031 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579949; cv=none; b=Os6cYP0EGWzMZ0RKv0Hnb3mrMFJ81etY9oH7ZvhHC1PiwM1QB/DM6dldWMjM7qcqe6swBw1U+ry37S32oL3h8b4q9hO/i5XFhMISAOz7zdZ5+4+sHPFh+S7zJ54nS6tiggWWMr/kAt4NMgQqOFU+oQgeO131HVPbCR1MM3R6bV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579949; c=relaxed/simple; bh=R8xb8kCaQeND3AhMw3E9e7Q8PamzbDwXTYTpJP0EUpM=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=GyhRtY4p8ekKmFD0RRjnYal5AkwHC4vIoJr2X5izqg479fKCrjqBZVLr/n0Cv8hL9DDLo6lyIpHNTHFRRi4spjFH0wSvuG08NScbwI76Q1FJGIe4B/q0gXrWPaoPJgvm4AN2LrNZsRRfWr1fh6oJ1r7LBDRjHXiVfqrrQR/tC+8= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=UKYQxVX0; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=q6/FM78V; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ga3PBcRu; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=YGSdV9RV DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 516644BA9031 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 208538695D for ; Mon, 24 Aug 2026 13:59:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9l9hvkL5bSOqG1a/5X2h3Db+hMC+3FRLlC4KgN2hoZ4=; b=UKYQxVX0zonrQPlNfer6bNL0DypkYsNAIr2sgDbk3yg+fk46D/nz5OyGjnLJZPSbQz30yp 382E4VSFl4m8hBZzoLdflLf/TK4pKtnzJs4Uz2vDBueOOvi03eUlavk+2MHY7nQh663jn8 qq5uuEiSzEifj2iHO6lYz+E5IkvWr2A= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9l9hvkL5bSOqG1a/5X2h3Db+hMC+3FRLlC4KgN2hoZ4=; b=q6/FM78V5VJqt1RjXrUJ7DWYZyR8mgwHGF3mJHieeph8w3VY7M1/R9DLi8AUag/0mrplq9 EwmXgHxtYWNqbJCQ== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9l9hvkL5bSOqG1a/5X2h3Db+hMC+3FRLlC4KgN2hoZ4=; b=ga3PBcRuWjt7SSB/hrZts7sGnoUsrWSDD7XJYWBHkEEhoSDtFHAPzsz5DU4BU4YtyrtqJ2 QgdYwGTPwtyHfR/r/ILeZtDDiOhsXDD1dvxrpeKxp7+uluUZ8A/toSLAkDzT3LdA/UkaLY h49CnbEVOmvJ5flYZwWb/+ILDQbIsF0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9l9hvkL5bSOqG1a/5X2h3Db+hMC+3FRLlC4KgN2hoZ4=; b=YGSdV9RVy2M6C6coyD673+8eY4ZAlCnDNzgRrBaGHXb3+/Av+pFiaSZyElj1y5R7BX8U7Z C8ptNWQqBC8JZLDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3BB51133D1 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id SM5eDSBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 04/11] [gdb/testsuite] Refactor exception handling in foreach_with_prefix Date: Mon, 24 Aug 2026 15:58:48 +0200 Message-ID: <20260824135855.1195963-5-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 X-Spam-Level: X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Refactor foreach_with_prefix using return -options. Likewise in foreach_mi_ui_mode. Both procs also have the return -level 2 problem (PR34553), so fix this using "[dict incr opts -level]". Also add a PR34553 regression test for foreach_with_prefix. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34553 --- .../gdb.testsuite/foreach_with_prefix.exp | 27 +++++++++++++++++++ gdb/testsuite/lib/gdb.exp | 12 +++------ gdb/testsuite/lib/mi-support.exp | 12 +++------ 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp b/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp index 04762d9baef..20a0f1022be 100644 --- a/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp +++ b/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp @@ -71,6 +71,33 @@ with_test_prefix "return" { check_sequence $seq "0 0" } +# Test TCL_RETURN (2), level 2. +foreach foreach_variant {foreach foreach_with_prefix} { + with_test_prefix "$foreach_variant: return level 2" { + proc test_return_level_2_inner {} { + set seq "" + $::foreach_variant var1 {0 1} { + $::foreach_variant var2 {0 1} { + lappend seq $var1 $var2 + return -level 2 $seq + } + } + return $seq + } + proc test_return_level_2_outer {} { + test_return_level_2_inner + return "outer" + } + + try { + set seq "initial" + set seq [test_return_level_2_outer] + } finally { + check_sequence $seq "0 0" + } + } +} + # Test TCL_BREAK (3). with_test_prefix "break" { set seq "" diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index c8254ac9dd3..88a42aff4ac 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3305,20 +3305,14 @@ proc with_test_prefix { prefix body } { proc foreach_with_prefix {var list body} { upvar 1 $var myvar - set code [catch { + catch { foreach myvar $list { with_test_prefix "$var=$myvar" { uplevel 1 $body } } - } result] - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result - } + } result opts + return -options [dict incr opts -level] $result } # Like TCL's native proc, but defines a procedure that wraps its body diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 2e87769b538..240bc844350 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -2931,20 +2931,14 @@ proc foreach_mi_ui_mode { var_name body } { set modes {"main" "separate"} } - set code [catch { + catch { foreach var $modes { with_test_prefix "$var_name=$var" { uplevel 1 $body } } - } result] - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result - } + } result opts + return -options [dict incr opts -level] $result } # Check if GDB has information about the stderr symbol. From patchwork Mon Aug 24 13:58:49 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142085 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 00A3A4BA7999 for ; Mon, 24 Aug 2026 13:59:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 00A3A4BA7999 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2AoiHENW; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ErmYMTyR; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=O5StFxkr; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Tmu+Ae9R X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 4B2C84BA9030 for ; Mon, 24 Aug 2026 13:59:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4B2C84BA9030 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4B2C84BA9030 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579949; cv=none; b=nmcDKlTEvcf0A7E+eBbBNE+3yi4I3FJ1viFEQ92njXwUVQA9VzinBhwOBWn61S9hk23jdSn21Q7Bsj3ygmgb7CkNT2leu93yGg79vIJiN7IscA+GEQj8cKtOc0+5koWnClOBdQYDjcL9ipUYJVCF9eQJSZITX6lXp9BOvfxxqUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579949; c=relaxed/simple; bh=FvA984ygX0jAmLDyOT00OXB8pyBGjBIftbyQi5zh2fI=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=lZkVsxa/PotNSfkx9pRrEicu8D9O7AvapFwwBf0FuetbwsX6LMvofGfIWJQFeL11sNPjgSQCs7edtxMiXwNNeC+fahsvN8Pohfc0Cvf5MjLjIJ4lNvFFnkGsnP/Jy/lLKSquDBEEdCpuk27uGurpMHDDKHPr20+m2b1XNZcC1wU= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2AoiHENW; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=ErmYMTyR; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=O5StFxkr; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Tmu+Ae9R DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4B2C84BA9030 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 247E486967 for ; Mon, 24 Aug 2026 13:59:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9/u8Moior/yavtn6zIOuRBlB6bCc+SFUsbP/jnb2VUo=; b=2AoiHENWGrQp67aoFF8KkJXKyxkn8VxZFCOJ3hJNP0Qg4Hu+cBlQDW6WcCPRQprNioUoDj b2ig5SlFfJLHDOWA+nObvtsqK3qdPuxaQ6YHny9f7zZlnKA1pW4VQTOurFImX+ib5TVH7U sbsZHu6yObkxgQRAsJCvR2HDvFdvF+I= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9/u8Moior/yavtn6zIOuRBlB6bCc+SFUsbP/jnb2VUo=; b=ErmYMTyRsaVUBqFgUAhU4E9ItITXzAz8a0xJJmhYOjbUdMwQfvbFL60yeY46wGe/k3D1eB IofZRdKnAoZNdlAg== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=O5StFxkr; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=Tmu+Ae9R DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9/u8Moior/yavtn6zIOuRBlB6bCc+SFUsbP/jnb2VUo=; b=O5StFxkr9gRddHFH+yJCa0F0MmC1yaNwKXKGLRTaISMwDWtYqD41HUDzyemvKAXK15/jfW fBaD5BLfRlGXGXlMY3j4kX9nJNzAScHYmkWrPDRcuhd1TqTQPA9BNW58D8LOR/C5UNM9RW Q2pB8JnqaAPQvEgGcyMfuICTeXkSljw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579940; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9/u8Moior/yavtn6zIOuRBlB6bCc+SFUsbP/jnb2VUo=; b=Tmu+Ae9RSZdrG1tfXC+mPfxB62I1AKPmJMg/0vwsEYMuAQMEAOyGQHJhQOxn4ROnJLmeJv qHimyhtiic5ZqVCA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 56CE3133F1 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 4Ai4EyBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 05/11] [gdb/testsuite] Add transparent_uplevel Date: Mon, 24 Aug 2026 15:58:49 +0200 Message-ID: <20260824135855.1195963-6-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Spam-Level: X-Rspamd-Action: no action X-Rspamd-Queue-Id: 247E486967 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; FROM_HAS_DN(0.00)[]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns, suse.de:mid, suse.de:dkim] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Having learned the trick of increasing -level, factor out a new proc transparent_uplevel: ... proc transparent_uplevel { body } { catch {uplevel 2 $body} result opts return -options [dict incr opts -level 2] $result ... to be used in conjunction with try/finally to apply this pattern: ... proc foo { body } { try { transparent_uplevel $body } finally { } } ... such that "foo body" has the same effect as "body", apart from the / parts. This proc has the fix for PR34553 designed into it, so (correctly) applying it in a proc will fix the PR there. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34553 --- gdb/testsuite/lib/gdb.exp | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 88a42aff4ac..853b45f4a53 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3218,6 +3218,53 @@ gdb_caching_proc allow_tui_tests {} { return [expr {[string first "--enable-tui" $output] != -1}] } +# Run BODY in the context of the callers caller. +# +# To be used in a proc foo: +# proc foo {body} { +# transparent_uplevel body +# } +# to make "foo body" have the same effect as "body". +# +# It ensures this by doing two things: +# - evaluating the body in the context of the caller of foo +# - propagating any return, exceptional or not to the caller of foo. +# +# Typically used in conjunction with try/finally, to ensure something +# happens before and after body. For instance, this: +# proc foo {body} { +# try { +# puts "foo: enter" +# transparent_uplevel $body +# } finally { +# puts "foo: exit" +# } +# } +# +# for {set i 0} {$i < 5} {incr i} { +# puts $i +# foo { +# if {$i == 2} { +# break +# } +# } +# } +# produces: +# 0 +# foo: enter +# foo: exit +# 1 +# foo: enter +# foo: exit +# 2 +# foo: enter +# foo: exit + +proc transparent_uplevel { body } { + catch {uplevel 2 $body} result opts + return -options [dict incr opts -level 2] $result +} + # Test files shall make sure all the test result lines in gdb.sum are # unique in a test run, so that comparing the gdb.sum files of two # test runs gives correct results. Test files that exercise From patchwork Mon Aug 24 13:58:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142092 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D5BD84BA9034 for ; Mon, 24 Aug 2026 14:02:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D5BD84BA9034 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=HcTB9KNJ; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=KZSM4Tgl; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=YBc1d7RS; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=D/GqQh7G X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 657054BA79A5 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 657054BA79A5 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 657054BA79A5 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; cv=none; b=Qnjspt3uHIvPypqJryhWP7ajKnIaYUvVznUTgwgzPli9t9496beocODfQbXaEBO2ap1zFK90SvFnHbvkU2SoZSVWUWb81L0AJKoXR6nDaZhNPRuXp2zT05SJgaCtzwozKfgFL+Q+zxRBThjyuM/7qBrRyGN52nSB6R9k/u6El7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; c=relaxed/simple; bh=AGLRQ18OIE2nmmUAbU0D6Kb++du0UGIjD/ByTHxqw3g=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=RLvXrFzSy+o2IIjfuSVNxR2zZDC+lbZznMVLKyZoo1v8ugNxMiwrX2/n50Em7WZ4GKnHuhvznN3TV6J9QGDNv8/hBj5movlfcjlBs4FLjvXugSZKygOvsRkJA+upEuRcKhnvDGjHDRn6s9Y4Eyzn/PaBNVB0HJYYLomVhE5Hd+o= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=HcTB9KNJ; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=KZSM4Tgl; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=YBc1d7RS; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=D/GqQh7G DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 657054BA79A5 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 34AAA867E1 for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slZx9EEEhtbo/TPPWBIglF5rBK/0uXokXqreXGcOAOc=; b=HcTB9KNJF+7UtJeV6OieKXMq98Jmyob5CVPp8pvqtO39BAtdkwrf6F0gLrmzD4rvnLJKXM gRtE+7m84HAa7jVXyZgO5LqidSlEPqKVLBF2r1/4JXnF8YfVs1W5ew1XXSTjsalKoBYpNe nSIU5iISRgSFakzWXQ3m3vRmAxMoM9o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slZx9EEEhtbo/TPPWBIglF5rBK/0uXokXqreXGcOAOc=; b=KZSM4TglvvjF8RN2cWS5v2cGOUItTIRoEyL++G8UQvILxQ50I/P9DC+H3AjLwBSQEz+bwt sl/xcjiOr4NZFGCA== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slZx9EEEhtbo/TPPWBIglF5rBK/0uXokXqreXGcOAOc=; b=YBc1d7RSL4NHOuudUZZDr3LQ9rsX3/hiMVVHB3QXBf2BZ/tvLACJ1Rsn+4iN47MG/cVSuJ Da/wQnBMmNT5I7qcMFkQGnOAh0y45D0Hkconn0nB6SkPny7dUKpGAf5EtBHPYtk8U86S0P xIrzMNn9awXSQUXbJdC001L5JeKk4C4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slZx9EEEhtbo/TPPWBIglF5rBK/0uXokXqreXGcOAOc=; b=D/GqQh7GKBTgcD7NpdZ9IKyQVJjGLSsyeyACaztgT+sY4zGqSNzA20Z0K284myPyf6aV4F +kmyzIXOmFgCBbCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 7021C133F3 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id YHsyGiBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 06/11] [gdb/testsuite] Refactor exception handling Date: Mon, 24 Aug 2026 15:58:50 +0200 Message-ID: <20260824135855.1195963-7-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 X-Spam-Level: X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Use try/finally and transparent_uplevel to refactor exception handling. Most procs use both try/finally and transparent_uplevel. The two exceptions are: - target_compile_ada_from_dir (only uses try/finally) - with_ansi_styling_terminal (only uses transparent_uplevel) Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34552 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34553 --- gdb/testsuite/lib/ada.exp | 14 +- gdb/testsuite/lib/dwarf.exp | 15 +- gdb/testsuite/lib/gdb-utils.exp | 17 +- gdb/testsuite/lib/gdb.exp | 298 ++++++++++++-------------------- gdb/testsuite/lib/tuiterm.exp | 15 +- 5 files changed, 136 insertions(+), 223 deletions(-) diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp index 086866aca99..2dcd8a06f3f 100644 --- a/gdb/testsuite/lib/ada.exp +++ b/gdb/testsuite/lib/ada.exp @@ -67,18 +67,16 @@ proc target_compile_ada_from_dir {builddir source dest type options} { set_board_info multilib_flags "$multilib_flag" } - catch { + try { with_cwd $builddir { return [target_compile $source $dest $type $options] } - } result options - - if { $save_multilib_flag != "" } { - unset_board_info "multilib_flags" - set_board_info multilib_flags $save_multilib_flag + } finally { + if { $save_multilib_flag != "" } { + unset_board_info "multilib_flags" + set_board_info multilib_flags $save_multilib_flag + } } - - return -options $options $result } # Compile some Ada code. Return "" if the compile was successful. diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp index 839c5174265..1323c2dfd83 100644 --- a/gdb/testsuite/lib/dwarf.exp +++ b/gdb/testsuite/lib/dwarf.exp @@ -324,18 +324,11 @@ proc shared_gdb_end_use {} { proc with_shared_gdb { body } { shared_gdb_enable - set code [catch { uplevel 1 $body } result] - shared_gdb_disable - - # Return as appropriate. - if { $code == 1 } { - global errorInfo errorCode - return -code error -errorinfo $errorInfo -errorcode $errorCode $result - } elseif { $code > 1 } { - return -code $code $result + try { + transparent_uplevel $body + } finally { + shared_gdb_disable } - - return $result } # Return a list of expressions about function FUNC's address and length. diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp index cabeb7aa1ed..1f04a626cbc 100644 --- a/gdb/testsuite/lib/gdb-utils.exp +++ b/gdb/testsuite/lib/gdb-utils.exp @@ -235,17 +235,12 @@ proc with_lock { lock_file body } { set lock_rc [lock_file_acquire $lock_file] } - set code [catch {uplevel 1 $body} result] - - if {[info exists ::GDB_PARALLEL]} { - lock_file_release $lock_rc - } - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + if {[info exists ::GDB_PARALLEL]} { + lock_file_release $lock_rc + } } } diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 853b45f4a53..2cd2603e39f 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -148,22 +148,15 @@ proc load_lib { file } { set known_globals($varname) 1 } - set code [catch {saved_load_lib $file} result] - - foreach varname [info globals] { - if { ![info exists known_globals($varname)] } { - gdb_persistent_global_no_decl $varname - } - } - - if {$code == 1} { - global errorInfo errorCode - return -code error -errorinfo $errorInfo -errorcode $errorCode $result - } elseif {$code > 1} { - return -code $code $result + try { + saved_load_lib $file + } finally { + foreach varname [info globals] { + if { ![info exists known_globals($varname)] } { + gdb_persistent_global_no_decl $varname + } + } } - - return $result } # Tcl 9.0 changed the default channel encoding profile to "strict". @@ -3341,10 +3334,11 @@ proc with_test_prefix { prefix body } { set saved $pf_prefix append pf_prefix " " $prefix ":" - catch {uplevel 1 $body} result opts - set pf_prefix $saved - - return -options [dict incr opts -level 1] $result + try { + transparent_uplevel $body + } finally { + set pf_prefix $saved + } } # Wrapper for foreach that calls with_test_prefix on each iteration, @@ -3440,26 +3434,21 @@ proc save_vars { vars body } { } } - set code [catch {uplevel 1 $body} result] - - foreach {var value} [array get saved_scalars] { - uplevel 1 [list set $var $value] - } - - foreach {var value} [array get saved_arrays] { - uplevel 1 [list unset $var] - uplevel 1 [list array set $var $value] - } + try { + transparent_uplevel $body + } finally { + foreach {var value} [array get saved_scalars] { + uplevel 1 [list set $var $value] + } - foreach var $unset_vars { - uplevel 1 [list unset -nocomplain $var] - } + foreach {var value} [array get saved_arrays] { + uplevel 1 [list unset $var] + uplevel 1 [list array set $var $value] + } - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + foreach var $unset_vars { + uplevel 1 [list unset -nocomplain $var] + } } } @@ -3491,22 +3480,17 @@ proc save_target_board_info { vars body } { } } - set code [catch {uplevel 1 $body} result] - - foreach {var value} [array get saved_target_board_info] { - unset_board_info $var - set_board_info $var $value - } - - foreach var $unset_target_board_info { - unset_board_info $var - } + try { + transparent_uplevel $body + } finally { + foreach {var value} [array get saved_target_board_info] { + unset_board_info $var + set_board_info $var $value + } - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + foreach var $unset_target_board_info { + unset_board_info $var + } } } @@ -3522,16 +3506,11 @@ proc with_cwd { dir body } { verbose -log "Switching to directory $dir (saved CWD: $saved_dir)." cd $dir - set code [catch {uplevel 1 $body} result] - - verbose -log "Switching back to $saved_dir." - cd $saved_dir - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + verbose -log "Switching back to $saved_dir." + cd $saved_dir } } @@ -3606,42 +3585,37 @@ proc with_gdb_cwd { dir body } { return } - set code [catch {uplevel 1 $body} result] - - verbose -log "Switching back to $saved_dir." - if {![gdb_cd $saved_dir]} { - return - } - - # Check that GDB is still alive. If GDB crashed in the above code - # then any corefile will have been left in DIR, not the root - # testsuite directory. As a result the corefile will not be - # brought to the users attention. Instead, if GDB crashed, then - # this check should cause a FAIL, which should be enough to alert - # the user. - set saw_result false - gdb_test_multiple "p 123" "" { - -re "p 123\r\n" { - exp_continue + try { + transparent_uplevel $body + } finally { + verbose -log "Switching back to $saved_dir." + if {![gdb_cd $saved_dir]} { + return } - -re "^${::valnum_re} = 123\r\n" { - set saw_result true - exp_continue - } + # Check that GDB is still alive. If GDB crashed in the above code + # then any corefile will have been left in DIR, not the root + # testsuite directory. As a result the corefile will not be + # brought to the users attention. Instead, if GDB crashed, then + # this check should cause a FAIL, which should be enough to alert + # the user. + set saw_result false + gdb_test_multiple "p 123" "" { + -re "p 123\r\n" { + exp_continue + } - -re "^$::gdb_prompt $" { - if { !$saw_result } { - fail "check gdb is alive in with_gdb_cwd" + -re "^${::valnum_re} = 123\r\n" { + set saw_result true + exp_continue } - } - } - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + -re "^$::gdb_prompt $" { + if { !$saw_result } { + fail "check gdb is alive in with_gdb_cwd" + } + } + } } } @@ -3682,17 +3656,12 @@ proc with_gdb_prompt { prompt body } { set gdb_prompt $prompt gdb_test_no_output "set prompt $prompt " "" - set code [catch {uplevel 1 $body} result] - - verbose -log "Restoring gdb prompt to \"$saved \"." - set gdb_prompt $saved - gdb_test_no_output "set prompt $saved " "" - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + verbose -log "Restoring gdb prompt to \"$saved \"." + set gdb_prompt $saved + gdb_test_no_output "set prompt $saved " "" } } @@ -3717,15 +3686,10 @@ proc with_target_charset { target_charset body } { gdb_test_no_output -nopass "set target-charset $target_charset" - set code [catch {uplevel 1 $body} result] - - gdb_test_no_output -nopass "set target-charset $saved" - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + gdb_test_no_output -nopass "set target-charset $saved" } } @@ -3747,15 +3711,10 @@ proc with_max_value_size { size body } { gdb_test_no_output -nopass "set max-value-size $size" - set code [catch {uplevel 1 $body} result] - - gdb_test_no_output -nopass "set max-value-size $saved" - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + gdb_test_no_output -nopass "set max-value-size $saved" } } @@ -3793,19 +3752,14 @@ proc with_spawn_id { spawn_id body } { switch_gdb_spawn_id $spawn_id - set code [catch {uplevel 1 $body} result] - - if {[info exists saved_spawn_id]} { - switch_gdb_spawn_id $saved_spawn_id - } else { - clear_gdb_spawn_id - } - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + if {[info exists saved_spawn_id]} { + switch_gdb_spawn_id $saved_spawn_id + } else { + clear_gdb_spawn_id + } } } @@ -3860,14 +3814,10 @@ proc with_timeout_factor { factor body } { set savedtimeout $timeout set timeout [expr {[get_largest_timeout] * $factor}] - set code [catch {uplevel 1 $body} result] - - set timeout $savedtimeout - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + set timeout $savedtimeout } } @@ -8281,24 +8231,19 @@ proc with_set { var val body } { } } - set code [catch {uplevel 1 $body} result] - - # Restore saved setting. - if { $save != "" } { - gdb_test_multiple "set $var $save" "" { - -re -wrap "^" { - } - -re -wrap "is set to \"?$save\"?( \\(\[^)\]*\\))?\\." { + try { + transparent_uplevel $body + } finally { + # Restore saved setting. + if { $save != "" } { + gdb_test_multiple "set $var $save" "" { + -re -wrap "^" { + } + -re -wrap "is set to \"?$save\"?( \\(\[^)\]*\\))?\\." { + } } } } - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result - } } # @@ -11334,25 +11279,17 @@ proc with_override { name override body } { proc $name $new_args $new_body # Execute body. - set code [catch {uplevel 1 $body} result] - - # Restore old proc if it existed on entry, else delete it. - if { $existed } { - # tclint-disable-next-line command-args - proc $name $old_args $old_body - } else { - rename $name "" - } - - # Return as appropriate. - if { $code == 1 } { - global errorInfo errorCode - return -code error -errorinfo $errorInfo -errorcode $errorCode $result - } elseif { $code > 1 } { - return -code $code $result + try { + transparent_uplevel $body + } finally { + # Restore old proc if it existed on entry, else delete it. + if { $existed } { + # tclint-disable-next-line command-args + proc $name $old_args $old_body + } else { + rename $name "" + } } - - return $result } # Run BODY after setting the TERM environment variable to 'ansi', and @@ -11368,14 +11305,7 @@ proc with_ansi_styling_terminal { body } { unset -nocomplain ::env(NO_COLOR) unset -nocomplain ::env(COLORTERM) - set code [catch {uplevel 1 $body} result] - } - - if {$code == 1} { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + transparent_uplevel $body } } diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp index d23e29d1a6d..e0ba8510d6e 100644 --- a/gdb/testsuite/lib/tuiterm.exp +++ b/gdb/testsuite/lib/tuiterm.exp @@ -56,15 +56,12 @@ proc Term::_log_cur { what body } { set orig_cur_row $_cur_row set orig_cur_col $_cur_col - set code [catch {uplevel $body} result] - - _log "$what, cursor: ($orig_cur_row, $orig_cur_col) -> ($_cur_row, $_cur_col)" - - if { $code == 1 } { - global errorInfo errorCode - return -code $code -errorinfo $errorInfo -errorcode $errorCode $result - } else { - return -code $code $result + try { + transparent_uplevel $body + } finally { + set before "($orig_cur_row, $orig_cur_col)" + set after "($_cur_row, $_cur_col)" + _log "$what, cursor: $before -> $after" } } From patchwork Mon Aug 24 13:58:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142090 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0A29F4BA23E0 for ; Mon, 24 Aug 2026 14:02:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0A29F4BA23E0 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=RXUxAJ6y; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=L++SfUki; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=euFLq94C; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=BPliwKTr X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 5C91A4BA9027 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5C91A4BA9027 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5C91A4BA9027 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; cv=none; b=emVPeJbOuiqqE2uU5YXNWzKKZwR4evCOPwv9Xn0FkWg3WGT7m1NSDnaZsZyVNJH1KkfiWng+6mvyrsLDRl0gkl2H1xVI/qsUVh1YE/JspD2xIS3XZpc6Ax+/4kwU4CzQDYrHA6WSh0S2mi0E6Tdh8oNqpOufJLVvCn4vXnpa/Qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; c=relaxed/simple; bh=xursIfSy8ZjGUglgE4IIuNJHLSxM5vuDIYsZupo3aKY=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=a41inblofEpMVuag9dBp2NVCXHkP8tmhALlGYB3gaACw82wREev9jWOc/kaJI7wBeSzS9EyqtInWZY50j3zzhvymbOoh4wN5VO78rYRUm0/nzd1Sg62xRMnbqRY+BZZvkCQ7E7KDr+JOLzhuKPqJJug6byOq4gWSxGLJQxphvQU= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=RXUxAJ6y; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=L++SfUki; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=euFLq94C; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=BPliwKTr DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5C91A4BA9027 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 390AA868BF for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=13GrAHQja77Qo7U8nNIerCa6tp0qZVQCsxioqJspCOQ=; b=RXUxAJ6y0h68UMacLu/ADBCY0ODoCq/R2ZDy0jW3N8xRV9bIXQeD+DO1MaI4oC17z73YT3 kPGv+Oo9J7X5G4u4xgUc/jEe85/sU3N7r2FC2NE60wf9UHfHJdMSV4jIrgumISJ/xzwLDp Dkp4Otdt4PAw0Un5U8j9i+L6SIJxm5w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=13GrAHQja77Qo7U8nNIerCa6tp0qZVQCsxioqJspCOQ=; b=L++SfUkiltDwXXVYVD8KZjqBNJOcw++uuYSJIVbo0pxzf5w2VHFkQvEZmaGuVfz4bI3rg7 i0gGT5t5JgKxzIBA== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=13GrAHQja77Qo7U8nNIerCa6tp0qZVQCsxioqJspCOQ=; b=euFLq94CW5sUu1dGvAafTyCbEpwTEc3hEXRxnGeSyea8M49l7KAsELwRzqWBU2Ws8nYJ1N dyYTjCsjk/nR+JBHfE7naMLDjpf+pNb1AZ37ht5XM1kxDfnfPZHdtuFc1vX4r+VAYybkZC 0n787Sc+Qc9tKj5Aq9Mfly3MS63MqhY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=13GrAHQja77Qo7U8nNIerCa6tp0qZVQCsxioqJspCOQ=; b=BPliwKTrR1ayIAVrbRUyfGv9thxr4Wo7txQRq4NNvJpyUVWUYgTltkUAnD8392bA31MpI+ O7YzYAzfTgKiC0DQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8A48D133F6 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id GJ6cICBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 07/11] [gdb/testsuite] Refactor exception handling in gdb_expect Date: Mon, 24 Aug 2026 15:58:51 +0200 Message-ID: <20260824135855.1195963-8-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Simplify gdb_expect using transparent_uplevel. --- gdb/testsuite/lib/gdb.exp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 2cd2603e39f..479d1229142 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -7531,16 +7531,9 @@ proc gdb_expect { args } { set tmt [get_largest_timeout] } - set code [catch \ - {uplevel remote_expect host $tmt $expcode} string] - - if {$code == 1} { - global errorInfo errorCode - - return -code error -errorinfo $errorInfo -errorcode $errorCode $string - } else { - return -code $code $string - } + transparent_uplevel [subst_vars { + remote_expect host $tmt $expcode + }] } # gdb_expect_list TEST SENTINEL LIST -- expect a sequence of outputs From patchwork Mon Aug 24 13:58:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142089 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 771354B9DB5C for ; Mon, 24 Aug 2026 14:01:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 771354B9DB5C Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=k0vcKNBF; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=sS13uihS; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=m0TyUPm4; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=n3XEcI1+ X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 8BDE64BA9031 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8BDE64BA9031 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8BDE64BA9031 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; cv=none; b=x9ilSSzEzMlA6df8jwJ4WYr62mmlJ2YQWxbwEZuBvmRPymj4ph7KA9cdrlWwmz+gQNQn7/m3941PNy5uouYi+PwsQMYtol03T231/RY1oqNCYjLGg0kbv9lLjllk/yBpNQoeU9ZeAY7Lm20Q0KC/nTneHaQ792AZFwvfG6kbFo8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; c=relaxed/simple; bh=kOqd+1b2Y4nSNX01pM/dxEdYfl9QPe/enMF7l2utuDk=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=CBG/xK5Gfl1KGoLumruwOStxoyx/0pO4BpGfTpd4mClHVd3y7ujQkPMS1N4zBxyzQSgUcNQtC/Xgh/OLJLFK5UJcT7Ldndni+OY9UHTh9o/Nczkjsgep9OJ07PrNutAsEkE43wfZelcKXtHiPWXzoMqT4SAJvixkmP2GbE5UgtM= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=k0vcKNBF; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=sS13uihS; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=m0TyUPm4; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=n3XEcI1+ DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8BDE64BA9031 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 66985868C0 for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jvgMBZcGPMxmVH50X8scyhKWiQRPG2QyBbJ7dGyTEo0=; b=k0vcKNBFPDXpsvQqwuuS1xwfNmQbwWalWilXHM0saveuGO4vGioqsWo3xk0uatbLjn4oLP fVvS3HCHlYRVt4MDqztrodmBC+wp9MOMZeWJKl2v3ojy662p6rdb2x10zT7sn+2qBW95Dd IMhDv0Xp7dSJwR6VWliSbUJB0Y8y5dY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jvgMBZcGPMxmVH50X8scyhKWiQRPG2QyBbJ7dGyTEo0=; b=sS13uihSXZPVoNMUTt9N90Hnv9PHIQYeeGU99MvQmIJA/wSlZDNi2GBktK+GeZTNLwehDn YNYPnCmGcXhMrgBw== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jvgMBZcGPMxmVH50X8scyhKWiQRPG2QyBbJ7dGyTEo0=; b=m0TyUPm4wvefBoSRXAkjKf7wNUbBZdGP+S7rMKYXYe5rVX3/55zgcRcNLqIKWyFxlpMQ1L fxqBJspabfvRexXK+e/L0E4yA5FPbEnPEFM/Ny1Ypsp2EpVLHhn9yPBEKzWOP+ODEtVuHl Jdkj1sQS4iny9+ikegoaoBHqK7ODQNk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jvgMBZcGPMxmVH50X8scyhKWiQRPG2QyBbJ7dGyTEo0=; b=n3XEcI1+L3ZjngR16WONvO7BwuzD4hFb5CEwkIEsNdaAHLcO2OXAhhHOEgTmYwQIKzbBSL DwzL0WoQmNR8AOAQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A460313408 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id qLmuJiBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 08/11] [gdb/testsuite] Refactor exception handling in gdb_test_multiple Date: Mon, 24 Aug 2026 15:58:52 +0200 Message-ID: <20260824135855.1195963-9-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[gnu.org:url,suse.de:mid,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Simplify gdb_test_multiple using return -options and try/finally. In the process, we also try to fix PR34553. I've added a test to verify this, but it'll be only useful after remote_expect gets fixed [1]. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34552 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34553 [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=81691 --- gdb/testsuite/gdb.testsuite/gdb-test.exp | 51 ++++++++++++++++++++++++ gdb/testsuite/lib/gdb.exp | 37 +++++++++-------- 2 files changed, 69 insertions(+), 19 deletions(-) diff --git a/gdb/testsuite/gdb.testsuite/gdb-test.exp b/gdb/testsuite/gdb.testsuite/gdb-test.exp index dab65f21bdb..231f0755f58 100644 --- a/gdb/testsuite/gdb.testsuite/gdb-test.exp +++ b/gdb/testsuite/gdb.testsuite/gdb-test.exp @@ -49,6 +49,57 @@ with_test_prefix "cmd with trailing control code" { } } +foreach_with_prefix variant {0 1 2} { + proc level_2_inner {} { + if {$::variant == 0} { + return -level 2 "return_level_2" + } elseif {$::variant == 1} { + send_gdb "print 1\n" + set prompt_re [string_to_regexp "(gdb) "] + remote_expect host 10 { + -re " = 1\r\n$prompt_re$" { + return -level 2 "return_level_2" + } + } + } else { + gdb_test_multiple "print 1" "" { + -re -wrap " = 1" { + return -level 2 "return_level_2" + } + } + } + return "inner" + } + + proc level_2_outer {} { + level_2_inner + return "outer" + } + + try { + set res "initial" + set res [level_2_outer] + } finally { + if {$variant == 0} { + # trivial case. + gdb_assert {$res == "return_level_2"} + } elseif {$variant == 1} { + # Remove_expect case. + if {$res == "outer"} { + # Dejagnu bug. + # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=81691 + setup_xfail *-*-* + } + gdb_assert {$res == "return_level_2"} + set variant1_res $res + } else { + # Gdb_test_multiple case. This should work if the remote_expect + # case works. + gdb_assert {$res == $variant1_res} + } + } +} + # Change the prompt. set prompt "(GDB) " set prompt_re "\\(GDB\\) $" diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 479d1229142..99468ac3ef3 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1369,7 +1369,6 @@ proc gdb_test_multiple { command message args } { send_user "Message is \"$message\"\n" } - set result -1 set string "${command}\n" if { $command != "" } { set multi_line_re "\[\r\n\] *>" @@ -1574,25 +1573,25 @@ proc gdb_test_multiple { command message args } { } set gdb_test_name "$message" - set result 0 - set code [catch {gdb_expect $code} string] - - # Clean up the gdb_test_name variable. If we had a - # previous value then restore it, otherwise, delete the variable - # from the parent scope. - if { [info exists gdb_test_name_old] } { - set gdb_test_name "$gdb_test_name_old" - } else { - unset gdb_test_name - } - - if {$code == 1} { - global errorInfo errorCode - return -code error -errorinfo $errorInfo -errorcode $errorCode $string - } elseif {$code > 1} { - return -code $code $string + try { + if {[info exists result]} { + error "result set but not used" + } + set result 0 + if {[catch {gdb_expect $code} string opts] == 0} { + return $result + } + return -options [dict incr opts -level] $string + } finally { + # Clean up the gdb_test_name variable. If we had a + # previous value then restore it, otherwise, delete the variable + # from the parent scope. + if { [info exists gdb_test_name_old] } { + set gdb_test_name "$gdb_test_name_old" + } else { + unset gdb_test_name + } } - return $result } # Usage: gdb_test_multiline NAME INPUT RESULT {INPUT RESULT} ... From patchwork Mon Aug 24 13:58:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142093 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AC28C4BA9036 for ; Mon, 24 Aug 2026 14:02:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AC28C4BA9036 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=NhqhVU87; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=aK28une0; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=0RO/VzVb; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=H/P4SAmF X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id ABFCA4BA9036 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ABFCA4BA9036 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ABFCA4BA9036 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; cv=none; b=mFKXkgjAXEiIRO59i1b7Y1orfSO+Z/YNgTzCMsMUkwb6zQWSSrFnBKAHu02nnrvN8rA2faUDanyVeSdUhmDeHaeUSS78BTt26dSYi1sNV9SMbtjGW4AWunEOvPJQw0bBg3fT7XxAH/Kmluzb41Q+QGx0o3M5CGXYNWBzVxYty+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; c=relaxed/simple; bh=tiRn360uNXdvMPS8vPqGbdS0Lupdu4zDm1HNUtEeJYA=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=OHkXf9fQnCOYrkPcPp+bPB9d2I3LP/8xMBLg+2YklkJGtKiC3U7s1U7YsB1xuXEjSBa/0x0XUsc1nxoKe8/xk3O0N6+binkauBd7+NA0wFLfsBK05hSuHm8NOKVFHE3W4CSJrfiKA7Yvcam0Wxluaac2Ufqq/2hnUt5/gMx2tfg= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=NhqhVU87; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=aK28une0; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=0RO/VzVb; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=H/P4SAmF DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ABFCA4BA9036 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6D3EB868E3 for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gTARxaLBaPb7gs/mXKfjRpSVoRZKvtD+yTptQK3p4gI=; b=NhqhVU874KVtXPVh6sVq552+icQqdz7aXWkagCkcHsSsmQ7xPIVbi1pKksQMmbvne8q+6M rUTUIRoAqb4BL8BB2lWGRJWyWnzZDTUhUZ4X1Lhoubi3yGpmdIM6MOtHWM9zRirjZVkpzM rG+jArg0CQYeV0ylkbKsYIPV9kYEcn0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gTARxaLBaPb7gs/mXKfjRpSVoRZKvtD+yTptQK3p4gI=; b=aK28une0MWYN8+Aa7tUDbNf+RkXFT7btHRXa+F/NCUDPaZOvuDLC0heMhwfnazbLWWMNXw NNR6WoAXMdMRqtCQ== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gTARxaLBaPb7gs/mXKfjRpSVoRZKvtD+yTptQK3p4gI=; b=0RO/VzVbNu7NofzcnUumO22BgitWUINMnffzGtco4c1/YOHmKdSNhnNzidflZ3I8yvKkNZ DXluznyPFbpnilZW8K99BbyTAXhTDTHTvc9LKGfJvT69uvwonM/QROIIsPvD+wguuOYlk5 1jBd8B+mE10ixmfDLgqBkMSw+qGzVSU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gTARxaLBaPb7gs/mXKfjRpSVoRZKvtD+yTptQK3p4gI=; b=H/P4SAmFN5VWvOB7zkARohJgm/dLnyON40ZtPul9EJ+ik+WyCFqdjP8NBVGFRnp2sAU+YH fbSm2OUWjh/eycCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id BD4941340C for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 0OgFLSBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 09/11] [gdb/testsuite] Refactor exception handling in lock_file_acquire/release Date: Mon, 24 Aug 2026 15:58:53 +0200 Message-ID: <20260824135855.1195963-10-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 X-Spam-Level: X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Use try/on-error to simplify lock_file_acquire/release. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34552 --- gdb/testsuite/lib/gdb-utils.exp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp index 1f04a626cbc..35329f3c46e 100644 --- a/gdb/testsuite/lib/gdb-utils.exp +++ b/gdb/testsuite/lib/gdb-utils.exp @@ -184,7 +184,9 @@ proc version_compare { l1 op l2 } { proc lock_file_acquire {lockfile} { verbose -log "acquiring lock file: $::subdir/${::gdb_test_file_name}.exp" while {true} { - if {![catch {open $lockfile {WRONLY CREAT EXCL}} rc]} { + try { + open $lockfile {WRONLY CREAT EXCL} + } on ok {rc} { set msg "locked by $::subdir/${::gdb_test_file_name}.exp" verbose -log "lock file: $msg" # For debugging, put info in the lockfile about who owns @@ -192,6 +194,8 @@ proc lock_file_acquire {lockfile} { puts $rc $msg flush $rc return [list $rc $lockfile] + } on error {} { + # Ignore and try again. } after 10 } @@ -202,18 +206,20 @@ proc lock_file_acquire {lockfile} { proc lock_file_release {info} { verbose -log "releasing lock file: $::subdir/${::gdb_test_file_name}.exp" - if {![catch {fconfigure [lindex $info 0]}]} { - if {![catch { - close [lindex $info 0] - file delete -force [lindex $info 1] - } rc]} { - return "" - } else { - return -code error "Error releasing lockfile: '$rc'" - } - } else { + try { + fconfigure [lindex $info 0] + } on error {} { error "invalid lock" } + + try { + close [lindex $info 0] + file delete -force [lindex $info 1] + } on error {rc} { + error "Error releasing lockfile: '$rc'" + } + + return "" } # Return directory where we keep lock files. From patchwork Mon Aug 24 13:58:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142094 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 133B74BA7999 for ; Mon, 24 Aug 2026 14:03:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 133B74BA7999 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=qwRIg5FR; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Ena6c1nx; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=tzXpm8yB; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=vT7ia5WR X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id D466E4BA79B1 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D466E4BA79B1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D466E4BA79B1 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579954; cv=none; b=r1+EPyzrEiHRf4HXNJRKjuDTIz72vHAU9DJ10cZoQOxDg0a98oG7wMeYt4tbOgcKcM6XQLy1YaDNsasPiQwkbrgjjW1RXCdAcrKIfx2wVwxI39Td7bGU+1bJZLQReyFuYfvOxhk6C3bzPpwTyAAURw5NkYt70cVe/WeQmF0FUY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579954; c=relaxed/simple; bh=XiJShh0tp5v8ZPP645Et06h/tzdrMsd+UNa+a+bBUO4=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=C+XbTLJYb6m74Wdzv3JTq4uEcWLxWImDDJ7g6g3sZZc1SGYze4E0M7G0iLlYpzs6Gf5uCahr5DVes3gzvjqCWFdQuIfSTJEDw9hdCt9/5l9w4Snb5Cy6d8xs0gn+1BmOLzPayWwaizQFjoXrHqQ71GwZ1HWEM7knkfRyLxsUt5A= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=qwRIg5FR; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Ena6c1nx; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=tzXpm8yB; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=vT7ia5WR DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D466E4BA79B1 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 86B9A1F6E6 for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aSe3URil4AFshyWxxUQ1GiMHMAUApU1SZi2Jgz7ftU=; b=qwRIg5FR9WNU5mF5QyIRluJX/lpYPsvfo/0Kt53MPGIg9+NDUuOzbkbh540YLeoZLvANi9 vfQMu59hit7EvTZQ3wIxMMDcnXv/5hAJO1O3Pp49O55X6T3OGzUVF1fV2T/SKaH6bEsj53 G2P4dl9uMTMoGSxGNJ10Ehb7OUB1LzA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aSe3URil4AFshyWxxUQ1GiMHMAUApU1SZi2Jgz7ftU=; b=Ena6c1nxU/fkHve/nGIc/W8BCn1CrbRlC8C42SAvzP3cvNPhxOsQg+sAdcpFbsYkW6Uzd8 KKAcWt8tcCxJMUCQ== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aSe3URil4AFshyWxxUQ1GiMHMAUApU1SZi2Jgz7ftU=; b=tzXpm8yBchlbEOoiWmOHsvTp5UZue897bZYlIUbjDoLderwHuJpD5isM91SOZ8JnzLKQwO mn73+Xlj4cy0dJ8svfpOHU7NfvwJ7aGbAuGTHfSN+6NcVknBtGbZalZuS4yiDnqXOLFNAd UTu4mN6W3nU1/EjrGEyiZ7tLe11oACQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aSe3URil4AFshyWxxUQ1GiMHMAUApU1SZi2Jgz7ftU=; b=vT7ia5WRLyepa0AvdXx3isUW1eXZxJZR92saQpVS3s7hXG2jATd9dKHLXiso6kMzkpWUi6 96obS6kJAaKMCuDA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D76D41340F for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id sExrMyBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 10/11] [gdb/testsuite] Refactor exception handling in tentative_rename Date: Mon, 24 Aug 2026 15:58:54 +0200 Message-ID: <20260824135855.1195963-11-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,imap1.dmz-prg2.suse.org:helo]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Use try/on-error to simplify tentative_rename. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34552 --- gdb/testsuite/lib/gdb.exp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 99468ac3ef3..e69a598bb10 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -8639,17 +8639,18 @@ proc standard_temp_file {basename} { # as is and delete A. Return 1 if rename happened. proc tentative_rename { a b } { - global errorInfo errorCode - set code [catch {file rename -- $a $b} result] - if { $code == 1 && [lindex $errorCode 0] == "POSIX" \ - && [lindex $errorCode 1] == "EEXIST" } { - file delete $a - return 0 - } - if {$code == 1} { - return -code error -errorinfo $errorInfo -errorcode $errorCode $result - } elseif {$code > 1} { - return -code $code $result + try { + file rename -- $a $b + } on error {result opts} { + set errorcode [dict get $opts -errorcode] + if { [lindex $errorcode 0] == "POSIX" \ + && [lindex $errorcode 1] == "EEXIST" } { + file delete $a + return 0 + } + + # Rethrow. + return -options $opts $result } return 1 } From patchwork Mon Aug 24 13:58:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 142091 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 906C24B9DB64 for ; Mon, 24 Aug 2026 14:02:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 906C24B9DB64 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=FubqW2BS; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=FH7GuTwY; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=AW+XLzSA; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+gqLlBPq X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id C45CA4BA9006 for ; Mon, 24 Aug 2026 13:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C45CA4BA9006 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C45CA4BA9006 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; cv=none; b=X0/6j8bkM0wL9MyNQasBNL5GeWD0P4NDKjRbDPiQn0KMdqN5CKD+AIYR/CPO6Q7SAMTk9DXNd8mldV9BhbWOXiYgv0A5JQui1KfNhZ7OB1wLfOHGloUNRKBUy8c8BmKZmCW9DjMPD0AU6jWhIWnESAxzADCdNJdZJwbeewiJ2mQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787579953; c=relaxed/simple; bh=SxYJjk4H5VBtIqLzQfWXOIQzT4tGAIhBdI2bJveRkKQ=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=qjx7e/jqiTk4PLlsinEIJ9R4v90aOWVGhYs1FAJwfSvPaae/gDQqK+92zc2pN6UlpepdrxKvleAk5U0pycVcNLS6eGcvevqvScvRAjl7ueNoJqPKo2UFBaCHJEm8VfQBK1vzg8MHEn5cn9Bs+eU5gMIl9MYr+kcm3eFPk0cuQOw= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=FubqW2BS; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=FH7GuTwY; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=AW+XLzSA; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+gqLlBPq DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C45CA4BA9006 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8D7F786931 for ; Mon, 24 Aug 2026 13:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fDRzA2cAPPuNyC0sAN7QhTZAnWvroJc0eAln557MNss=; b=FubqW2BS5JhF9/g+TW1G0u07xxjJDOOLieZMutypDkur+9JaWzWeLcrtthOSU6jUkI8guD ocLlWxRmZU6Vd9Xr/vGFYRVZ/aarUcOzxIro9z+ALtmny5eKGcEEeWX/AYyEVQ+x+JVnU2 f+zhZgqpNKjXSiIFRz457mIUvzLt5sI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fDRzA2cAPPuNyC0sAN7QhTZAnWvroJc0eAln557MNss=; b=FH7GuTwYJT8H4nTU9Dsptxf+b+2dusCCVmsKwdriUCiimr/eNkSOdQy119ya3f8wXRQh9e QCIK2iTC16ckaxCg== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fDRzA2cAPPuNyC0sAN7QhTZAnWvroJc0eAln557MNss=; b=AW+XLzSAVShGRnn7vO+FQwsEtZkx0vN+s0EwtyQKo4u2h3GsIzHU/b72KLLqSmvRoi68y5 ftvC/9NyX11D/TrrQdpqgJOpp1ZVKyeHEmLU2mreA2JH5PJ2HzR27oU9Eaw3RYIA9ggv+X TXa/HtKN/hF3UrgopWsmwrUmZGju8Lc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1787579944; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fDRzA2cAPPuNyC0sAN7QhTZAnWvroJc0eAln557MNss=; b=+gqLlBPqDP1oK/PTyt6R6msWxcVUkJ7cayLfxba+5+fX5JqN4ssbUj7Sr+GgziXbQ+eCzN HAAoMeG7V5nqJkDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id F243713411 for ; Mon, 24 Aug 2026 13:58:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id oE3nOSBOjGo+eQAAD6G6ig (envelope-from ) for ; Mon, 24 Aug 2026 13:58:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 11/11] [gdb/testsuite] Refactor exception handling in with_stub_devices Date: Mon, 24 Aug 2026 15:58:55 +0200 Message-ID: <20260824135855.1195963-12-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260824135855.1195963-1-tdevries@suse.de> References: <20260824135855.1195963-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no 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: 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~patchwork=sourceware.org@sourceware.org Use with_override and try/finally to simplify with_stub_devices. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34552 --- gdb/testsuite/gdb.rocm/hcc-amdgpu-targets.exp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gdb/testsuite/gdb.rocm/hcc-amdgpu-targets.exp b/gdb/testsuite/gdb.rocm/hcc-amdgpu-targets.exp index 8f04cca7981..7f90a112138 100644 --- a/gdb/testsuite/gdb.rocm/hcc-amdgpu-targets.exp +++ b/gdb/testsuite/gdb.rocm/hcc-amdgpu-targets.exp @@ -24,13 +24,16 @@ load_lib rocm.exp # Run BODY with find_amdgpu_devices stubbed to return DEVICES, then # restore the original proc. proc with_stub_devices {devices body} { - rename find_amdgpu_devices __saved_find_amdgpu_devices # tclint-disable-next-line command-args - proc find_amdgpu_devices {} [list return $devices] - set code [catch {uplevel 1 $body} result] - rename find_amdgpu_devices {} - rename __saved_find_amdgpu_devices find_amdgpu_devices - return -code $code $result + proc with_stub_devices_find_amdgpu_devices {} [list return $devices] + try { + # tclint-disable-next-line command-args + with_override \ + find_amdgpu_devices with_stub_devices_find_amdgpu_devices \ + $body + } finally { + rename with_stub_devices_find_amdgpu_devices {} + } } # Tests using find_amdgpu_devices (no HCC_AMDGPU_TARGET env var).