[RFAv8,2/3] Add tests for new alias default-args related commands and arguments.

Message ID 20200621183130.11503-3-philippe.waroquiers@skynet.be
State New
Headers show
Series
  • Allow the user to define default args for aliases
Related show

Commit Message

Jose E. Marchesi via Gdb-patches June 21, 2020, 6:31 p.m.
Test the new default-args behaviour and completion for the alias command.
Note that gdb.base/default-args.exp is somewhat copied from
with.exp (the test of the with command), while default-exp.c
is a plain copy of with.c.

gdb/testsuite/ChangeLog
YYYY-MM-DD  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.base/default-args.exp: New test.
	* gdb.base/default-args.c: New file.
	* gdb.base/alias.exp: Update expected error msg for alias foo=bar.
	* gdb.base/default.exp: Update to new help text and
	make test names unique.
	* gdb.base/help.exp: Likewise.
	* gdb.base/page.exp: Likewise.
	* gdb.base/style.exp: Likewise.
	* gdb.guile/guile.exp: Likewise.
	* gdb.python/python.exp: Likewise.
---
 gdb/testsuite/gdb.base/alias.exp        |   2 +-
 gdb/testsuite/gdb.base/default-args.c   |  41 ++++++++
 gdb/testsuite/gdb.base/default-args.exp | 124 ++++++++++++++++++++++++
 gdb/testsuite/gdb.base/default.exp      |   4 +-
 gdb/testsuite/gdb.base/help.exp         |   2 +-
 gdb/testsuite/gdb.base/page.exp         |   4 +-
 gdb/testsuite/gdb.base/style.exp        |   8 +-
 gdb/testsuite/gdb.guile/guile.exp       |   5 +-
 gdb/testsuite/gdb.python/python.exp     |  37 +++----
 9 files changed, 198 insertions(+), 29 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/default-args.c
 create mode 100644 gdb/testsuite/gdb.base/default-args.exp

-- 
2.20.1

Comments

Simon Marchi June 22, 2020, 2:18 p.m. | #1
On 2020-06-21 2:31 p.m., Philippe Waroquiers via Gdb-patches wrote:
> Test the new default-args behaviour and completion for the alias command.

> Note that gdb.base/default-args.exp is somewhat copied from

> with.exp (the test of the with command), while default-exp.c

> is a plain copy of with.c.


I got:

Applying: Add tests for new alias default-args related commands and arguments.
.git/rebase-apply/patch:202: trailing whitespace.

.git/rebase-apply/patch:204: new blank line at EOF.
+
warning: 2 lines add whitespace errors.

I've noted a few comments, but with those addressed the patch LGTM.

> 

> gdb/testsuite/ChangeLog

> YYYY-MM-DD  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

> 

> 	* gdb.base/default-args.exp: New test.

> 	* gdb.base/default-args.c: New file.

> 	* gdb.base/alias.exp: Update expected error msg for alias foo=bar.

> 	* gdb.base/default.exp: Update to new help text and

> 	make test names unique.

> 	* gdb.base/help.exp: Likewise.

> 	* gdb.base/page.exp: Likewise.

> 	* gdb.base/style.exp: Likewise.

> 	* gdb.guile/guile.exp: Likewise.

> 	* gdb.python/python.exp: Likewise.

> ---

>  gdb/testsuite/gdb.base/alias.exp        |   2 +-

>  gdb/testsuite/gdb.base/default-args.c   |  41 ++++++++

>  gdb/testsuite/gdb.base/default-args.exp | 124 ++++++++++++++++++++++++

>  gdb/testsuite/gdb.base/default.exp      |   4 +-

>  gdb/testsuite/gdb.base/help.exp         |   2 +-

>  gdb/testsuite/gdb.base/page.exp         |   4 +-

>  gdb/testsuite/gdb.base/style.exp        |   8 +-

>  gdb/testsuite/gdb.guile/guile.exp       |   5 +-

>  gdb/testsuite/gdb.python/python.exp     |  37 +++----

>  9 files changed, 198 insertions(+), 29 deletions(-)

>  create mode 100644 gdb/testsuite/gdb.base/default-args.c

>  create mode 100644 gdb/testsuite/gdb.base/default-args.exp

> 

> diff --git a/gdb/testsuite/gdb.base/alias.exp b/gdb/testsuite/gdb.base/alias.exp

> index 6993d42648..03c440dfd7 100644

> --- a/gdb/testsuite/gdb.base/alias.exp

> +++ b/gdb/testsuite/gdb.base/alias.exp

> @@ -56,7 +56,7 @@ test_abbrev_alias set6 "alias -a -- set6 = set" 46

>  test_abbrev_alias -a "alias -a -- -a = set" 47

>  

>  gdb_test "alias set2=set" "already exists: set2"

> -gdb_test "alias foo=bar" "Invalid command to alias to: bar"

> +gdb_test "alias foo=bar" "Undefined command: \"bar\".  Try \"help\"."

>  

>  gdb_test_no_output "alias spe = set p elem"

>  gdb_test_no_output "spe 50"

