diff options
Diffstat (limited to 'gdb/testsuite/gdb.gdbtk/cpp_variable.test')
-rw-r--r-- | gdb/testsuite/gdb.gdbtk/cpp_variable.test | 588 |
1 files changed, 0 insertions, 588 deletions
diff --git a/gdb/testsuite/gdb.gdbtk/cpp_variable.test b/gdb/testsuite/gdb.gdbtk/cpp_variable.test deleted file mode 100644 index 9f2af787173..00000000000 --- a/gdb/testsuite/gdb.gdbtk/cpp_variable.test +++ /dev/null @@ -1,588 +0,0 @@ -# Copyright (C) 1998 Cygnus Solutions -# -# 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 Keith Seitz (keiths@cygnus.com) - -# Read in the standard defs file -if {![gdbtk_read_defs]} { - break -} - -global objdir test_ran - -# Load in a file -set program [file join $objdir cpp_variable] -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" -} - -# The variables that are created are stored in an array called "var". - -# proc to tell us which of the variables are changed/out of scope -# FIXME: ALWAYS returning out={}! -proc check_update {} { - global var - - set out {} - set changed {} - foreach ind [array names var] { - set changed [concat $changed [$var($ind) update]] - } - - return [list $changed $out] -} - -# proc to create a variable -proc create_variable {expr} { - global var - - set err [catch {gdb_variable create "$expr" -expr $expr} v] - if {!$err} { - set var($expr) $v - } - - return $err -} - -# proc to get the children -# Children are stored in the global "var" as -# PARENT.child. So for struct _foo {int a; int b} bar;, -# the children returned are {a b} and var(bar.a) and var(bar.b) -# map the actual objects to their names. -proc get_children {parent} { - global var - - set kiddies [$var($parent) children] - set children {} - foreach child $kiddies { - set name [lindex [split $child .] end] - lappend children $name - set var($parent.$name) $child - } - - return $children -} - -proc delete_variable {varname} { - global var - - if {[info exists var($varname)]} { - # This has to be caught, since deleting a parent - # will erase all children. - $var($varname) delete - set vars [array names var $varname*] - foreach v $vars { - if {[info exists var($v)]} { - unset var($v) - } - } - } -} - -# Compare the values of variable V in format FMT with value of OBJ -# with gdb's value. -proc cppvalue {obj v fmt} { - global var - global _test - - puts $_test(logfile) "obj=$obj v=$v fmt=$fmt" - puts $_test(logfile) "var(\$obj)=$var($obj)" - - set value [$var($obj) value] - set gdb [gdb_cmd "output/$fmt $v"] - puts $_test(logfile) "output/$fmt $v" - if {$value == $gdb} { - puts $_test(logfile) "gdbtk: $value == gdb: $gdb" - set result ok - } else { - set result $v - puts $_test(logfile) "gdbtk: $value <> gdb: $gdb" - } - - return $result -} - -proc delete_all_variables {} { - global var - - foreach variable [array names var] { - delete_variable $variable - } -} - -##### ##### -# # -# Simple Class Tests # -# # -##### ##### - -# run to "do_simple_class_tests" -gdb_cmd "break do_simple_class_tests" -gdbtk_test_run - -# Test: cpp_variable-1.1 -# Desc: stopped in do_simple_class_tests -gdbtk_test cpp_variable-1.1 {stopped in do_simple_class_tests} { - # G++ can output "do_simple_class_tests(void)". Strip the "(void)" part. - set loc [lindex [gdb_loc] 1] - set index [string first \( $loc] - if {$index > 0} { - set loc [string range $loc 0 [expr {$index-1}]] - } - set loc -} {do_simple_class_tests} - -# Test: cpp_variable-1.2 -# Desc: create variable v -gdbtk_test cpp_variable-1.2 {create variable v} { - create_variable v -} {0} - -# Test: cpp_variable-1.3 -# Desc: number of children of v -gdbtk_test cpp_variable-1.3 {number of children of v} { - $var(v) numChildren -} {5} - -# Test: cpp_variable-1.4a -# Desc: children of v -gdbtk_test cpp_variable-1.4a {children of v} { - get_children v -} {VA VB VC public private} - -# Test: cpp_variable-1.4b -# Desc: public children of v -gdbtk_test cpp_variable-1.4b {public children of v} { - get_children v.public -} {v_pub_int v_pub_charp} - -# Test: cpp_variable-1.4c -# Desc: private children of v -gdbtk_test cpp_variable-1.4c {private children of v} { - get_children v.private -} {v_priv_int v_priv_charp} - -# Test: cpp_variable-1.5 -# Desc: type of v -gdbtk_test cpp_variable-1.5 {type of v} { - $var(v) type -} {V *} - -# Test: cpp_variable-1.6 -# Desc: format of v -gdbtk_test cpp_variable-1.6 {format of v} { - $var(v) format -} {natural} - -set value {} -catch {$var(v) value} value - -# Test: cpp_variable-1.6a -# Desc: Step over "V *v = new V;" -gdbtk_test cpp_variable-1.6a {step over "V *v = new V;"} { - catch {gdb_cmd "next"} -} {0} - -# Test: cpp_variable-1.7 -# Desc: check value of v changed -gdbtk_test cpp_variable-1.7 {check value of v changed} { - set changes [check_update] - - # It is undefined whether the children will change values - # or not, so ignore them. - expr {[lsearch [lindex $changes 0] v] != -1} -} {1} - -# Test: cpp_variable-1.8 -# Desc: check values of v -gdbtk_test cpp_variable-1.8 {check values of v} { - set new [$var(v) value] - expr {$new != $value} -} {1} - -# Test: cpp_variable-1.9 -# Desc: v editable -gdbtk_test cpp_variable-1.9 {v editable} { - $var(v) editable -} {1} - -##### ##### -# # -# Children of v tests # -# # -##### ##### - -# Test: cpp_variable-2.1 -# Desc: type of v.v_pub_int -gdbtk_test cpp_variable-2.1 {type of v.v_pub_int} { - $var(v.public.v_pub_int) type -} {int} - -# Test: cpp_variable-2.2 -# Desc: format of v.v_pub_int -gdbtk_test cpp_variable-2.2 {format of v.v_pub_int} { - $var(v.public.v_pub_int) format -} {natural} - -# Test: cpp_variable-2.2a -# Desc: set variable v->v_pub_int=2112 -gdbtk_test cpp_variable-2.2a {set variable v.v_pub_int=2112} { - set err [catch {gdb_cmd "set variable v.v_pub_int=2112"} txt] - if {$err} { - set txt - } else { - set err - } -} {0} - -# Test: cpp_variable-2.3 -# Desc: value of v.v_pub_int changed -gdbtk_test cpp_variable-2.3 {value of v.v_pub_int changed} { - check_update -} {v.public.v_pub_int {}} - -# Test: cpp_variable-2.4 -# Desc: value of v.v_pub_int -gdbtk_test cpp_variable-2.4 {value of v.v_pub_int} { - $var(v.public.v_pub_int) value -} {2112} - -# Test: cpp_variable-2.5 -# Desc: changed format of v.v_pub_int -gdbtk_test cpp_variable-2.5 {changed format of v.v_pub_int} { - $var(v.public.v_pub_int) format octal - $var(v.public.v_pub_int) format -} {octal} - -# Test: cpp_variable-2.6 -# Desc: value of v.v_pub_int with new format -gdbtk_test cpp_variable-2.6 {value of v.v_pub_int with new format} { - $var(v.public.v_pub_int) value -} {04100} - -# Test: cpp_variable-2.7 -# Desc: change value of v.v_pub_int (decimal) -gdbtk_test cpp_variable-2.7 {change value of v.v_pub_int (decimal)} { - $var(v.public.v_pub_int) value 3 - cppvalue v.public.v_pub_int v.v_pub_int o -} {ok} - -# Test: cpp_variable-2.8 -# Desc: change value of v.v_pub_int (hexadecimal) -gdbtk_test cpp_variable-2.8 {change value of v.v_pub_int (hexadecimal)} { - $var(v.public.v_pub_int) value 0x21 - cppvalue v.public.v_pub_int v.v_pub_int o -} {ok} - -# Test: cpp_variable-2.9 -# Desc: number of children of v_pub_int -gdbtk_test cpp_variable-2.9 {number of children of v_pub_int} { - $var(v.public.v_pub_int) numChildren -} {0} - -# Test: cpp_variable-2.10 -# Desc: children of v.v_pub_int -gdbtk_test cpp_variable-2.10 {children of v.v_pub_int} { - get_children v.public.v_pub_int -} {} - -# Test: cpp_variable-2.11 -# Desc: v.v_pub_int editable -gdbtk_test cpp_variable-2.11 {v.v_pub_int editable} { - $var(v.public.v_pub_int) editable -} {1} - -# Test: cpp_variable-2.21 -# Desc: type of v.v_priv_charp -gdbtk_test cpp_variable-2.21 {type of v.v_priv_charp} { - $var(v.private.v_priv_charp) type -} {char *} - -# Test: cpp_variable-2.22 -# Desc: format of v.v_priv_charp -gdbtk_test cpp_variable-2.22 {format of v.v_priv_charp} { - $var(v.private.v_priv_charp) format -} {natural} - -# Test: cpp_variable-2.22a -# Desc: set variable v->v_priv_charp=2112 -gdbtk_test cpp_variable-2.22a {set variable v->v_priv_charp=2112} { - set err [catch {gdb_cmd "set variable v->v_priv_charp=2112"} txt] - if {$err} { - set txt - } else { - set err - } -} {0} - -# Test: cpp_variable-2.23 -# Desc: value of v.v_priv_charp changed -gdbtk_test cpp_variable-2.23 {value of v.v_priv_charp changed} { - check_update -} {v.private.v_priv_charp {}} - -# Test: cpp_variable-2.24 -# Desc: value of v.v_priv_charp -gdbtk_test cpp_variable-2.24 {value of v.v_priv_charp} { - $var(v.private.v_priv_charp) format hexadecimal - $var(v.private.v_priv_charp) value -} {0x840} - -# Test: cpp_variable-2.25 -# Desc: changed format of v.v_priv_charp -gdbtk_test cpp_variable-2.25 {changed format of v.v_priv_charp} { - $var(v.private.v_priv_charp) format octal - $var(v.private.v_priv_charp) format -} {octal} - -# Test: cpp_variable-2.26 -# Desc: value of v.v_priv_charp with new format -gdbtk_test cpp_variable-2.26 {value of v.v_priv_charp with new format} { - $var(v.private.v_priv_charp) value -} {04100} - -# Test: cpp_variable-2.27 -# Desc: change value of v.v_priv_charp (decimal) -gdbtk_test cpp_variable-2.27 {change value of v.v_priv_charp (decimal)} { - $var(v.private.v_priv_charp) value 3 - cppvalue v.private.v_priv_charp v.v_priv_charp o -} {ok} - -# Test: cpp_variable-2.28 -# Desc: change value of v.v_priv_charp (hexadecimal) -gdbtk_test cpp_variable-2.28 {change value of v.v_priv_charp (hexadecimal)} { - $var(v.private.v_priv_charp) value 0x21 - cppvalue v.private.v_priv_charp v.v_priv_charp o -} {ok} - -# Test: cpp_variable-2.29 -# Desc: number of children of v_priv_charp -gdbtk_test cpp_variable-2.29 {number of children of v_priv_charp} { - $var(v.private.v_priv_charp) numChildren -} {1} - -# Test: cpp_variable-2.30 -# Desc: children of v.v_priv_charp -gdbtk_test cpp_variable-2.30 {children of v.v_priv_charp} { - get_children v.private.v_priv_charp -} {*v_priv_charp} - -# Test: cpp_variable-2.31 -# Desc: v.v_priv_int editable -gdbtk_test cpp_variable-2.31 {v.v_priv_int editable} { - $var(v.private.v_priv_int) editable -} {1} - -# Test: cpp_variable-2.41 -# Desc: type of v.VA -gdbtk_test cpp_variable-2.41 {type of v.VA} { - $var(v.VA) type -} {VA} - -# Test: cpp_variable-2.42 -# Desc: format of v.VA -gdbtk_test cpp_variable-2.42 {format of v.VA} { - $var(v.VA) format -} {natural} - -# Test: cpp_variable-2.43 -# Desc: value of v.VA changed -gdbtk_test cpp_variable-2.43 {value of v.VA changed} { - check_update -} {{} {}} - -# Test: cpp_variable-2.44 -# Desc: value of v.VA -gdbtk_test cpp_variable-2.44 {value of v.VA} { - $var(v.VA) value -} {{...}} - -# Test: cpp_variable-2.45 -# Desc: changed format of v.VA -gdbtk_test cpp_variable-2.45 {changed format of v.VA} { - $var(v.VA) format octal - $var(v.VA) format -} {octal} - -# Test: cpp_variable-2.46 -# Desc: value of v.VA with new format -gdbtk_test cpp_variable-2.46 {value of v.VA with new format} { - $var(v.VA) value -} {{...}} - -# Test: cpp_variable-2.47 -# Desc: number of children of VA -gdbtk_test cpp_variable-2.47 {number of children of VA} { - $var(v.VA) numChildren -} {3} - -# Test: cpp_variable-2.48a -# Desc: children of v.VA -gdbtk_test cpp_variable-2.48a {children of v.VA} { - get_children v.VA -} {public private protected} - -# Test: cpp_variable-2.48b -# Desc: public children of v.VA -gdbtk_test cpp_variable-2.48b {children of v.VA} { - get_children v.VA.public -} {va_pub_int va_pub_charp} - -# Test: cpp_variable-2.48c -# Desc: private children of v.VA -gdbtk_test cpp_variable-2.48c {children of v.VA} { - get_children v.VA.private -} {va_priv_int va_priv_charp} - -# Test: cpp_variable-2.48d -# Desc: protected children of v.VA -gdbtk_test cpp_variable-2.48d {children of v.VA} { - get_children v.VA.protected -} {bar} - -# Test: cpp_variable-2.49 -# Desc: v.VA editable -gdbtk_test cpp_variable-2.49 {v.VA editable} { - $var(v.VA) editable -} {0} - -# Test: cpp_variable-2.61 -# Desc: type of v.VB -gdbtk_test cpp_variable-2.61 {type of v.VB} { - $var(v.VB) type -} {VB} - -# Test: cpp_variable-2.62 -# Desc: format of v.VB -gdbtk_test cpp_variable-2.62 {format of v.VB} { - $var(v.VB) format -} {natural} - -# Test: cpp_variable-2.63 -# Desc: value of v.VB changed -gdbtk_test cpp_variable-2.63 {value of v.VB changed} { - check_update -} {{} {}} - -# Test: cpp_variable-2.64 - # Desc: value of v.VB -gdbtk_test cpp_variable-2.64 {value of v.VB} { - $var(v.VB) value -} {{...}} - -# Test: cpp_variable-2.65 -# Desc: changed format of v.VB -gdbtk_test cpp_variable-2.65 {changed format of v.VB} { - $var(v.VB) format octal - $var(v.VB) format -} {octal} - -# Test: cpp_variable-2.66 -# Desc: value of v.VB with new format -gdbtk_test cpp_variable-2.66 {value of v.VB with new format} { - $var(v.VB) value -} {{...}} - -# Note: The next two tests show whether or not the logic -# concerning vptr tables is working. -# Test: cpp_variable-2.67 -# Desc: number of children of VB -gdbtk_test cpp_variable-2.67 {number of children of VB} { - $var(v.VB) numChildren -} {2} - -# Test: cpp_variable-2.68a -# Desc: children of v.VB -gdbtk_test cpp_variable-2.68a {children of v.VB} { - get_children v.VB -} {public private} - -# Test: cpp_variable-2.68b -# Desc: public children of v.VB -gdbtk_test cpp_variable-2.68b {children of v.VB} { - get_children v.VB.public -} {vb_pub_int} - -# Test: cpp_variable-2.68c -# Desc: private children of v.VB -gdbtk_test cpp_variable-2.68c {children of v.VB} { - get_children v.VB.private -} {vb_priv_int vb_priv_charp} - -# Test: cpp_variable-2.69 -# Desc: v.VB editable -gdbtk_test cpp_variable-2.69 {v.VB editable} { - $var(v.VB) editable -} {0} - -# Test: cpp_variable-2.70 -# Desc: v.VB.public editable -gdbtk_test cpp_variable-2.70 {v.VB.public editable} { - $var(v.VB.public) editable -} {0} - -# Test: cpp_variable-2.71 -# Desc: v.VB.vb_pub_int editable -gdbtk_test cpp_variable-2.71 {v.VB.vb_pub_int editable} { - $var(v.VB.public.vb_pub_int) editable -} {1} - -# Test: cpp_variable-2.71a -# Desc: set variable v->vb_pub_int=2112 -gdbtk_test cpp_variable-2.71a {set variable v->v_pub_int=2112} { - set err [catch {gdb_cmd "set variable v->vb_pub_int=2112"} txt] - if {$err} { - set txt - } else { - set err - } -} {0} - -# Test: cpp_variable-2.72 -# Desc: value of v.vb_pub_int changed -gdbtk_test cpp_variable-2.72 {value of v.vb_pub_int changed} { - check_update -} {v.VB.public.vb_pub_int {}} - -# Test: cpp_variable-2.73 -# Desc: value of v.VB.vb_pub_int -gdbtk_test cpp_variable-2.73 {changed value of v.vb_pub_int} { - $var(v.VB.public.vb_pub_int) value -} {2112} - -# Test: cpp_variable-2.74 -# Desc: change value of v.VB.vb_pub_int -gdbtk_test cpp_variable-2.74 {change value of v.VB.public.vb_pub_int} { - $var(v.VB.public.vb_pub_int) value 3 - cppvalue v.VB.public.vb_pub_int v.vb_pub_int d -} {ok} - -# Test: cpp_variable-2.75 -# Desc: value of v.VB.vb_pub_int -gdbtk_test cpp_variable-2.75 {changed value of v.VB.public.vb_pub_int} { - $var(v.VB.public.vb_pub_int) value -} {3} - - -# Exit -# -gdbtk_test_done - - |