This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch, testsuite] require readline for gdb.linespec/explicit.exp tab-completion tests
- From: Keith Seitz <keiths at redhat dot com>
- To: Sandra Loosemore <sandra at codesourcery dot com>, gdb-patches <gdb-patches at sourceware dot org>
- Date: Thu, 17 Sep 2015 11:50:20 -0700
- Subject: Re: [patch, testsuite] require readline for gdb.linespec/explicit.exp tab-completion tests
- Authentication-results: sourceware.org; auth=none
- References: <55FA6B97 dot 4080209 at codesourcery dot com>
On 09/17/2015 12:28 AM, Sandra Loosemore wrote:
> Tab-completion tests require readline support. The ones in
> gdb.base/completion.exp are already conditional, but the recently-added
> gdb.linespec/explicit.exp tests are not. This patch fixes that, and
> also an obvious typo ("faill" -> "fail"). The patch is kind of long
> because I had to insert an "if" block and reindent, but there's nothing
> else going on here. OK to commit?
I'm not a maintainer, but I wouldn't hesitate to commit this as obvious.
Thank you for catching (and fixing) that.
> The immediate problem is that the response to the "break -function
> mai\t" test doesn't always include the ^G character in the output
> pattern, and the other FAILs are cascading off of the testcase not being
> structured to recover from a pattern match failure (it's sending more
> commands without a newline to terminate the one that failed). But, I
> have no clue why GDB is giving a ^G in some configurations and not
> others (I observed that this test fails on nios2-elf target but passes
> on nios2-linux-gnu, for instance), or whether this difference is
> indicative of an actual bug. So I've not touched that part of the
> testcase.
Can you reliably reproduce the failure? I have been unable to do so
locally, but I have a couple of guesses why this test might fail.
I've attached a patch where I've made two changes. First, I've switched
from using "main" as a unique completion to some goofy new function
where the name is hopefully truly unique.
Second I believe the test is incorrect (or at least in combination with
some readline versions?). ^G is output only for non-unique completions.
So with this particular test, I don't think it should be present at all.
I've removed it in the patch.
If you can reliably reproduce the failure, I sure would love to know
whether this patch helps at all.
Keith
diff --git a/gdb/testsuite/gdb.linespec/explicit.c b/gdb/testsuite/gdb.linespec/explicit.c
index 4e1c635..5b65311 100644
--- a/gdb/testsuite/gdb.linespec/explicit.c
+++ b/gdb/testsuite/gdb.linespec/explicit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2013 Free Software Foundation, Inc.
+ Copyright 2012-2015 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
@@ -42,6 +42,12 @@ myfunction (int arg)
return r;
}
+static int
+explicit_exp_really_unique_function_name (int arg)
+{
+ return arg;
+}
+
int
main (void)
{
@@ -52,5 +58,5 @@ main (void)
for (i = 0, j = 0; i < 1000; ++i)
j += myfunction (0);
- return myfunction2 (j);
+ return explicit_exp_really_unique_function_name (myfunction2 (j));
}
diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp
index a0851cd..6b9c8e0 100644
--- a/gdb/testsuite/gdb.linespec/explicit.exp
+++ b/gdb/testsuite/gdb.linespec/explicit.exp
@@ -181,9 +181,9 @@ namespace eval $testfile {
}
set tst "complete unique function name"
- send_gdb "break -function mai\t"
+ send_gdb "break -function explicit_exp_really_unique_f\t"
gdb_test_multiple "" $tst {
- "break -function mai\\\x07n" {
+ "break -function explicit_exp_really_unique_function_name " {
send_gdb "\n"
gdb_test "" ".*Breakpoint \[0-9\]+.*" $tst
gdb_test_no_output "delete \$bpnum" "delete $tst breakpoint"