> diff --git a/gdb/testsuite/gdb.base/default-args.c b/gdb/testsuite/gdb.base/default-args.c

> new file mode 100644

> index 0000000000..c6426625d4

> --- /dev/null

> +++ b/gdb/testsuite/gdb.base/default-args.c

> @@ -0,0 +1,41 @@

> +/* This testcase is part of GDB, the GNU debugger.

> +

> +   Copyright 2019 Free Software Foundation, Inc.


2020, or 2019-2020 if it was a copy of something that was copyright 2019.

> +

> +   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 <http://www.gnu.org/licenses/>.  */

> +

> +int xxx1 = 123;


This appears to be unused.

> +

> +struct S

> +{

> +  int a;

> +  int b;

> +  int c;

> +};

> +

> +struct S g_s = {1, 2, 3};

> +

> +static void

> +inc ()


(void)

> +{

> +  g_s.a++;;

> +}

> +

> +int

> +main ()


(void)

> diff --git a/gdb/testsuite/gdb.guile/guile.exp b/gdb/testsuite/gdb.guile/guile.exp

> index 2b0c0ba1d4..5d7b50fa15 100644

> --- a/gdb/testsuite/gdb.guile/guile.exp

> +++ b/gdb/testsuite/gdb.guile/guile.exp

> @@ -58,11 +58,12 @@ gdb_test_multiline "multi-line guile command" \

>    "(print 23)" "" \

>    "end" "= 23"

>  

> +# To avoid duplicate test error, prefix one of the "end" with spaces.

>  gdb_test_multiline "show guile command" \

>    "define zzq" "Type commands for definition of .* just \"end\"\\.*" \

>    "guile" "" \

>    "(print 23)" "" \

> -  "end" "" \

> +  "                     end" "" \

>    "end" "" \

>    "show user zzq" "User command \"zzq\":.*  guile.*\\(print 23\\).*  end"


Interesting.  I think that should eventually be fixed / handled in gdb_test_multiline.

Since it doesn't seem related to this patchset, I'd leave it out of the patch.

>  

> @@ -80,5 +81,5 @@ gdb_test "guile (print x)" "= 23"

>  gdb_test_no_output "guile (define a (execute \"help\" #:to-string #t))" \

>      "collect help from uiout"

>  

> -gdb_test "guile (print a)" "= .*aliases -- Aliases of other commands.*" \

> +gdb_test "guile (print a)" "= .*aliases -- User-defined aliases of other commands.*" \

>      "verify help to uiout"

> diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp

> index a50a7b43e2..8045c666a3 100644

> --- a/gdb/testsuite/gdb.python/python.exp

> +++ b/gdb/testsuite/gdb.python/python.exp

> @@ -77,11 +77,12 @@ with_test_prefix "python interactive help" {

>      }

>  }

>  

> +# To avoid duplicate test error, prefix one of the "end" with spaces.

>  gdb_py_test_multiple "show python command" \

>    "define zzq" "Type commands for definition of .* just \"end\"\\.*" \

>    "python" "" \

>    "print (23)" "" \

> -  "end" "" \

> +  "                     end" "" \

>    "end" "" \

>    "show user zzq" "User command \"zzq\":.*  python.*print \\(23\\).*  end"

>  

> @@ -187,7 +188,7 @@ gdb_test_no_output "set height 0"

>  

>  gdb_test_no_output "python a = gdb.execute('help', to_string=True)" "collect help from uiout"

>  

> -gdb_test "python print (a)" ".*aliases -- Aliases of other commands.*" "verify help to uiout"

> +gdb_test "python print (a)" ".*aliases -- User-defined aliases of other commands.*" "verify help to uiout"

>  

>  # Test PR 12212, using InfThread.selected_thread() when no inferior is

>  # loaded.

> @@ -229,10 +230,10 @@ runto $lineno

>  gdb_test "python gdb.decode_line(\"main.c:43\")" \

>      "gdb.error: No source file named main.c.*" "test decode_line no source named main"

>  

> -gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location" 1

> -gdb_test "python print (len(symtab))" "2" "test decode_line current location"

> -gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse"

> -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location"

> +gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location =" 1

> +gdb_test "python print (len(symtab))" "2" "test decode_line current location len"

> +gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse None"

> +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location len 1"

>  

>  # Test that decode_line with an empty string argument does not crash.

>  gdb_py_test_silent_cmd "python symtab2 = gdb.decode_line('')" \

