| # Copyright 2003 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 2 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, write to the Free Software |
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| |
| # Please email any bugs, comments, and/or additions to this file to: |
| # bug-gdb@prep.ai.mit.edu |
| |
| |
| # This file tests C++-specific maintenance commands and help on those. |
| |
| # Currently, no source file is used. |
| |
| if $tracelevel then { |
| strace $tracelevel |
| } |
| |
| # Test the help messages. |
| |
| proc test_help {} { |
| gdb_test "help maintenance cplus" "C\\+\\+ maintenance commands.\r\n\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous." |
| |
| gdb_test "help maint cp" "C\\+\\+ maintenance commands.\r\n\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous." |
| |
| gdb_test "maint cp" "\"maintenance cplus\" must be followed by the name of a command.\r\nList of maintenance cplus subcommands:\r\n\r\nmaintenance cplus first_component -- Print the first class/namespace component of NAME\r\n\r\nType \"help maintenance cplus\" followed by maintenance cplus subcommand name for full documentation.\r\nCommand name abbreviations are allowed if unambiguous." |
| |
| gdb_test "help maint cp first_component" "Print the first class/namespace component of NAME." |
| } |
| |
| # This is used when NAME should contain only a single component. Be |
| # careful to make sure that parentheses get escaped properly. |
| proc test_single_component {name} { |
| set matchname [string_to_regexp "$name"] |
| gdb_test "maint cp first_component $name" "$matchname" |
| } |
| |
| proc test_first_component {} { |
| test_single_component "foo" |
| test_single_component "operator<<" |
| test_single_component "operator>>" |
| test_single_component "operator ->" |
| test_single_component "operator()" |
| test_single_component "operator>" |
| test_single_component "operator<" |
| test_single_component "operator ->" |
| test_single_component "operator ->" |
| |
| test_single_component "foo()" |
| test_single_component "foo(int)" |
| test_single_component "foo(X::Y)" |
| test_single_component "foo(X::Y, A::B)" |
| test_single_component "foo(std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >)" |
| test_single_component "operator>(X::Y)" |
| |
| gdb_test "maint cp first_component foo::bar" "foo" |
| gdb_test "maint cp first_component foo::bar::baz" "foo" |
| gdb_test "maint cp first_component C<A>::bar" "C<A>" |
| gdb_test "maint cp first_component C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >::bar" "C<std::basic_streambuf<wchar_t,std::char_traits<wchar_t> > >" |
| } |
| |
| gdb_exit |
| gdb_start |
| |
| test_help |
| test_first_component |
| |
| gdb_exit |
| return 0 |