From patchwork Mon Mar 4 19:47:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thiago Jung Bauermann X-Patchwork-Id: 86767 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 909133858420 for ; Mon, 4 Mar 2024 19:47:39 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by sourceware.org (Postfix) with ESMTPS id 9C30D3858C55 for ; Mon, 4 Mar 2024 19:47:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C30D3858C55 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9C30D3858C55 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::42c ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709581632; cv=none; b=UGa2CwD8/gCYKqbJY/EFMbHI9otlRNslvhlfA4aFee+15rot7wIJqkxxFx/7jTZcj5tOzqI5TB0L4E/ds2oT0tTsRupUxsOEK8bAIAzNpROSTVpV9KlWmrx1J3LifzuEQ0IghE4PjXJ16mkRguFZKUkBTfr3ddUrPhLJM8IjX8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709581632; c=relaxed/simple; bh=J8dGwl3tSob5XGxPlkSvBA+BpTb0gm1AWHxR9uvyxEM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=ZF+cVpfNSTbfnAnS3y/ByP5x9FbyOn3t7+6svVYaQosrmCAPGij19ntnWhNWfZfgyavi35VX/B2tnkZi5JQWlU3aPjAx+O3taUPwkIJkT60kAGT4J0FvgzkXJeqW74+InUw/93WkaP7AlLQaqidWvbLZ8vMvkUV+Nbey/SPqLT0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-6da9c834646so4415259b3a.3 for ; Mon, 04 Mar 2024 11:47:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709581628; x=1710186428; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=volKaCyf3CpOmA2QcobnqzgN/JcHMSqQjTzlPclK60k=; b=ViY9E6xUqZykVNs7reupoSX0L2Z19hRViA8vILkD3ShIcaG0vbmo09jPz3x+Sjhzzy XkAgRccAt1u/AcTMMRpkOIkoZG4DxACFChA4f8kJuFrbfOYpb6fygxW92h9eKQp+bdqk xRc9+Il7+yPdb3zjeTOwR/6dxtw8ubHE7mZqat5+QDuZ8IQA/pXaUpxhR0ZlS69cGigZ /LVX8V550awGmN0JsZCdgF9GIvBSzRa3aDaLOiMcLqUmAW3XKjajX2wySnYx0Cm6DX0j ZJjw1RSSI15Yx36AM+Jr1OTxkue1d7Z52xzlxdsmDttXoHJn3xE0Beohmp1RMKhesGUC BM9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709581628; x=1710186428; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=volKaCyf3CpOmA2QcobnqzgN/JcHMSqQjTzlPclK60k=; b=qBds8j4czvaRWg+ucGo7hG5ZLDOiH925NBG8ZCOdFU+qjqa4bt3RvANSDdECSu144z I5Ag3NhiW/odYLpfrQAfLvoXqYYZ4Qf3hV/bdBPwvEjbkfTKrsW76EtyKZPKHq0EIiDL Ci6RCk4h/6jYNGNKscrq5yJnQQMrj3Vs5UdmQzGKpEjEO06cxkYK0Szn0xqNzqyTyA3W pFsO5tw++DZTotOqiy8YhHuUbmXT/s5uB5YU2LtwWigGvy8KNgKOz2zjeP079QwKaoSW 7Fc7I+nUPtJa9eI69x4t3omKP4B4oUBWQRh4ZBHlvYn2m2hPQvjjdG6ZnENKwa0TmIdW s0EQ== X-Gm-Message-State: AOJu0Yx0oPQsLLA8AP2QTTU9br1Q7quu/Mx9AjoZOoW6RpMLl4uNqr7g kN6eAXNZCOSw1ff9UltoR4HOu3uGX80Vs1gCgSl/+3Glz2R8T8X3ZRBUW2FG7ac2X8//cKicMjT W X-Google-Smtp-Source: AGHT+IFgWquACC6JTfGmK/jpD+0HV5b6E5bguILRHPZTYrdQoOnc3bOjLF6tlATg7HwvY6F3icGkkg== X-Received: by 2002:a05:6a20:12c2:b0:1a0:e707:8c2 with SMTP id v2-20020a056a2012c200b001a0e70708c2mr14096681pzg.29.1709581628548; Mon, 04 Mar 2024 11:47:08 -0800 (PST) Received: from localhost ([2804:14d:7e39:8470:3bba:9d48:df05:9a53]) by smtp.gmail.com with ESMTPSA id u15-20020a62d44f000000b006e554afa254sm7976385pfl.38.2024.03.04.11.47.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Mar 2024 11:47:08 -0800 (PST) From: Thiago Jung Bauermann To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH v3 1/2] gdb/testsuite: Consume all debug output in gdb.base/osabi.exp Date: Mon, 4 Mar 2024 16:47:05 -0300 Message-ID: <20240304194706.3384389-1-thiago.bauermann@linaro.org> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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 The Linaro CI runs the GDB testsuite using the read1 tool, which significantly increases the time it takes DejaGNU to read inferior output. On top of that sometimes the test machine has higher than normal load, which causes tests to run even slower. Because the gdb.base/osabi.exp enables "debug arch" output, which is somewhat verbose, it sometimes fails when running in the Linaro CI environment. Fix this problem by consuming each line of output from GDB, which causes DejaGNU to reset the timeout after each match (IIUC). Suggested-by: Simon Marchi --- Hello, This version uses the -lbl option to consume the non-interesting lines from the output, instead of rolling my own regexp. The difference in the regexp from -lbl is that it uses a lookahead pattern for the last \r\n in the line so it doesn't consume it. This version also fixes a problem pointed out by Simon: > Ok, one interrogation I had while reading your patch was the fact that > the two patterns above begin and end with \r\n. I don't see how that > can possibly work, since that would consume two \r\n between each line. > I would expect to see only \r\n at the end of each pattern. I noticed that the general pattern in the testsuite is to consume the \r\n at the beginning of the line, so that is what this patch does. I use a lookahead pattern for the \r\n at the end so that it isn't consumed. gdb/testsuite/gdb.base/osabi.exp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) base-commit: 1485a3fb63619cced99dd7a4a043cf01a0f423d9 diff --git a/gdb/testsuite/gdb.base/osabi.exp b/gdb/testsuite/gdb.base/osabi.exp index 9bbfff52bae8..97060a33e06a 100644 --- a/gdb/testsuite/gdb.base/osabi.exp +++ b/gdb/testsuite/gdb.base/osabi.exp @@ -23,8 +23,24 @@ require !gdb_debug_enabled proc test_set_osabi_none { } { clean_restart + # Because the test enables debug output, which is somewhat verbose, if we + # look just for the specific line we want to see may timeout before GDB + # prints the next prompt when running in very slow or overloaded machines + # (especially when the read1 tool is used). We need to consume all the + # debug output to avoid triggering the timeout, so use line-by-line + # matching. gdb_test_no_output "set debug arch 1" - gdb_test "set osabi none" ".*gdbarch_find_by_info: info.osabi 1 \\(none\\).*" + set saw_info_osabi 0 + set test "set osabi none" + gdb_test_multiple $test $test -lbl { + -re "\r\ngdbarch_find_by_info: info.osabi 1 \\(none\\)(?=\r\n)" { + set saw_info_osabi 1 + exp_continue + } + -re "$::gdb_prompt \$" { + gdb_assert { $saw_info_osabi } $test + } + } } test_set_osabi_none From patchwork Mon Mar 4 19:47:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thiago Jung Bauermann X-Patchwork-Id: 86768 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 454073858289 for ; Mon, 4 Mar 2024 19:47:41 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 90B47385842F for ; Mon, 4 Mar 2024 19:47:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 90B47385842F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 90B47385842F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::436 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709581634; cv=none; b=RAIvMsBkvxti1/U9OC/2pNyCRhg9u5q4n6/7y1zKszMpcrusczjp21CS7CHu/wZcZOOKgZi8V1tIzo6+3TDJEaJ35+iG+Hy4WXLMAbWj7cT0jpHJ82J7DMzyPpBzhuehCl9W3cx3rgHQI9fPFmZNB4l+kvU/uaEmClw4wqAaPBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709581634; c=relaxed/simple; bh=0mGXsYhQUvG7M4YuWePyMkqwtQohlt9A/7iYaLY7cw4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Uu5hnnusRaRS62YZ1t1R1VUokjnH5EtTgqTUoxkwM2YvS/Iuehe4fbu7RNcGCmvwlrlsTHYW08/nTY0wbtfDcBfJgxDd9Saeo6JtqQfntVY6LlVfJsfZqkq+OUNBTBUnsj4xOoNVdeQ7HoRWx0zcmWvy4nmtY5hA9aOrMYV0Goo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-6e56787e691so4041250b3a.0 for ; Mon, 04 Mar 2024 11:47:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1709581631; x=1710186431; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=m1YcJAXnYu/pWe+pX2XhY5Um/12sz/cZnIJTa45eF3w=; b=NSIVXMdtd++4Dg1VEGfccjfDTpkqprV6AhjQg/VtNojqCD1GQskRUvKFaO3zxGGycr TCp8FZs5WB8R9jrSRBQwTNpPIlu3Lll6R4NfrnlZnuHLs6rPgvJ//vltLfJ/pMVpS3Cj qgWX9cUwIkB0n0Is45+5Q6c8DwelhENuR5Jl38oD/Ce5Os4GAW+Lys3qQ5uCFPYA/HIV e9uAbwfj8AY5bEDNxs8E/lPlbhdaswfRWFDdmhyzVHXD8gvkZKOuoDrMihfixFz9EsD4 ibDtp5RyGu2ViSdkddipdMqau0WpSgTsy9+/HkcN9wm+jtZ/nHUbinx88pM2xXi7E6ge dSAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709581631; x=1710186431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m1YcJAXnYu/pWe+pX2XhY5Um/12sz/cZnIJTa45eF3w=; b=munX8c5yUA/c77DabQVQ+u52jZCZl3cuOmBTR3QboFb3vzOeZATja09KFj0/CWxBQD KLwKL9x+zDSwATxPukwB0cxQORbj7HPxRxpxkbOhT0PStEXUQ5eWcEAFE5ny8XgX19iU fiM5WXZUFS+4inuaaNaFUp4xZejrTukNc983Pp+wxNf0j+1HnxG0wDF06jl7T5sugFB7 c1IMJ1U6gNjSf+dBwVv13n4bcXLQbVIwnRWthw0a7sVZTxS+zIBwEiLFOd74629z3B0S c5GW5fYGeHI3gko2SGRwiHKJ2PrexZasEt4WFqo7amEo26NnQYg4Pu7KOich57j0qL4j iSyw== X-Gm-Message-State: AOJu0YzYTbJ6ysWRAfJumbXVcAUppkD4XkE1V+tBU4CNgtOs9hobgRDr ICF7felBjfO7sa9pdOMOutNVqc7p5xC7zqkx8QbmY+M4Wx7S16DkjloAzQjfa41j1L2d/C50QS3 O X-Google-Smtp-Source: AGHT+IEyHka6fW/hDA6xJaqDzbHaj7qX+zqtnSGoE7vUa1sBHwUQmA88ENxDyqHQoBFcRtomk4eeng== X-Received: by 2002:a05:6a21:970e:b0:1a1:58b8:59d8 with SMTP id ub14-20020a056a21970e00b001a158b859d8mr276328pzb.1.1709581631533; Mon, 04 Mar 2024 11:47:11 -0800 (PST) Received: from localhost ([2804:14d:7e39:8470:3bba:9d48:df05:9a53]) by smtp.gmail.com with ESMTPSA id b22-20020a63cf56000000b005dc884e9f5bsm7951642pgj.38.2024.03.04.11.47.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Mar 2024 11:47:11 -0800 (PST) From: Thiago Jung Bauermann To: gdb-patches@sourceware.org Subject: [PATCH v3 2/2] gdb/testsuite: Clarify -lbl option in gdb_test_multiple Date: Mon, 4 Mar 2024 16:47:06 -0300 Message-ID: <20240304194706.3384389-2-thiago.bauermann@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240304194706.3384389-1-thiago.bauermann@linaro.org> References: <20240304194706.3384389-1-thiago.bauermann@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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 I was a bit confused about the -lbl option in gdb_test_multiple, and needed to read its implementation to determine that it would be useful for my needs. Explicitly mention what the option does and why it's useful to hopefully help other developers. --- gdb/testsuite/lib/gdb.exp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index fe4ac7d27190..9a2a64fa9ba1 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -921,7 +921,10 @@ proc fill_in_default_prompt {prompt_regexp with_anchor} { # if one of them matches. If MESSAGE is empty COMMAND will be used. # -prompt PROMPT_REGEXP specifies a regexp matching the expected prompt # after the command output. If empty, defaults to "$gdb_prompt $". -# -lbl specifies that line-by-line matching will be used. +# -lbl specifies that line-by-line matching will be used. This means +# that lines from GDB not matched by any pattern will be consumed from +# the output buffer. This helps avoid buffer overflows and timeouts +# when testing verbose commands. # EXPECT_ARGUMENTS will be fed to expect in addition to the standard # patterns. Pattern elements will be evaluated in the caller's # context; action elements will be executed in the caller's context.