> @@ -246,18 +247,18 @@ if { [is_remote host] } {

>  gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line current location filename"

>  gdb_test "python print (symtab\[1\]\[0\].line)" "$lineno" "test decode_line current location line number"

>  

> -gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26" 1

> -gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length"

> +gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26 decode" 1

> +gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length 2"

>  gdb_test "python print (symtab\[0\])" "if foo" "test decode_line expression parse"

> -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length"

> +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length 1"

>  gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line python.c:26 filename"

>  gdb_test "python print (symtab\[1\]\[0\].line)" "26" "test decode_line python.c:26 line number"

>  

>  gdb_test "python gdb.decode_line(\"randomfunc\")" \

>      "gdb.error: Function \"randomfunc\" not defined.*" "test decode_line randomfunc"

>  gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"func1\")" "test decode_line func1()" 1

> -gdb_test "python print (len(symtab))" "2" "test decode_line func1 length"

> -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length"

> +gdb_test "python print (len(symtab))" "2" "test decode_line func1 length 2"

> +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length 1"

>  

>  if { [is_remote host] } {

>      set python_1_c [string_to_regexp "python-1.c"]

> @@ -336,7 +337,7 @@ set testfake "testfake"

>  

>  gdb_test_multiple "python gdb.prompt_hook = prompt" "set the hook" {

>      -re "\[\r\n\]$newprompt $" {

> -	pass "set hook"

> +	pass "set hook prompt"

>      }

>  }

>  

> @@ -395,7 +396,7 @@ gdb_test_multiple "end" "end programming" {

>      }

>  }

>  

> -gdb_py_test_multiple "prompt substitution readline" \

> +gdb_py_test_multiple "prompt substitution readline import" \

>    "python" "" \

>    "import gdb.command.prompt" "" \

>    "end" ""

> @@ -449,7 +450,7 @@ gdb_test "show python print-stack" \

>  gdb_py_test_silent_cmd "set python print-stack message" \

>      "Test print-stack set setting to message" 1

>  

> -gdb_py_test_multiple "prompt substitution readline" \

> +gdb_py_test_multiple "prompt substitution readline error_prompt" \

>    "python" "" \

>    "pCounter = 0" "" \

>    "def error_prompt(current):" "" \

> @@ -458,24 +459,24 @@ gdb_py_test_multiple "prompt substitution readline" \

>  

>  gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {

>      -re "Python Exception (exceptions.RuntimeError|<(type 'exceptions.|class ')RuntimeError'>) Python exception called.*$gdb_prompt $" {

> -	pass "set hook"

> +	pass "set hook error_prompt"

>      }

>  }

>  

>  gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \

> -    "set the hook to default" 1

> +    "set the hook to default 1" 1

>  

>  gdb_py_test_silent_cmd "set python print-stack full" \

>      "set print-stack full for prompt error test" 1

>  

>  gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {

>      -re "Traceback.*File.*line.*RuntimeError.*Python exception called.*$gdb_prompt $" {

> -	pass "set hook"

> +	pass "set hook error_prompt traceback"

>      }

>  }

>  

>  gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \

> -    "set the hook to default" 1

> +    "set the hook to default 2" 1

>  

>  # Start with a fresh gdb.

>  clean_restart ${testfile}


A lot of changes in python.exp also appear to be related to making test names
unique, which is noble but unrelated to the scope of this patch.  Can you please
submit it as a separate patch?

Simon
Jose E. Marchesi via Gdb-patches June 22, 2020, 7:29 p.m. | #2
Thanks for the reviews/comments, I have pushed the patch series after
handling the last comments.

Philippe

On Mon, 2020-06-22 at 10:18 -0400, Simon Marchi wrote:
> On 2020-06-21 2:31 p.m., Philippe Waroquiers via Gdb-patches wrote:

> > Test the new default-args behaviour and completion for the alias command.

> > Note that gdb.base/default-args.exp is somewhat copied from

> > with.exp (the test of the with command), while default-exp.c

> > is a plain copy of with.c.

> 

> I got:

> 

> Applying: Add tests for new alias default-args related commands and arguments.

> .git/rebase-apply/patch:202: trailing whitespace.

> 

> .git/rebase-apply/patch:204: new blank line at EOF.

> +

> warning: 2 lines add whitespace errors.

> 

> I've noted a few comments, but with those addressed the patch LGTM.

> 

> > gdb/testsuite/ChangeLog

> > YYYY-MM-DD  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

> > 

> > 	* gdb.base/default-args.exp: New test.

> > 	* gdb.base/default-args.c: New file.

> > 	* gdb.base/alias.exp: Update expected error msg for alias foo=bar.

> > 	* gdb.base/default.exp: Update to new help text and

> > 	make test names unique.

> > 	* gdb.base/help.exp: Likewise.

> > 	* gdb.base/page.exp: Likewise.

> > 	* gdb.base/style.exp: Likewise.

> > 	* gdb.guile/guile.exp: Likewise.

> > 	* gdb.python/python.exp: Likewise.

> > ---

> >  gdb/testsuite/gdb.base/alias.exp        |   2 +-

> >  gdb/testsuite/gdb.base/default-args.c   |  41 ++++++++

> >  gdb/testsuite/gdb.base/default-args.exp | 124 ++++++++++++++++++++++++

> >  gdb/testsuite/gdb.base/default.exp      |   4 +-

> >  gdb/testsuite/gdb.base/help.exp         |   2 +-

> >  gdb/testsuite/gdb.base/page.exp         |   4 +-

> >  gdb/testsuite/gdb.base/style.exp        |   8 +-

> >  gdb/testsuite/gdb.guile/guile.exp       |   5 +-

> >  gdb/testsuite/gdb.python/python.exp     |  37 +++----

> >  9 files changed, 198 insertions(+), 29 deletions(-)

> >  create mode 100644 gdb/testsuite/gdb.base/default-args.c

> >  create mode 100644 gdb/testsuite/gdb.base/default-args.exp

> > 

> > diff --git a/gdb/testsuite/gdb.base/alias.exp b/gdb/testsuite/gdb.base/alias.exp

> > index 6993d42648..03c440dfd7 100644

> > --- a/gdb/testsuite/gdb.base/alias.exp

> > +++ b/gdb/testsuite/gdb.base/alias.exp

> > @@ -56,7 +56,7 @@ test_abbrev_alias set6 "alias -a -- set6 = set" 46

> >  test_abbrev_alias -a "alias -a -- -a = set" 47

> >  

> >  gdb_test "alias set2=set" "already exists: set2"

> > -gdb_test "alias foo=bar" "Invalid command to alias to: bar"

> > +gdb_test "alias foo=bar" "Undefined command: \"bar\".  Try \"help\"."

> >  

> >  gdb_test_no_output "alias spe = set p elem"

> >  gdb_test_no_output "spe 50"

> > diff --git a/gdb/testsuite/gdb.base/default-args.c b/gdb/testsuite/gdb.base/default-args.c

> > new file mode 100644

> > index 0000000000..c6426625d4

> > --- /dev/null

> > +++ b/gdb/testsuite/gdb.base/default-args.c

> > @@ -0,0 +1,41 @@

> > +/* This testcase is part of GDB, the GNU debugger.

> > +

> > +   Copyright 2019 Free Software Foundation, Inc.

> 

> 2020, or 2019-2020 if it was a copy of something that was copyright 2019.

> 

> > +

> > +   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 <http://www.gnu.org/licenses/>;.  */

> > +

> > +int xxx1 = 123;

> 

> This appears to be unused.

> 

> > +

> > +struct S

> > +{

> > +  int a;

> > +  int b;

> > +  int c;

> > +};

> > +

> > +struct S g_s = {1, 2, 3};

> > +

> > +static void

> > +inc ()

> 

> (void)

> 

> > +{

> > +  g_s.a++;;

> > +}

> > +

> > +int

> > +main ()

> 

> (void)

> 

> > diff --git a/gdb/testsuite/gdb.guile/guile.exp b/gdb/testsuite/gdb.guile/guile.exp

> > index 2b0c0ba1d4..5d7b50fa15 100644

> > --- a/gdb/testsuite/gdb.guile/guile.exp

> > +++ b/gdb/testsuite/gdb.guile/guile.exp

> > @@ -58,11 +58,12 @@ gdb_test_multiline "multi-line guile command" \

> >    "(print 23)" "" \

> >    "end" "= 23"

> >  

> > +# To avoid duplicate test error, prefix one of the "end" with spaces.

> >  gdb_test_multiline "show guile command" \

> >    "define zzq" "Type commands for definition of .* just \"end\"\\.*" \

> >    "guile" "" \

> >    "(print 23)" "" \

> > -  "end" "" \

> > +  "                     end" "" \

> >    "end" "" \

> >    "show user zzq" "User command \"zzq\":.*  guile.*\\(print 23\\).*  end"

> 

> Interesting.  I think that should eventually be fixed / handled in gdb_test_multiline.

> 

> Since it doesn't seem related to this patchset, I'd leave it out of the patch.

> 

> >  

> > @@ -80,5 +81,5 @@ gdb_test "guile (print x)" "= 23"

> >  gdb_test_no_output "guile (define a (execute \"help\" #:to-string #t))" \

> >      "collect help from uiout"

> >  

> > -gdb_test "guile (print a)" "= .*aliases -- Aliases of other commands.*" \

> > +gdb_test "guile (print a)" "= .*aliases -- User-defined aliases of other commands.*" \

> >      "verify help to uiout"

> > diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp

> > index a50a7b43e2..8045c666a3 100644

> > --- a/gdb/testsuite/gdb.python/python.exp

> > +++ b/gdb/testsuite/gdb.python/python.exp

> > @@ -77,11 +77,12 @@ with_test_prefix "python interactive help" {

> >      }

> >  }

