X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftestsuite%2Fgdb.cp%2Fmb-inline.exp;h=7f4a874024a4567990eb08a6ddfb471490cfaaa0;hb=018572b88885ae67d22612937fa1e4fd98d5f5ad;hp=4f0cc94b9d51e41b48633b8ec7fd556be159fb7c;hpb=4c38e0a4fcb69f8586d8db0b9cdb8dbab5980811;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/testsuite/gdb.cp/mb-inline.exp b/gdb/testsuite/gdb.cp/mb-inline.exp index 4f0cc94b9d..7f4a874024 100644 --- a/gdb/testsuite/gdb.cp/mb-inline.exp +++ b/gdb/testsuite/gdb.cp/mb-inline.exp @@ -1,4 +1,4 @@ -# Copyright 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright 2008-2016 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,67 +18,35 @@ # This test verifies that setting breakpoint on line in inline # function will fire in all instantiations of that function. -if $tracelevel then { - strace $tracelevel -} - if { [skip_cplus_tests] } { continue } -set prms_id 0 -set bug_id 0 - -set testfile "mb-inline" +standard_testfile mb-inline1.cc mb-inline2.cc set hdrfile "${testfile}.h" -set srcfile1 "${testfile}1.cc" -set objfile1 "${testfile}1.o" -set srcfile2 "${testfile}2.cc" -set objfile2 "${testfile}2.o" -set binfile "${objdir}/${subdir}/${testfile}" - -if { [gdb_compile "$srcdir/$subdir/$srcfile1" "$objdir/$subdir/$objfile1" object {debug c++}] != "" } { - untested mb-inline.exp - return -1 -} -if { [gdb_compile "$srcdir/$subdir/$srcfile2" "$objdir/$subdir/$objfile2" object {debug c++}] != "" } { - untested mb-inline.exp - return -1 -} - -if { [gdb_compile "$objdir/$subdir/$objfile1 $objdir/$subdir/$objfile2" "${binfile}" executable {debug c++}] != "" } { - untested mb-inline.exp - return -1 +if [get_compiler_info "c++"] { + return -1 } -if [get_compiler_info ${binfile} "c++"] { +if {[prepare_for_testing $testfile.exp $testfile \ + [list $srcfile $srcfile2] {debug c++}]} { return -1 } -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} - set bp_location [gdb_get_line_number "set breakpoint here" $hdrfile] # Set a breakpoint with multiple locations. gdb_test "break $hdrfile:$bp_location" \ - "Breakpoint.*at.* file .*$hdrfile, line.*\\(2 locations\\).*" \ + "Breakpoint.*at.*: $hdrfile:$bp_location. \\(2 locations\\).*" \ "set breakpoint" +# Do "info break" now so we can easily compare it with the later "info break" +# if problems arise. +gdb_test "info break" \ + "\[\r\n\]1\.1.* y .* at .*$hdrfile:$bp_location.*\[\r\n\]1\.2.* y .* at .*$hdrfile:$bp_location.*" + gdb_run_cmd -gdb_expect { - -re "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*$gdb_prompt $" { - pass "run to breakpoint" - } - -re "$gdb_prompt $" { - fail "run to breakpoint" - } - timeout { - fail "run to breakpoint (timeout)" - } -} +gdb_test "" "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*" "run to breakpoint" gdb_test "continue" \ ".*Breakpoint.*foo \\(i=1\\).*" \ @@ -88,25 +56,25 @@ gdb_test "continue" \ # that at least in simple cases, the enable/disable # state of locations survive "run". # Early bug would disable 1.1 and enable 1.2 when program is run. -gdb_test "disable 1.2" "" "disabling location: disable" +gdb_test_no_output "disable 1.2" "disabling location: disable" gdb_run_cmd -gdb_expect { - -re "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*$gdb_prompt $" { - pass "disabling location: run to breakpoint" - } - -re "$gdb_prompt $" { - fail "disabling location: run to breakpoint" - } - timeout { - fail "disabling location: run to breakpoint (timeout)" +gdb_test "" "Breakpoint \[0-9\]+,.*foo \\(i=0\\).*" "disabling location: run to breakpoint" + +gdb_test_multiple "info break" "disabled breakpoint 1.2" { + -re "1\.2.* n .* at .*$hdrfile:$bp_location.*$gdb_prompt $" { + pass "disabled breakpoint 1.2" } + -re "1\.2.* y .* at .*$hdrfile:$bp_location.*$gdb_prompt $" { + # When inferior is restarted, breakpoint locations will be updated. + # On uclinux, it is not guaranteed that new inferior is located the + # same address as previous one, so status/state of breakpoint location + # will loose. The heuristic of GDB should be improved. + setup_kfail gdb/12924 "*-*-uclinux*" + fail "disabled breakpoint 1.2" + } } -gdb_test "continue" \ - ".*Program exited normally.*" \ - "continue with disabled breakpoint 1.2" - # Make sure we can set a breakpoint on a source statement that spans # multiple lines. @@ -115,12 +83,12 @@ delete_breakpoints set bp_location [gdb_get_line_number "set multi-line breakpoint here" $hdrfile] if { ![runto_main] } { - fail "Can't run to main for multi_line_foo tests." + fail "can't run to main for multi_line_foo tests." return 0 } gdb_test "break $hdrfile:$bp_location" \ - "Breakpoint.*at.* file .*$hdrfile, line.*\\(2 locations\\).*" \ + "Breakpoint.*at.*: $hdrfile:$bp_location. \\(2 locations\\).*" \ "set multi_line_foo breakpoint" gdb_test "continue" \ ".*Breakpoint.*multi_line_foo \\(i=0\\).*" \