| OLD | NEW | 
|---|
| 1 # Copyright 2004, 2007-2012 Free Software Foundation, Inc. | 1 # Copyright 2004, 2007-2012 Free Software Foundation, Inc. | 
| 2 | 2 | 
| 3 # This program is free software; you can redistribute it and/or modify | 3 # This program is free software; you can redistribute it and/or modify | 
| 4 # it under the terms of the GNU General Public License as published by | 4 # it under the terms of the GNU General Public License as published by | 
| 5 # the Free Software Foundation; either version 3 of the License, or | 5 # the Free Software Foundation; either version 3 of the License, or | 
| 6 # (at your option) any later version. | 6 # (at your option) any later version. | 
| 7 # | 7 # | 
| 8 # This program is distributed in the hope that it will be useful, | 8 # This program is distributed in the hope that it will be useful, | 
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. | 
| 12 # | 12 # | 
| 13 # You should have received a copy of the GNU General Public License | 13 # You should have received a copy of the GNU General Public License | 
| 14 # along with this program.  If not, see <http://www.gnu.org/licenses/>. | 14 # along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
| 15 | 15 | 
| 16 # This file is part of the gdb testsuite. | 16 # This file is part of the gdb testsuite. | 
| 17 | 17 | 
| 18 # This contains tests for breakpoints in C++. | 18 # This contains tests for breakpoints in C++. | 
| 19 | 19 | 
| 20 if $tracelevel then { |  | 
| 21         strace $tracelevel |  | 
| 22         } |  | 
| 23 |  | 
| 24 if { [skip_cplus_tests] } { continue } | 20 if { [skip_cplus_tests] } { continue } | 
| 25 | 21 | 
| 26 # | 22 # | 
| 27 # test running programs | 23 # test running programs | 
| 28 # | 24 # | 
| 29 | 25 | 
| 30 set testfile "breakpoint" | 26 standard_testfile .cc | 
| 31 set srcfile ${testfile}.cc |  | 
| 32 set binfile ${objdir}/${subdir}/${testfile} |  | 
| 33 | 27 | 
| 34 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
    ug c++}] != "" } { | 28 if [get_compiler_info "c++"] { | 
| 35      untested breakpoint.exp |  | 
| 36      return -1 |  | 
| 37 } |  | 
| 38 |  | 
| 39 if [get_compiler_info ${binfile} "c++"] { |  | 
| 40     return -1 | 29     return -1 | 
| 41 } | 30 } | 
| 42 | 31 | 
| 43 gdb_exit | 32 if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} { | 
| 44 gdb_start | 33     return -1 | 
| 45 gdb_reinitialize_dir $srcdir/$subdir | 34 } | 
| 46 gdb_load ${binfile} |  | 
| 47 | 35 | 
| 48 proc test_breakpoint {name} { | 36 proc test_breakpoint {name} { | 
| 49     # Restart the program every time, so that a single failure doesn't | 37     # Restart the program every time, so that a single failure doesn't | 
| 50     # lead to a cascade. | 38     # lead to a cascade. | 
| 51     if ![runto_main] then { | 39     if ![runto_main] then { | 
| 52         perror "couldn't run to main when testing ${name}" | 40         perror "couldn't run to main when testing ${name}" | 
| 53 »       continue | 41 »       return -code continue | 
| 54     } else { | 42     } else { | 
| 55         gdb_breakpoint "${name}" | 43         gdb_breakpoint "${name}" | 
| 56         gdb_test "continue" "Continuing.\r\n\r\nBreakpoint \[0-9\]*, ${name}.*" 
    "continue to ${name}" | 44         gdb_test "continue" "Continuing.\r\n\r\nBreakpoint \[0-9\]*, ${name}.*" 
    "continue to ${name}" | 
| 57     } | 45     } | 
| 58 } | 46 } | 
| 59 | 47 | 
| 60 test_breakpoint "C1::Nested::foo" | 48 test_breakpoint "C1::Nested::foo" | 
| 61 | 49 | 
| 62 set bp_location1 [gdb_get_line_number "conditional breakpoint in method"] | 50 set bp_location1 [gdb_get_line_number "conditional breakpoint in method"] | 
| 63 set bp_location2 [gdb_get_line_number "conditional breakpoint in method 2"] | 51 set bp_location2 [gdb_get_line_number "conditional breakpoint in method 2"] | 
| 64 gdb_test "break $bp_location1 if i_==3" ".*Breakpoint.*" "conditional breakpoint
     in method" | 52 gdb_test "break $bp_location1 if i_==3" ".*Breakpoint.*" "conditional breakpoint
     in method" | 
| 65 gdb_test "break $bp_location2 if i_==3" ".*Breakpoint.*" "conditional breakpoint
     in method 2" | 53 gdb_test "break $bp_location2 if i_==3" ".*Breakpoint.*" "conditional breakpoint
     in method 2" | 
| 66 gdb_test "continue" ".*Breakpoint.*C1::foo.*" "continue to breakpoint" | 54 gdb_test "continue" ".*Breakpoint.*C1::foo.*" "continue to breakpoint" | 
| 67 gdb_test "print i_" "\\\$1 = 3" "check the member variable" | 55 gdb_test "print i_" "\\\$1 = 3" "check the member variable" | 
| 68 gdb_test "continue" ".*Breakpoint.*C1::bar.*" "continue to breakpoint" | 56 gdb_test "continue" ".*Breakpoint.*C1::bar.*" "continue to breakpoint" | 
| 69 gdb_test "print i_" "\\\$2 = 3" "check the member variable" | 57 gdb_test "print i_" "\\\$2 = 3" "check the member variable" | 
| 70 | 58 | 
| 71 | 59 | 
| 72 gdb_exit | 60 gdb_exit | 
| 73 return 0 | 61 return 0 | 
| OLD | NEW | 
|---|