> >  

> > +# To avoid duplicate test error, prefix one of the "end" with spaces.

> >  gdb_py_test_multiple "show python command" \

> >    "define zzq" "Type commands for definition of .* just \"end\"\\.*" \

> >    "python" "" \

> >    "print (23)" "" \

> > -  "end" "" \

> > +  "                     end" "" \

> >    "end" "" \

> >    "show user zzq" "User command \"zzq\":.*  python.*print \\(23\\).*  end"

> >  

> > @@ -187,7 +188,7 @@ gdb_test_no_output "set height 0"

> >  

> >  gdb_test_no_output "python a = gdb.execute('help', to_string=True)" "collect help from uiout"

> >  

> > -gdb_test "python print (a)" ".*aliases -- Aliases of other commands.*" "verify help to uiout"

> > +gdb_test "python print (a)" ".*aliases -- User-defined aliases of other commands.*" "verify help to uiout"

> >  

> >  # Test PR 12212, using InfThread.selected_thread() when no inferior is

> >  # loaded.

> > @@ -229,10 +230,10 @@ runto $lineno

> >  gdb_test "python gdb.decode_line(\"main.c:43\")" \

> >      "gdb.error: No source file named main.c.*" "test decode_line no source named main"

> >  

> > -gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location" 1

> > -gdb_test "python print (len(symtab))" "2" "test decode_line current location"

