From patchwork Tue Jan 31 13:54:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Machado X-Patchwork-Id: 19062 Received: (qmail 91141 invoked by alias); 31 Jan 2017 13:55:16 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 91132 invoked by uid 89); 31 Jan 2017 13:55:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=1977, 197, 7, completion, Breakpoint X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 31 Jan 2017 13:55:05 +0000 Received: from svr-orw-fem-03.mgc.mentorg.com ([147.34.97.39]) by relay1.mentorg.com with esmtp id 1cYYtj-0002D7-8E from Luis_Gustavo@mentor.com ; Tue, 31 Jan 2017 05:55:03 -0800 Received: from Opsys.world.mentorg.com (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.3.224.2; Tue, 31 Jan 2017 05:55:02 -0800 From: Luis Machado To: , Subject: [PATCH,v2] Fix gdb.linespec/explicit.exp Date: Tue, 31 Jan 2017 07:54:59 -0600 Message-ID: <1485870899-12563-1-git-send-email-lgustavo@codesourcery.com> In-Reply-To: <1485552639-18470-1-git-send-email-lgustavo@codesourcery.com> References: <1485552639-18470-1-git-send-email-lgustavo@codesourcery.com> MIME-Version: 1.0 X-IsSubscribed: yes Changes in v2: - Adjusted hex character pattern based on Keith Seitz's feedback and removed trailing whitespace. I was chasing the cause of a few timeouts in this testcase (both on my local machine, Ubuntu 16.04 x86-64, and on a aarch64-elf board) and managed to track it down to this particular test: set tst "complete unique function name" send_gdb "break -function mai\t" gdb_test_multiple "" $tst { "break -function mai\\\x07n " { send_gdb "\n" gdb_test "" ".*Breakpoint \[0-9\]+.*" $tst gdb_test_no_output "delete \$bpnum" "delete $tst breakpoint" } } FAIL: gdb.linespec/explicit.exp: complete unique function name (timeout) FAIL: gdb.linespec/explicit.exp: complete non-unique function name (timeout) FAIL: gdb.linespec/explicit.exp: complete non-existant function name (timeout) FAIL: gdb.linespec/explicit.exp: complete unique file name (timeout) FAIL: gdb.linespec/explicit.exp: complete non-unique file name (timeout) There are 2 problems. The first one is that i couldn't see the hex character x07 being ouput in both of the above systems for this particular test. There is really only one possible completion result for the main function. Maybe this character is output in other systems? So i started playing around with the regular expression to make x07 optional, but no matter what pattern i used, it just didn't match. It was then that i noticed we're missing a leading "-re" before the gdb_test_multiple pattern to be matched, the second problem. I checked the documentation for the command and did not find anything about the use without "-re". So i assumed it is an oversight. After the adjustments, i've made x07 optional and adjusted the pattern according to Keith Seitz's feedback: "break -function mai(\\\x07)?n" I get full passes on Ubuntu 16.04 x86-64 and on aarch64-elf. gdb/testsuite/ChangeLog 2017-01-31 Luis Machado * gdb.linespec/explicit.exp: Fix gdb_test_multiple calls missing the -re switch. Make the x07 character optional in the unique function name completion test. --- gdb/testsuite/gdb.linespec/explicit.exp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp index 637f476..e680a2e 100644 --- a/gdb/testsuite/gdb.linespec/explicit.exp +++ b/gdb/testsuite/gdb.linespec/explicit.exp @@ -154,7 +154,7 @@ namespace eval $testfile { set tst "complete 'break -$abbrev'" send_gdb "break -${abbrev}\t" gdb_test_multiple "" $tst { - "break -$full " { + -re "break -$full " { send_gdb "\n" gdb_test_multiple "" $tst { -re "missing argument for \"-$full\".*$gdb_prompt " { @@ -187,7 +187,7 @@ namespace eval $testfile { set tst "complete unique function name" send_gdb "break -function mai\t" gdb_test_multiple "" $tst { - "break -function mai\\\x07n" { + -re "break -function mai(\\\x07)?n" { send_gdb "\n" gdb_test "" ".*Breakpoint \[0-9\]+.*" $tst gdb_test_no_output "delete \$bpnum" "delete $tst breakpoint" @@ -197,7 +197,7 @@ namespace eval $testfile { set tst "complete non-unique function name" send_gdb "break -function myfunc\t" gdb_test_multiple "" $tst { - "break -function myfunc\\\x07tion" { + -re "break -function myfunc\\\x07tion" { send_gdb "\t\t" gdb_test_multiple "" $tst { -re "\\\x07\r\nmyfunction\[ \t\]+myfunction2\[ \t\]+myfunction3\[ \t\]+myfunction4\[ \t\]+\r\n$gdb_prompt " { @@ -211,7 +211,7 @@ namespace eval $testfile { set tst "complete non-existant function name" send_gdb "break -function foo\t" gdb_test_multiple "" $tst { - "break -function foo\\\x07" { + -re "break -function foo\\\x07" { send_gdb "\t\t" gdb_test_multiple "" $tst { -re "\\\x07\\\x07" { @@ -225,7 +225,7 @@ namespace eval $testfile { set tst "complete unique file name" send_gdb "break -source 3ex\t" gdb_test_multiple "" $tst { - "break -source 3explicit.c " { + -re "break -source 3explicit.c " { send_gdb "\n" gdb_test "" \ {Source filename requires function, label, or line offset.} $tst @@ -235,7 +235,7 @@ namespace eval $testfile { set tst "complete non-unique file name" send_gdb "break -source exp\t" gdb_test_multiple "" $tst { - "break -source exp\\\x07licit" { + -re "break -source exp\\\x07licit" { send_gdb "\t\t" gdb_test_multiple "" $tst { -re "\\\x07\r\nexplicit.c\[ \t\]+explicit2.c\[ \t\]+\r\n$gdb_prompt" { @@ -247,7 +247,7 @@ namespace eval $testfile { } } - "break -source exp\\\x07l" { + -re "break -source exp\\\x07l" { # This pattern may occur when glibc debuginfo is installed. send_gdb "\t\t" gdb_test_multiple "" $tst { @@ -264,10 +264,10 @@ namespace eval $testfile { set tst "complete non-existant file name" send_gdb "break -source foo\t" gdb_test_multiple "" $tst { - "break -source foo" { + -re "break -source foo" { send_gdb "\t\t" gdb_test_multiple "" $tst { - "\\\x07\\\x07" { + -re "\\\x07\\\x07" { send_gdb "\n" gdb_test "" \ {Source filename requires function, label, or line offset.} \ @@ -280,7 +280,7 @@ namespace eval $testfile { set tst "complete filename and unique function name" send_gdb "break -source explicit.c -function ma\t" gdb_test_multiple "" $tst { - "break -source explicit.c -function main " { + -re "break -source explicit.c -function main " { send_gdb "\n" gdb_test "" ".*Breakpoint .*" $tst gdb_test_no_output "delete \$bpnum" "delete $tst breakpoint" @@ -290,7 +290,7 @@ namespace eval $testfile { set tst "complete filename and non-unique function name" send_gdb "break -so 3explicit.c -func myfunc\t" gdb_test_multiple "" $tst { - "break -so 3explicit.c -func myfunc\\\x07tion" { + -re "break -so 3explicit.c -func myfunc\\\x07tion" { send_gdb "\t\t" gdb_test_multiple "" $tst { -re "\\\x07\r\nmyfunction3\[ \t\]+myfunction4\[ \t\]+\r\n$gdb_prompt " { @@ -304,10 +304,10 @@ namespace eval $testfile { set tst "complete filename and non-existant function name" send_gdb "break -sou 3explicit.c -fun foo\t" gdb_test_multiple "" $tst { - "break -sou 3explicit.c -fun foo\\\x07" { + -re "break -sou 3explicit.c -fun foo\\\x07" { send_gdb "\t\t" gdb_test_multiple "" $tst { - "\\\x07\\\x07" { + -re "\\\x07\\\x07" { send_gdb "\n" gdb_test "" \ {Function "foo" not defined in "3explicit.c".} $tst @@ -319,7 +319,7 @@ namespace eval $testfile { set tst "complete filename and function reversed" send_gdb "break -func myfunction4 -source 3ex\t" gdb_test_multiple "" $tst { - "break -func myfunction4 -source 3explicit.c " { + -re "break -func myfunction4 -source 3explicit.c " { send_gdb "\n" gdb_test "" "Breakpoint \[0-9\]+.*" $tst gdb_test_no_output "delete \$bpnum" "delete $tst breakpoint"