| Index: gdb/testsuite/gdb.python/py-cmd.exp
|
| diff --git a/gdb/testsuite/gdb.python/py-cmd.exp b/gdb/testsuite/gdb.python/py-cmd.exp
|
| index 36fa343d891c207c2568ef457e11d63e01b54d93..6d129506cbbf34678c282816236b55ecae382b6b 100644
|
| --- a/gdb/testsuite/gdb.python/py-cmd.exp
|
| +++ b/gdb/testsuite/gdb.python/py-cmd.exp
|
| @@ -1,4 +1,4 @@
|
| -# Copyright (C) 2009-2012 Free Software Foundation, Inc.
|
| +# Copyright (C) 2009-2013 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
|
| @@ -18,15 +18,20 @@
|
|
|
| load_lib gdb-python.exp
|
|
|
| -# Start with a fresh gdb.
|
| +standard_testfile
|
|
|
| -gdb_exit
|
| -gdb_start
|
| -gdb_reinitialize_dir $srcdir/$subdir
|
| +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
|
| + return -1
|
| +}
|
|
|
| # Skip all tests if Python scripting is not enabled.
|
| if { [skip_python_tests] } { continue }
|
|
|
| +if ![runto_main] then {
|
| + fail "Cannot run to main."
|
| + return 0
|
| +}
|
| +
|
| # Test a simple command.
|
|
|
| gdb_py_test_multiple "input simple command" \
|
| @@ -35,7 +40,7 @@ gdb_py_test_multiple "input simple command" \
|
| " def __init__ (self):" "" \
|
| " super (test_cmd, self).__init__ (\"test_cmd\", gdb.COMMAND_OBSCURE)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"test_cmd output, arg = %s\" % arg" "" \
|
| + " print (\"test_cmd output, arg = %s\" % arg)" "" \
|
| "test_cmd ()" "" \
|
| "end" ""
|
|
|
| @@ -49,7 +54,7 @@ gdb_py_test_multiple "input prefix command" \
|
| " def __init__ (self):" "" \
|
| " super (prefix_cmd, self).__init__ (\"prefix_cmd\", gdb.COMMAND_OBSCURE, gdb.COMPLETE_NONE, True)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"prefix_cmd output, arg = %s\" % arg" "" \
|
| + " print (\"prefix_cmd output, arg = %s\" % arg)" "" \
|
| "prefix_cmd ()" "" \
|
| "end" ""
|
|
|
| @@ -61,7 +66,7 @@ gdb_py_test_multiple "input subcommand" \
|
| " def __init__ (self):" "" \
|
| " super (subcmd, self).__init__ (\"prefix_cmd subcmd\", gdb.COMMAND_OBSCURE)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"subcmd output, arg = %s\" % arg" "" \
|
| + " print (\"subcmd output, arg = %s\" % arg)" "" \
|
| "subcmd ()" "" \
|
| "end" ""
|
|
|
| @@ -75,7 +80,7 @@ gdb_py_test_multiple "input prefix command, keyword arguments" \
|
| " def __init__ (self):" "" \
|
| " super (prefix_cmd2, self).__init__ (\"prefix_cmd2\", gdb.COMMAND_OBSCURE, prefix = True, completer_class = gdb.COMPLETE_FILENAME)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"prefix_cmd2 output, arg = %s\" % arg" "" \
|
| + " print (\"prefix_cmd2 output, arg = %s\" % arg)" "" \
|
| "prefix_cmd2 ()" "" \
|
| "end" ""
|
|
|
| @@ -87,7 +92,7 @@ gdb_py_test_multiple "input subcommand under prefix_cmd2" \
|
| " def __init__ (self):" "" \
|
| " super (subcmd, self).__init__ (\"prefix_cmd2 subcmd\", gdb.COMMAND_OBSCURE)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"subcmd output, arg = %s\" % arg" "" \
|
| + " print (\"subcmd output, arg = %s\" % arg)" "" \
|
| "subcmd ()" "" \
|
| "end" ""
|
|
|
| @@ -101,7 +106,7 @@ gdb_py_test_multiple "input new subcommand" \
|
| " def __init__ (self):" "" \
|
| " super (newsubcmd, self).__init__ (\"info newsubcmd\", gdb.COMMAND_OBSCURE)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"newsubcmd output, arg = %s\" % arg" "" \
|
| + " print (\"newsubcmd output, arg = %s\" % arg)" "" \
|
| "newsubcmd ()" "" \
|
| "end" ""
|
|
|
| @@ -123,19 +128,19 @@ gdb_test "test_error_cmd ugh" "you lose!" "call error command"
|
|
|
| # Test gdb.string_to_argv.
|
|
|
| -gdb_test "python print gdb.string_to_argv (\"1 2 3\")" \
|
| +gdb_test "python print (gdb.string_to_argv (\"1 2 3\"))" \
|
| {\['1', '2', '3'\]} \
|
| "string_to_argv (\"1 2 3\")"
|
|
|
| -gdb_test "python print gdb.string_to_argv (\"'1 2' 3\")" \
|
| +gdb_test "python print (gdb.string_to_argv (\"'1 2' 3\"))" \
|
| {\['1 2', '3'\]} \
|
| "string_to_argv (\"'1 2' 3\")"
|
|
|
| -gdb_test "python print gdb.string_to_argv ('\"1 2\" 3')" \
|
| +gdb_test "python print (gdb.string_to_argv ('\"1 2\" 3'))" \
|
| {\['1 2', '3'\]} \
|
| "string_to_argv ('\"1 2\" 3')"
|
|
|
| -gdb_test "python print gdb.string_to_argv ('1\\ 2 3')" \
|
| +gdb_test "python print (gdb.string_to_argv ('1\\ 2 3'))" \
|
| {\['1 2', '3'\]} \
|
| "string_to_argv ('1\\ 2 3')"
|
|
|
| @@ -147,7 +152,7 @@ gdb_py_test_multiple "input simple user-defined command" \
|
| " def __init__ (self):" "" \
|
| " super (test_help, self).__init__ (\"test_help\", gdb.COMMAND_USER)" "" \
|
| " def invoke (self, arg, from_tty):" "" \
|
| - " print \"test_cmd output, arg = %s\" % arg" "" \
|
| + " print (\"test_cmd output, arg = %s\" % arg)" "" \
|
| "test_help ()" "" \
|
| "end" ""
|
|
|
| @@ -155,3 +160,32 @@ gdb_test "test_help ugh" "test_cmd output, arg = ugh" "call simple user-defined
|
|
|
| # Make sure the command shows up in `help user-defined`.
|
| gdb_test "help user-defined" "User-defined commands.\[\r\n\]+The commands in this class are those defined by the user.\[\r\n\]+Use the \"define\" command to define a command.\[\r\n\]+\[\r\n\]+List of commands:\[\r\n\]+\[\r\n\]+test_help -- Docstring\[\r\n\]+\[\r\n\]+Type \"help\" followed by command name for full documentation.\[\r\n\]+Type \"apropos word\" to search for commands related to \"word\".\[\r\n\]+Command name abbreviations are allowed if unambiguous.\[\r\n\]+" "see user-defined command in `help user-defined`"
|
| +
|
| +# Test expression completion on fields
|
| +gdb_py_test_multiple "expression completion command" \
|
| + "python" "" \
|
| + "class expr_test (gdb.Command):" "" \
|
| + " def __init__ (self):" "" \
|
| + " super (expr_test, self).__init__ (\"expr_test\", gdb.COMMAND_USER, gdb.COMPLETE_EXPRESSION)" "" \
|
| + " def invoke (self, arg, from_tty):" "" \
|
| + " print (\"invoked on = %s\" % arg)" "" \
|
| + "expr_test ()" "" \
|
| + "end" ""
|
| +
|
| +
|
| +gdb_test "complete expr_test bar\." \
|
| + "expr_test bar\.bc.*expr_test bar\.ij.*" \
|
| + "Test completion through complete command"
|
| +
|
| +set test "complete 'expr_test bar.i'"
|
| +send_gdb "expr_test bar\.i\t\t"
|
| +gdb_test_multiple "" "$test" {
|
| + -re "expr_test bar\.ij \\\x07$" {
|
| + send_gdb "\n"
|
| + gdb_test_multiple "" $test {
|
| + -re "invoked on = bar.ij.*$gdb_prompt $" {
|
| + pass "$test"
|
| + }
|
| + }
|
| + }
|
| +}
|
|
|