> > -gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse"

> > -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location"

> > +gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location =" 1

> > +gdb_test "python print (len(symtab))" "2" "test decode_line current location len"

> > +gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse None"

> > +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location len 1"

> >  

> >  # Test that decode_line with an empty string argument does not crash.

> >  gdb_py_test_silent_cmd "python symtab2 = gdb.decode_line('')" \

> > @@ -246,18 +247,18 @@ if { [is_remote host] } {

> >  gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line current location filename"

> >  gdb_test "python print (symtab\[1\]\[0\].line)" "$lineno" "test decode_line current location line number"

> >  

> > -gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26" 1

> > -gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length"

> > +gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26 decode" 1

> > +gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length 2"

> >  gdb_test "python print (symtab\[0\])" "if foo" "test decode_line expression parse"

> > -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length"

> > +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length 1"

> >  gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line python.c:26 filename"

> >  gdb_test "python print (symtab\[1\]\[0\].line)" "26" "test decode_line python.c:26 line number"

> >  

> >  gdb_test "python gdb.decode_line(\"randomfunc\")" \

> >      "gdb.error: Function \"randomfunc\" not defined.*" "test decode_line randomfunc"

> >  gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"func1\")" "test decode_line func1()" 1

> > -gdb_test "python print (len(symtab))" "2" "test decode_line func1 length"

> > -gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length"

> > +gdb_test "python print (len(symtab))" "2" "test decode_line func1 length 2"

> > +gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length 1"

> >  

> >  if { [is_remote host] } {

> >      set python_1_c [string_to_regexp "python-1.c"]

> > @@ -336,7 +337,7 @@ set testfake "testfake"

> >  

> >  gdb_test_multiple "python gdb.prompt_hook = prompt" "set the hook" {

> >      -re "\[\r\n\]$newprompt $" {

> > -	pass "set hook"

> > +	pass "set hook prompt"

> >      }

> >  }

> >  

> > @@ -395,7 +396,7 @@ gdb_test_multiple "end" "end programming" {

> >      }

> >  }

> >  

> > -gdb_py_test_multiple "prompt substitution readline" \

> > +gdb_py_test_multiple "prompt substitution readline import" \

> >    "python" "" \

> >    "import gdb.command.prompt" "" \

> >    "end" ""

> > @@ -449,7 +450,7 @@ gdb_test "show python print-stack" \

> >  gdb_py_test_silent_cmd "set python print-stack message" \

> >      "Test print-stack set setting to message" 1

> >  

> > -gdb_py_test_multiple "prompt substitution readline" \

> > +gdb_py_test_multiple "prompt substitution readline error_prompt" \

> >    "python" "" \

> >    "pCounter = 0" "" \

> >    "def error_prompt(current):" "" \

> > @@ -458,24 +459,24 @@ gdb_py_test_multiple "prompt substitution readline" \

> >  

> >  gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {

> >      -re "Python Exception (exceptions.RuntimeError|<(type 'exceptions.|class ')RuntimeError'>) Python exception called.*$gdb_prompt $" {

> > -	pass "set hook"

> > +	pass "set hook error_prompt"

> >      }

> >  }

> >  

> >  gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \

> > -    "set the hook to default" 1

> > +    "set the hook to default 1" 1

> >  

> >  gdb_py_test_silent_cmd "set python print-stack full" \

> >      "set print-stack full for prompt error test" 1

> >  

> >  gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {

> >      -re "Traceback.*File.*line.*RuntimeError.*Python exception called.*$gdb_prompt $" {

> > -	pass "set hook"

> > +	pass "set hook error_prompt traceback"

> >      }

> >  }

> >  

> >  gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \

> > -    "set the hook to default" 1

> > +    "set the hook to default 2" 1

> >  

> >  # Start with a fresh gdb.

> >  clean_restart ${testfile}

> 

> A lot of changes in python.exp also appear to be related to making test names

> unique, which is noble but unrelated to the scope of this patch.  Can you please

> submit it as a separate patch?

> 

> Simon

>

Patch

diff --git a/gdb/testsuite/gdb.base/alias.exp b/gdb/testsuite/gdb.base/alias.exp
index 6993d42648..03c440dfd7 100644
--- a/gdb/testsuite/gdb.base/alias.exp
+++ b/gdb/testsuite/gdb.base/alias.exp
@@ -56,7 +56,7 @@  test_abbrev_alias set6 "alias -a -- set6 = set" 46
 test_abbrev_alias -a "alias -a -- -a = set" 47
 
 gdb_test "alias set2=set" "already exists: set2"
-gdb_test "alias foo=bar" "Invalid command to alias to: bar"
+gdb_test "alias foo=bar" "Undefined command: \"bar\".  Try \"help\"."
 
 gdb_test_no_output "alias spe = set p elem"
 gdb_test_no_output "spe 50"
diff --git a/gdb/testsuite/gdb.base/default-args.c b/gdb/testsuite/gdb.base/default-args.c
new file mode 100644
index 0000000000..c6426625d4
--- /dev/null
+++ b/gdb/testsuite/gdb.base/default-args.c
@@ -0,0 +1,41 @@ 
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2019 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 <http://www.gnu.org/licenses/>.  */
+
+int xxx1 = 123;
+
+struct S
+{
+  int a;
+  int b;
+  int c;
+};
+
+struct S g_s = {1, 2, 3};
+
+static void
+inc ()
+{
+  g_s.a++;;
+}
+
+int
+main ()
+{
+  inc ();
+
+  return 0;
+}
diff --git a/gdb/testsuite/gdb.base/default-args.exp b/gdb/testsuite/gdb.base/default-args.exp
new file mode 100644
index 0000000000..1caa45c620
--- /dev/null
+++ b/gdb/testsuite/gdb.base/default-args.exp
@@ -0,0 +1,124 @@ 
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2019 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 <http://www.gnu.org/licenses/>.
+
+# Test the "default-args" arguments and completion of alias command.
+
+load_lib completion-support.exp
+
+standard_testfile .c
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+clean_restart $binfile
+
+# Basic/core tests using user-visible commands.
+with_test_prefix "basics" {
+    # Define an alias to pretty print something.
+    gdb_test "print g_s" " = {a = 1, b = 2, c = 3}" "simple print"
+    gdb_test_no_output "alias PP = print -pretty --" "alias PP"
+    gdb_test "help PP" "print, PP, inspect, p\r\n  alias PP = print -pretty --\r\n.*"
+    gdb_test "PP g_s" \
+	[multi_line  \
+	     " = {" \
+	     "  a = 1," \
+	     "  b = 2," \
+	     "  c = 3" \
+	     "}"]
+
+    # Define an alias of frame apply all with some default args.
+    gdb_test_no_output "alias frame apply tout = frame apply all -past-entry -past-main" \
+	"alias frame apply tout"
+    gdb_test "help frame apply tout" \
+	"frame apply all, frame apply tout\r\n  alias frame apply tout = frame apply all -past-entry -past-main\r\n.*"
+
+    # Show all aliases.
+    gdb_test "help aliases" \
+	[multi_line  \
+	     "User-defined aliases of other commands." \
+	     "" \
+	     "List of commands:" \
+	     "" \
+	     "PP -- Print value of expression EXP." \
+	     "  alias PP = print -pretty --" \
+	     "frame apply tout -- Apply a command to all frames." \
+	     "  alias frame apply tout = frame apply all -past-entry -past-main" \
+	     ".*" ] \
+	"help aliases"
+}
+
+# Check errors.
+with_test_prefix "errors" {
+    # Try an unknown root setting.
+    gdb_test "alias wrong = xxxx yyyy -someoption" \
+	"Undefined command: \"xxxx\".  Try \"help\"\\."
+
+    # Try ambiguous command.
+    gdb_test "alias wrong = a" \
+	"Ambiguous command \"a\":.*" "ambiguous a"
+    gdb_test "alias wrong = frame a" \
+	"Ambiguous frame command \"a\":.*" "ambiguous frame a"
+}
+
+
+# Check completion.
+with_test_prefix "completion" {
+    test_gdb_complete_unique \
+	"alias set pri" \
+	"alias set print"
+
+    test_gdb_complete_unique \
+	"alias set print items = set pri" \
+	"alias set print items = set print"
+
+    test_gdb_complete_unique \
+	"alias set print items = set print ele" \
+	"alias set print items = set print elements"
+
+   test_gdb_complete_unique \
+	"alias btfu = backt" \
+	"alias btfu = backtrace"
+
+   test_gdb_complete_unique \
+	"alias btfu = backtrace -fu" \
+	"alias btfu = backtrace -full"
+
+   test_gdb_complete_unique \
+	"alias btfu = backtrace -full -past-e" \
+	"alias btfu = backtrace -full -past-entry"
+
+    gdb_test_no_output "alias btfu = backtrace -full -past-entry" \
+	"alias btfu"
+
+}
+
+# Check alias of alias.
+with_test_prefix "alias_of_alias" {
+    # Verify we can alias an alias that has no default args.
+    # We allow an alias of an alias, to be backward compatible with
+    # GDB 9.1 .
+    gdb_test_no_output "alias aaa = backtrace"
+    gdb_test_no_output "alias bbb = backtrace"
+
+    # Verify that we cannot define an alias of an alias that has default args.
+    gdb_test_no_output "alias ccc = backtrace -full"
+    gdb_test "alias ddd = ccc" \
+	"Cannot define an alias of an alias that has default args"
+    
+}
+
diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
index c34bb9a92a..ac1a0f5b6e 100644
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -247,9 +247,9 @@  gdb_test_multiple "generate-core-file" "generate-core-file" {
 }
 
 #test help "h" abbreviation
-gdb_test "h" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- Aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "help \"h\" abbreviation"
+gdb_test "h" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-defined aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "help \"h\" abbreviation"
 #test help
-gdb_test "help" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- Aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
+gdb_test "help" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-defined aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
 #test handle
 gdb_test "handle" "Argument required .signal to handle.*"
 #test info "i" abbreviation 
diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
index 8ed0be45db..0b6893cf79 100644
--- a/gdb/testsuite/gdb.base/help.exp
+++ b/gdb/testsuite/gdb.base/help.exp
@@ -25,7 +25,7 @@  gdb_start
 gdb_test_no_output "set height 0" "disable pagination"
 
 # Test all the help classes.
-test_class_help "aliases" {"Aliases of other commands\.\[\r\n\]+"}
+test_class_help "aliases" {"User-defined aliases of other commands\.\[\r\n\]+"}
 test_class_help "breakpoints" {
     "Making program stop at certain points\.\[\r\n\]+"
 }
diff --git a/gdb/testsuite/gdb.base/page.exp b/gdb/testsuite/gdb.base/page.exp
index c34c886c64..5936845885 100644
--- a/gdb/testsuite/gdb.base/page.exp
+++ b/gdb/testsuite/gdb.base/page.exp
@@ -23,7 +23,7 @@  gdb_test "show pagination" "State of pagination is off.*" "pagination is off"
 gdb_test_sequence "help" "unpaged help" {
     "List of classes of commands:"
     ""
-    "aliases -- Aliases of other commands"
+    "aliases -- User-defined aliases of other commands"
     "breakpoints -- Making program stop at certain points"
     "data -- Examining data"
     "files -- Specifying and examining files"
@@ -50,7 +50,7 @@  gdb_expect_list "paged help" \
 	".*$pagination_prompt" {
     "List of classes of commands:"
     ""
-    "aliases -- Aliases of other commands"
+    "aliases -- User-defined aliases of other commands"
     "breakpoints -- Making program stop at certain points"
     "data -- Examining data"
     "files -- Specifying and examining files"
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index 129f1746a3..bfd26144fa 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -120,7 +120,7 @@  save_vars { env(TERM) } {
 	[multi_line \
 	     "List of classes of commands:" \
 	     "" \
-	     "${aliases_expr} -- Aliases of other commands\." \
+	     "${aliases_expr} -- User-defined aliases of other commands\." \
 	     "${breakpoints_expr} -- Making program stop at certain points\." \
 	     ".*" \
 	    ] \
@@ -132,11 +132,13 @@  save_vars { env(TERM) } {
     gdb_test "apropos -v cut for 'thre" \
 	[multi_line \
 	     "" \
-	     "${taas_expr} --.*" \
+	     "${taas_expr}" \
+	     "Apply a command to all .*" \
 	     "Usage:.*" \
 	     "short${cut_for_thre_expr}ad apply.*" \
 	     "" \
-	     "${tfaas_expr} --.*" \
+	     "${tfaas_expr}" \
+	     "Apply a command to all .*" \
 	     "Usage:.*" \
 	     "short${cut_for_thre_expr}ad apply.*" \
 	    ]
diff --git a/gdb/testsuite/gdb.guile/guile.exp b/gdb/testsuite/gdb.guile/guile.exp
index 2b0c0ba1d4..5d7b50fa15 100644
--- a/gdb/testsuite/gdb.guile/guile.exp
+++ b/gdb/testsuite/gdb.guile/guile.exp
@@ -58,11 +58,12 @@  gdb_test_multiline "multi-line guile command" \
   "(print 23)" "" \
   "end" "= 23"
 
+# To avoid duplicate test error, prefix one of the "end" with spaces.
 gdb_test_multiline "show guile command" \
   "define zzq" "Type commands for definition of .* just \"end\"\\.*" \
   "guile" "" \
   "(print 23)" "" \
-  "end" "" \
+  "                     end" "" \
   "end" "" \
   "show user zzq" "User command \"zzq\":.*  guile.*\\(print 23\\).*  end"
 
@@ -80,5 +81,5 @@  gdb_test "guile (print x)" "= 23"
 gdb_test_no_output "guile (define a (execute \"help\" #:to-string #t))" \
     "collect help from uiout"
 
-gdb_test "guile (print a)" "= .*aliases -- Aliases of other commands.*" \
+gdb_test "guile (print a)" "= .*aliases -- User-defined aliases of other commands.*" \
     "verify help to uiout"
diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp
index a50a7b43e2..8045c666a3 100644
--- a/gdb/testsuite/gdb.python/python.exp
+++ b/gdb/testsuite/gdb.python/python.exp
@@ -77,11 +77,12 @@  with_test_prefix "python interactive help" {
     }
 }
 
+# To avoid duplicate test error, prefix one of the "end" with spaces.
 gdb_py_test_multiple "show python command" \
   "define zzq" "Type commands for definition of .* just \"end\"\\.*" \
   "python" "" \
   "print (23)" "" \
-  "end" "" \
+  "                     end" "" \
   "end" "" \
   "show user zzq" "User command \"zzq\":.*  python.*print \\(23\\).*  end"
 
@@ -187,7 +188,7 @@  gdb_test_no_output "set height 0"
 
 gdb_test_no_output "python a = gdb.execute('help', to_string=True)" "collect help from uiout"
 
-gdb_test "python print (a)" ".*aliases -- Aliases of other commands.*" "verify help to uiout"
+gdb_test "python print (a)" ".*aliases -- User-defined aliases of other commands.*" "verify help to uiout"
 
 # Test PR 12212, using InfThread.selected_thread() when no inferior is
 # loaded.
@@ -229,10 +230,10 @@  runto $lineno
 gdb_test "python gdb.decode_line(\"main.c:43\")" \
     "gdb.error: No source file named main.c.*" "test decode_line no source named main"
 
-gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location" 1
-gdb_test "python print (len(symtab))" "2" "test decode_line current location"
-gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse"
-gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location"
+gdb_py_test_silent_cmd "python symtab = gdb.decode_line()" "test decode_line current location =" 1
+gdb_test "python print (len(symtab))" "2" "test decode_line current location len"
+gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse None"
+gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location len 1"
 
 # Test that decode_line with an empty string argument does not crash.
 gdb_py_test_silent_cmd "python symtab2 = gdb.decode_line('')" \
@@ -246,18 +247,18 @@  if { [is_remote host] } {
 gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line current location filename"
 gdb_test "python print (symtab\[1\]\[0\].line)" "$lineno" "test decode_line current location line number"
 
-gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26" 1
-gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length"
+gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"python.c:26 if foo\")" "test decode_line python.c:26 decode" 1
+gdb_test "python print (len(symtab))" "2" "test decode_line python.c:26 length 2"
 gdb_test "python print (symtab\[0\])" "if foo" "test decode_line expression parse"
-gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length"
+gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line python.c:26 length 1"
 gdb_test "python print (symtab\[1\]\[0\].symtab)" ".*${python_c}" "test decode_line python.c:26 filename"
 gdb_test "python print (symtab\[1\]\[0\].line)" "26" "test decode_line python.c:26 line number"
 
 gdb_test "python gdb.decode_line(\"randomfunc\")" \
     "gdb.error: Function \"randomfunc\" not defined.*" "test decode_line randomfunc"
 gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"func1\")" "test decode_line func1()" 1
-gdb_test "python print (len(symtab))" "2" "test decode_line func1 length"
-gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length"
+gdb_test "python print (len(symtab))" "2" "test decode_line func1 length 2"
+gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line func1 length 1"
 
 if { [is_remote host] } {
     set python_1_c [string_to_regexp "python-1.c"]
@@ -336,7 +337,7 @@  set testfake "testfake"
 
 gdb_test_multiple "python gdb.prompt_hook = prompt" "set the hook" {
     -re "\[\r\n\]$newprompt $" {
-	pass "set hook"
+	pass "set hook prompt"
     }
 }
 
@@ -395,7 +396,7 @@  gdb_test_multiple "end" "end programming" {
     }
 }
 
-gdb_py_test_multiple "prompt substitution readline" \
+gdb_py_test_multiple "prompt substitution readline import" \
   "python" "" \
   "import gdb.command.prompt" "" \
   "end" ""
@@ -449,7 +450,7 @@  gdb_test "show python print-stack" \
 gdb_py_test_silent_cmd "set python print-stack message" \
     "Test print-stack set setting to message" 1
 
-gdb_py_test_multiple "prompt substitution readline" \
+gdb_py_test_multiple "prompt substitution readline error_prompt" \
   "python" "" \
   "pCounter = 0" "" \
   "def error_prompt(current):" "" \
@@ -458,24 +459,24 @@  gdb_py_test_multiple "prompt substitution readline" \
 
 gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {
     -re "Python Exception (exceptions.RuntimeError|<(type 'exceptions.|class ')RuntimeError'>) Python exception called.*$gdb_prompt $" {
-	pass "set hook"
+	pass "set hook error_prompt"
     }
 }
 
 gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \
-    "set the hook to default" 1
+    "set the hook to default 1" 1
 
 gdb_py_test_silent_cmd "set python print-stack full" \
     "set print-stack full for prompt error test" 1
 
 gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {
     -re "Traceback.*File.*line.*RuntimeError.*Python exception called.*$gdb_prompt $" {
-	pass "set hook"
+	pass "set hook error_prompt traceback"
     }
 }
 
 gdb_py_test_silent_cmd "python gdb.prompt_hook = None" \
-    "set the hook to default" 1
+    "set the hook to default 2" 1
 
 # Start with a fresh gdb.
 clean_restart ${testfile}