From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 4PiRJUjc9WPwhToAWB0awg (envelope-from ) for ; Wed, 22 Feb 2023 04:11:36 -0500 Received: by simark.ca (Postfix, from userid 112) id 807941E222; Wed, 22 Feb 2023 04:11:36 -0500 (EST) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=c6z5XzJ2; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RDNS_DYNAMIC autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 66CEB1E0D3 for ; Wed, 22 Feb 2023 04:11:35 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5B926385842A for ; Wed, 22 Feb 2023 09:11:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5B926385842A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677057094; bh=0jrMoA9T2pQo+ujql2xfbLfZQlkJWINVsRbDlg9tocc=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=c6z5XzJ2LJdP5x78S1RsNPDWtAKO+r3cwvHq5kk3vKuEG+SJyFDTd/ZZCeH96JokQ W0rePjHbv4Gm7JbjueUSB2tyTg+c2Ycb5BDdX42N7pXyKfYCRQNXNNgKiGEZQnueQ0 iYNMoQ2SXi7lXMNnlEN06tBFY9vKALpj8XpUBv5A= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 5BB063858D33 for ; Wed, 22 Feb 2023 09:11:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5BB063858D33 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-614-M91m9ZKyNR-jXTmwgljwBg-1; Wed, 22 Feb 2023 04:11:13 -0500 X-MC-Unique: M91m9ZKyNR-jXTmwgljwBg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 782BC18A6462 for ; Wed, 22 Feb 2023 09:11:13 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.39.195.8]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 00D1B4024CA0; Wed, 22 Feb 2023 09:11:12 +0000 (UTC) To: gdb-patches@sourceware.org Cc: Bruno Larsen Subject: [PATCH] gdb/testsuite: Improve testing of GDB's completion functions Date: Wed, 22 Feb 2023 10:11:10 +0100 Message-Id: <20230222091110.2995513-1-blarsen@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Bruno Larsen via Gdb-patches Reply-To: Bruno Larsen Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" When looking at some failures of gdb.linespec/cp-completion-aliases.exp, I noticed that when a completion test will fail, it always fails with a timeout. This is because most completion tests use gdb_test_multiple and only add a check for the correct output. This commit adds new options for both, tab and command completion. For command completion, the new option will check if the prompt was printed, and fail in this case. This is enough to know that the test has failed because the check comes after the PASS path. For tab completion, we have to check if GDB outputted more than just the input line, because sometimes GDB would have printed a partial line before finishing with the correct completion. --- gdb/testsuite/lib/completion-support.exp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gdb/testsuite/lib/completion-support.exp b/gdb/testsuite/lib/completion-support.exp index bf9c5ad352c..275f8874f15 100644 --- a/gdb/testsuite/lib/completion-support.exp +++ b/gdb/testsuite/lib/completion-support.exp @@ -94,6 +94,9 @@ proc test_gdb_complete_tab_none { line } { -re "^$line_re$completion::bell_re$" { pass "$test" } + -re "$line_re\[^ \]+ $" { + fail "$test" + } } clear_input_line $test @@ -108,11 +111,15 @@ proc test_gdb_complete_tab_unique { input_line complete_line_re append_char_re } set test "tab complete \"$input_line\"" send_gdb "$input_line\t" + set partial_complete [string_to_regexp $input_line] set res 1 gdb_test_multiple "" "$test" { -re "^$complete_line_re$append_char_re$" { pass "$test" } + -re "$partial_complete\[^ \]+ $" { + fail "$test" + } timeout { fail "$test (timeout)" set res -1 @@ -164,6 +171,9 @@ proc test_gdb_complete_tab_multiple { input_line add_completed_line \ } } } + -re "${maybe_bell}\r\n.+\r\n$gdb_prompt $" { + fail "$test" + } } } } @@ -191,6 +201,9 @@ proc test_gdb_complete_cmd_unique { input_line complete_line_re } { -re "^$cmd_re\r\n$complete_line_re\r\n$gdb_prompt $" { pass $test } + -re "$gdb_prompt $" { + fail "$test" + } } } @@ -217,6 +230,9 @@ proc test_gdb_complete_cmd_multiple { cmd_prefix completion_word completion_list -re "^$cmd_re\r\n$expected_re$gdb_prompt $" { pass $test } + -re "$gdb_prompt $" { + fail "$test" + } } } -- 2.39.1