| # Copyright (C) 1999, 2001 Red Hat, 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 was written by Martin Hunt (hunt@cygnus.com) |
| |
| ########################################################### |
| # same as srcwin.test, except test debugging executables # |
| # build without "-g" # |
| ########################################################### |
| |
| # Read in the standard defs file |
| |
| if {![gdbtk_read_defs]} { |
| break |
| } |
| |
| global objdir srcdir |
| |
| ##### ##### |
| # # |
| # SECTION 1: Mode Tests # |
| # # |
| ##### ##### |
| |
| # Load the test executable |
| set program [file join $objdir list] |
| if {[catch {gdbtk_test_file $program} t]} { |
| # This isn't a test case, since if this fails, we're hosed. |
| gdbtk_test_error "loading \"$program\": $t" |
| } |
| |
| set srcwin [ManagedWin::open SrcWin] |
| set stw [$srcwin test_get twin] |
| set twin [$stw test_get twin] |
| set statbar [$srcwin test_get _statbar] |
| |
| # get things started |
| gdb_cmd "break main" |
| gdbtk_test_run |
| |
| # Test: srcwin3-1.1 |
| # Desc: Check for something in source window |
| gdbtk_test srcwin3-1.1 "source window has contents" { |
| set r 0 |
| set source(main) [$twin get 1.0 end] |
| if {$source(main) == ""} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.2 |
| # Desc: source->assembly mode change |
| gdbtk_test srcwin3-1.2 "source->assembly mode change" { |
| set r 0 |
| $srcwin mode "" ASSEMBLY |
| set twin [$stw test_get twin] |
| if {$source(main) != [$twin get 1.0 end]} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.3 |
| # Desc: assembly->mixed mode change |
| gdbtk_test srcwin3-1.3 "assembly->mixed mode change" { |
| set r 0 |
| $srcwin mode "" MIXED |
| set twin [$stw test_get twin] |
| if {$source(main) != [$twin get 1.0 end]} {set r -1} |
| if {[$statbar.mode get] != "MIXED"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.4 |
| # Desc: mixed->src+asm mode change |
| gdbtk_test srcwin3-1.4 "mixed->src+asm mode change" { |
| set r 0 |
| # mode change may fail if fallover to ASSEMBLY fails |
| if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 } |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.5 |
| # Desc: src+asm->source mode change |
| gdbtk_test srcwin3-1.5 "src+asm->source mode change" { |
| set r 0 |
| $srcwin mode "" SOURCE |
| set twin [$stw test_get twin] |
| if {[$stw test_get bwin] != ""} {set r -2} |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -3} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.6 |
| # Desc: source->mixed mode change |
| gdbtk_test srcwin3-1.6 "source->mixed mode change" { |
| set r 0 |
| $srcwin mode "" MIXED |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "MIXED"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.7 |
| # Desc: mixed->source mode change |
| gdbtk_test srcwin3-1.7 "mixed->source mode change" { |
| set r 0 |
| $srcwin mode "" SOURCE |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.8 |
| # Desc: source->src+asm mode change |
| gdbtk_test srcwin3-1.8 "source->src+asm mode change" { |
| set r 0 |
| # mode change may fail if fallover to ASSEMBLY fails |
| if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 } |
| set twin [$stw test_get twin] |
| set bwin [$stw test_get bwin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {$bwin != ""} {set r -2} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -3} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.9 |
| # Desc: src+asm->assembly mode change |
| gdbtk_test srcwin3-1.9 "src+asm->assembly mode change" { |
| set r 0 |
| $srcwin mode "" ASSEMBLY |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.10 |
| # Desc: assembly->src+asm mode change |
| gdbtk_test srcwin3-1.10 "assembly->src+asm mode change" { |
| set r 0 |
| # mode change may fail if fallover to ASSEMBLY fails |
| if {[catch {$srcwin mode "" SRC+ASM}]} { set r -5 } |
| set twin [$stw test_get twin] |
| set bwin [$stw test_get bwin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {$bwin != ""} {set r -2} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -3} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.11 |
| # Desc: src+asm->mixed mode change |
| gdbtk_test srcwin3-1.11 "src+asm->mixed mode change" { |
| set r 0 |
| $srcwin mode "" MIXED |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "MIXED"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.12 |
| # Desc: mixed->assembly mode change |
| gdbtk_test srcwin3-1.12 "mixed->assembly mode change" { |
| set r 0 |
| $srcwin mode "" ASSEMBLY |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| # Test: srcwin3-1.13 |
| # Desc: assembly->source mode change |
| gdbtk_test srcwin3-1.13 "assembly->source mode change" { |
| set r 0 |
| $srcwin mode "" SOURCE |
| set twin [$stw test_get twin] |
| if {[$twin get 1.0 end] != $source(main)} {set r -1} |
| if {[$statbar.mode get] != "ASSEMBLY"} {set r -2} |
| set r |
| } {0} |
| |
| |
| ##### ##### |
| # # |
| # SECTION 2: Basic Operations # |
| # # |
| ##### ##### |
| |
| # Test: srcwin3-2.2 |
| # Desc: check contents of function combobox |
| # There won't be any because we have no debug info |
| gdbtk_test srcwin3-2.2 "check contents of function combobox" { |
| set names [$statbar.func list get 0 end] |
| llength $names |
| } {0} |
| |
| # Test: srcwin3-2.3 |
| # Desc: goto filename - this won't work, but should leave things as they were |
| gdbtk_test srcwin3-2.3 "goto filename" { |
| set func [$srcwin test_get _name 1] |
| $func "" list1.c |
| set twin [$stw test_get twin] |
| string compare $source(main) [$twin get 1.0 end] |
| } {0} |
| |
| # Test: srcwin3-2.6 |
| # Desc: goto function |
| gdbtk_test srcwin3-2.6 "goto function bar" { |
| $srcwin goto_func "" bar |
| set r 0 |
| set twin [$stw test_get twin] |
| set source(bar) [$twin get 1.0 end] |
| |
| if {$source(bar) == $source(main)} {set r -1000} |
| |
| # now get a dump of all tags and check that only one line is |
| # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG. |
| |
| # We know that list1.c should have BROWSE_TAG set at index 5.2 |
| # for function "bar". If list1.c is changed or the layout of the source |
| # window is changed, this must be updated. |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "BROWSE_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} { incr r 10} |
| if {$v == "PC_TAG"} { incr r 100} |
| } |
| } |
| } else { |
| set r -1 |
| } |
| |
| if {$r == 1} { |
| # things are OK so far, so just verify the function name is displayed |
| # in the combobox entry field. |
| set names [$statbar.func get] |
| if {[string compare $names "bar"]} {set r -2} |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-2.7 |
| # Desc: goto function "oof". This tests that the correct line is highlighted |
| # with BROWSE_TAG and no other lines are highlighted. It also checks that |
| # the combobox has the correct function name in it. |
| |
| gdbtk_test srcwin3-2.7 "goto function oof" { |
| $srcwin goto_func "" oof |
| set r 0 |
| |
| set twin [$stw test_get twin] |
| set source(oof) [$twin get 1.0 end] |
| |
| if {$source(bar) == $source(oof)} {set r -1000} |
| if {$source(oof) == $source(main)} {set r -2000} |
| |
| # now get a dump of all tags and check that only one line is |
| # marked BROWSE_TAG and no lines are STACK_TAG or PC_TAG. |
| |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "BROWSE_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "PC_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -1 |
| } |
| |
| if {$r == 1} { |
| # things are OK so far, so just verify the function name is displayed |
| # in the combobox entry field. |
| set names [$statbar.func get] |
| if {[string compare $names "oof"]} {set r -2} |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-2.8 |
| # Desc: This test issues a nexti command while browsing oof. |
| # It should jump back to main |
| gdbtk_test srcwin3-2.8 "nexti while browsing" { |
| gdb_immediate "nexti" 1 |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of function combobox |
| if {$func != "main"} {set r -2} |
| if {$name != ""} {set r -1} |
| |
| # check that correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(main) $a]} {set r -3} |
| |
| # check for PC_TAG |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-2.11 |
| # Desc: This test issues a break and a continue |
| gdbtk_test srcwin3-2.11 "set BP and continue" { |
| gdb_immediate "break oof" 1 |
| gdb_immediate "continue" 1 |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "oof"} {set r -2} |
| |
| # check that the correct file is displayed |
| # we must clear the breakpoint first so it doesn't mess up the |
| # comparison... |
| gdb_immediate "clear oof" 1 |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(oof) $a]} {set r -3} |
| |
| # check for PC_TAG |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| ##### ##### |
| # # |
| # SECTION 3: Stack Operations # |
| # # |
| ##### ##### |
| |
| # Test: srcwin3-3.1 |
| # Desc: This tests "stack up" |
| gdbtk_test srcwin3-3.1 "stack up (1)" { |
| $srcwin stack up |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "long_line"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set source(long_line) [$twin get 1.0 end] |
| if {![string compare $source(long_line) $source(oof)]} {set r -3} |
| |
| # check for PC_TAG and STACK_TAG on correct lines |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} {incr r 5} |
| if {$v == "STACK_TAG"} {incr r} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-3.2 |
| # Desc: Another "stack up" test |
| gdbtk_test srcwin3-3.2 "stack up (2)" { |
| $srcwin stack up |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "bar"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(bar) $a]} {set r -3} |
| |
| # check for PC_TAG and STACK_TAG on correct lines |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| set r -100 |
| } |
| if {$v == "STACK_TAG"} { |
| incr r |
| } |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-3.3 |
| # Desc: Another "stack up" test |
| gdbtk_test srcwin3-3.3 "stack up (3)" { |
| $srcwin stack up |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "foo"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set source(foo) [$twin get 1.0 end] |
| if {![string compare $source(foo) $source(bar)]} {set r -3} |
| |
| # check for PC_TAG and STACK_TAG on correct lines |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "STACK_TAG"} { |
| incr r |
| } |
| if {$v == "PC_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-3.4 |
| # Desc: Another "stack up" test |
| gdbtk_test srcwin3-3.4 "stack up (4)" { |
| $srcwin stack up |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "main"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(main) $a]} {set r -3} |
| |
| # check for STACK_TAG |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "STACK_TAG"} { |
| incr r |
| } |
| if {$v == "PC_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Disabled for now because there are different correct results. |
| # Test should be rewritten to include those. |
| # Test: srcwin3-3.5 |
| # Desc: "stack up" when we are at the top |
| #gdbtk_test srcwin3-3.5 "stack up when at the top" { |
| # $srcwin stack up |
| # set r 0 |
| # set name [$statbar.name get] |
| # set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| # if {$name != ""} {set r -1} |
| # if {$func != "main"} {set r -2} |
| |
| # check that the correct file is displayed |
| # set twin [$stw test_get twin] |
| # set a [$twin get 1.0 end] |
| # if {[string compare $source(main) $a]} {set r -3} |
| |
| # check for STACK_TAG |
| # if {$r == 0} { |
| # if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| # foreach {k v i} $z { |
| # if {$k == "tagon"} { |
| # if {$v == "STACK_TAG"} { |
| # incr r |
| # } |
| # if {$v == "PC_TAG"} {incr r 10} |
| # if {$v == "BROWSE_TAG"} {incr r 100} |
| # } |
| # } |
| # } else { |
| # set r -4 |
| # } |
| # } |
| # set r |
| #} {1} |
| |
| # Test: srcwin3-3.6 |
| # Desc: "stack down" test |
| gdbtk_test srcwin3-3.6 "stack down" { |
| $srcwin stack down |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "foo"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(foo) $a]} {set r -3} |
| |
| # check for PC_TAG and STACK_TAG on correct lines |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "STACK_TAG"} { |
| incr r |
| } |
| if {$v == "PC_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-3.7 |
| # Desc: "stack bottom" test |
| gdbtk_test srcwin3-3.7 "stack bottom" { |
| $srcwin stack bottom |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "oof"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(oof) $a]} {set r -3} |
| |
| # check for PC_TAG on correct line |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # Test: srcwin3-3.8 |
| # Desc: "stack down" when at bottom |
| gdbtk_test srcwin3-3.8 "stack down when at bottom" { |
| $srcwin stack down |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "oof"} {set r -2} |
| |
| # check that the correct file is displayed |
| set twin [$stw test_get twin] |
| set a [$twin get 1.0 end] |
| if {[string compare $source(oof) $a]} {set r -3} |
| |
| # check for PC_TAG on correct line |
| if {$r == 0} { |
| if {![catch {set z [$twin dump -tag 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| set r |
| } {1} |
| |
| # 4.1 bp, multiple, balloon, etc |
| |
| # Test: srcwin3-4.1 |
| # Desc: Set BP in another file. Tests bp and cache functions |
| gdbtk_test srcwin3-4.1 "set BP in another file" { |
| gdb_immediate "break foo" 1 |
| $srcwin goto_func "" foo |
| set r 0 |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "foo"} {set r -2} |
| |
| set twin [$stw test_get twin] |
| |
| # check for BROWSE_TAG and BP image |
| if {$r == 0} { |
| if {![catch {set z [$twin dump 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "BROWSE_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "PC_TAG"} {incr r 100} |
| } elseif {$k == "image"} { |
| incr r |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| |
| if {$r == 2} { |
| # clear BP and compare with previous contents. This should succeed, |
| gdb_immediate "clear foo" 1 |
| set a [$twin get 1.0 end] |
| if {[string compare $source(foo) $a]} {set r -3} |
| } |
| |
| set r |
| } {2} |
| |
| # Test: srcwin3-4.2 |
| # Desc: Test temporary BP |
| gdbtk_test srcwin3-4.2 "temporary BP" { |
| set r 0 |
| if {[catch {gdb_immediate "tbreak foo" 1} msg]} { |
| set r -500 |
| } |
| set name [$statbar.name get] |
| set func [$statbar.func get] |
| |
| # check contents of name and function comboboxes |
| if {$name != ""} {set r -1} |
| if {$func != "foo"} {set r -2} |
| |
| set twin [$stw test_get twin] |
| |
| # check for BROWSE_TAG and BP image on correct line |
| if {$r == 0} { |
| if {![catch {set z [$twin dump 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "BROWSE_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "PC_TAG"} {incr r 100} |
| } elseif {$k == "image"} { |
| incr r |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| |
| gdb_immediate "continue" 1 |
| |
| # now check for PC_TAG and no image |
| if {$r == 2} { |
| if {![catch {set z [$twin dump 1.0 end]}]} { |
| foreach {k v i} $z { |
| if {$k == "tagon"} { |
| if {$v == "PC_TAG"} { |
| incr r |
| } |
| if {$v == "STACK_TAG"} {incr r 10} |
| if {$v == "BROWSE_TAG"} {incr r 100} |
| } elseif {$k == "image"} { |
| set r -200 |
| } |
| } |
| } else { |
| set r -4 |
| } |
| } |
| |
| set r |
| } {3} |
| |
| gdbtk_test_done |