# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2004 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.

# Test essential Machine interface (MI) operations
#
# Verify that, using the MI, we can create, update, delete variables.
#


load_lib mi-support.exp
set MIFLAGS "-i=mi2"

gdb_exit
if [mi_gdb_start] {
    continue
}

set testfile "var-cmd"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

mi_delete_breakpoints
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}


#####                   #####
#                           #
#  Variable Creation tests  #
#                           #
#####                   #####

# Test:  c_variable-1.1
# Desc:  Create global variable

mi_gdb_test "111-var-create global_simple * global_simple" \
	"111\\^done,name=\"global_simple\",numchild=\"6\",type=\"simpleton\".*" \
	"create global variable"

# Test: c_variable-1.2
# Desc: Create non-existent variable

mi_gdb_test "112-var-create bogus_unknown_variable * bogus_unknown_variable" \
	".*112\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
	"create non-existent variable"

# Test: c_variable-1.3
# Desc: Create out of scope variable

mi_gdb_test "113-var-create argc * argc" \
	".*113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
	"create out of scope variable"

mi_runto do_locals_tests

# Test: c_variable-1.4
# Desc: create local variables

mi_gdb_test "-var-create linteger * linteger" \
	"\\^done,name=\"linteger\",numchild=\"0\",type=\"int\".*" \
	"create local variable linteger"

mi_gdb_test "-var-create lpinteger * lpinteger" \
	"\\^done,name=\"lpinteger\",numchild=\"1\",type=\"int \\*\".*" \
	"create local variable lpinteger"

mi_gdb_test "-var-create lcharacter * lcharacter" \
	"\\^done,name=\"lcharacter\",numchild=\"0\",type=\"char\".*" \
	"create local variablelcharacter "

mi_gdb_test "-var-create lpcharacter * lpcharacter" \
	"\\^done,name=\"lpcharacter\",numchild=\"1\",type=\"char \\*\".*" \
	"create local variable lpcharacter"

mi_gdb_test "-var-create llong * llong" \
	"\\^done,name=\"llong\",numchild=\"0\",type=\"long int\".*" \
	"create local variable llong"

mi_gdb_test "-var-create lplong * lplong" \
	"\\^done,name=\"lplong\",numchild=\"1\",type=\"long int \\*\".*" \
	"create local variable lplong"

mi_gdb_test "-var-create lfloat * lfloat" \
	"\\^done,name=\"lfloat\",numchild=\"0\",type=\"float\".*" \
	"create local variable lfloat"

mi_gdb_test "-var-create lpfloat * lpfloat" \
	"\\^done,name=\"lpfloat\",numchild=\"1\",type=\"float \\*\".*" \
	"create local variable lpfloat"

mi_gdb_test "-var-create ldouble * ldouble" \
	"\\^done,name=\"ldouble\",numchild=\"0\",type=\"double\".*" \
	"create local variable ldouble"

mi_gdb_test "-var-create lpdouble * lpdouble" \
	"\\^done,name=\"lpdouble\",numchild=\"1\",type=\"double \\*\".*" \
	"create local variable lpdouble"

mi_gdb_test "-var-create lsimple * lsimple" \
	"\\^done,name=\"lsimple\",numchild=\"6\",type=\"struct _simple_struct\".*" \
	"create local variable lsimple"

mi_gdb_test "-var-create lpsimple * lpsimple" \
	"\\^done,name=\"lpsimple\",numchild=\"6\",type=\"struct _simple_struct \\*\".*" \
	"create local variable lpsimple"

mi_gdb_test "-var-create func * func" \
	"\\^done,name=\"func\",numchild=\"0\",type=\"void \\(\\*\\)\\((void|)\\)\".*" \
	"create local variable func"

# Test: c_variable-1.5
# Desc: create lsimple.character
mi_gdb_test "-var-create lsimple.character * lsimple.character" \
	"\\^done,name=\"lsimple.character\",numchild=\"0\",type=\"char\".*" \
	"create lsimple.character"

# Test: c_variable-1.6
# Desc: create lpsimple->integer
mi_gdb_test "-var-create lsimple->integer * lsimple->integer" \
	"\\^done,name=\"lsimple->integer\",numchild=\"0\",type=\"int\".*" \
	"create lsimple->integer"

# Test: c_variable-1.7
# Desc: ceate lsimple.integer
mi_gdb_test "-var-create lsimple.integer * lsimple.integer" \
	"\\^done,name=\"lsimple.integer\",numchild=\"0\",type=\"int\".*" \
	"create lsimple->integer"


# Test: c_variable-1.9
# Desc: create type name
#    Type names (like int, long, etc..) are all proper expressions to gdb.
#    make sure variable code does not allow users to create variables, though.
mi_gdb_test "-var-create int * int" \
	"&\"Attempt to use a type name as an expression.\\\\n\".*&\"mi_cmd_var_create: unable to create variable object\\\\n\".*\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
	"create int"


#####             #####
#                     #
# Value changed tests #
#                     #
#####             #####

# Test: c_variable-2.1
# Desc: check whether values changed at do_block_tests
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[\\\]" \
	"update all vars"

# Step over "linteger = 1234;"
set line_dlt_linteger [gdb_get_line_number "lpinteger = &linteger;"]
mi_step_to "do_locals_tests" "" "var-cmd.c" $line_dlt_linteger "step at do_locals_test"

# Test: c_variable-2.2
# Desc: check whether only linteger changed values
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: linteger changed"

# Step over "lpinteger = &linteger;"
mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 1] "step at do_locals_tests (2)"

# Test: c_variable-2.3
# Desc: check whether only lpinteger changed
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lpinteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: lpinteger changed"

# Step over "lcharacter = 'a';"
mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 2] "step at do_locals_tests (3)"

# Test: c_variable-2.4
# Desc: check whether only lcharacter changed
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lcharacter\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: lcharacter changed"

# Step over "lpcharacter = &lcharacter;"
mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 3] "step at do_locals_tests (4)"

# Test: c_variable-2.5
# Desc: check whether only lpcharacter changed
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lpcharacter\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: lpcharacter changed"


# Step over:
#  llong = 2121L;
#  lplong = &llong;
#  lfloat = 2.1;
#  lpfloat = &lfloat;
#  ldouble = 2.718281828459045;
#  lpdouble = &ldouble;
#  lsimple.integer = 1234;
#  lsimple.unsigned_integer = 255;
#  lsimple.character = 'a';

mi_execute_to "exec-step 9" "end-stepping-range" "do_locals_tests" "" \
	"var-cmd.c" [expr $line_dlt_linteger + 12] "" "step at do_locals_tests (5)"

# Test: c_variable-2.6
# Desc: check whether llong, lplong, lfloat, lpfloat, ldouble, lpdouble, lsimple.integer,
#       lsimple.unsigned_character lsimple.integer lsimple.character changed
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lsimple.integer\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lsimple->integer\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lsimple.character\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lpdouble\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"ldouble\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lpfloat\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lfloat\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lplong\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: many changed"

# Step over:
#  lsimple.signed_character = 21;
#  lsimple.char_ptr = &lcharacter;
#  lpsimple = &lsimple;
#  func = nothing;

set line_dlt_4321 [gdb_get_line_number "linteger = 4321;"]

mi_execute_to "exec-step 4" "end-stepping-range" "do_locals_tests" "" \
	"var-cmd.c" $line_dlt_4321 "" "step at do_locals_tests (6)"

# Test: c_variable-2.7
# Desc: check whether (lsimple.signed_character, lsimple.char_ptr) lpsimple, func changed
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"func\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lpsimple\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: func and lpsimple changed"

# Step over
#  linteger = 4321;
#  lcharacter = 'b';
#  llong = 1212L;
#  lfloat = 1.2;
#  ldouble = 5.498548281828172;
#  lsimple.integer = 255;
#  lsimple.unsigned_integer = 4321;
#  lsimple.character = 'b';

mi_execute_to "exec-step 8" "end-stepping-range" "do_locals_tests" "" \
	"var-cmd.c" [expr $line_dlt_4321 + 8] "" "step at do_locals_tests (7)"

# Test: c_variable-2.8
# Desc: check whether linteger, lcharacter, llong, lfoat, ldouble, lsimple.integer,
#       lpsimple.integer lsimple.character changed
# Note: this test also checks that lpsimple->integer and lsimple.integer have
#       changed (they are the same)
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lsimple.integer\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lsimple->integer\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lsimple.character\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"ldouble\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lfloat\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"lcharacter\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: func and lpsimple changed"


### 
#
# Test assignment to variables. More tests on assignment are in other files.
#
###
mi_gdb_test "-var-assign global_simple 0" \
	".*\\^error,msg=\"mi_cmd_var_assign: Variable object is not editable\"" \
	"assign to global_simple"

mi_gdb_test "-var-assign linteger 3333" \
	"\\^done,value=\"3333\"" \
	"assign to linteger"

mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: linteger changed after assign"

mi_gdb_test "-var-assign linteger 3333" \
	"\\^done,value=\"3333\"" \
	"assign to linteger again, same value"

mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[\\\]" \
	"update all vars: linteger not changed after same assign"

mi_gdb_test "-var-evaluate-expression linteger" \
	"\\^done,value=\"3333\"" \
	"eval linteger"

mi_gdb_test "-var-assign lpinteger \"&linteger + 3\"" \
	"\\^done,value=\"$hex\"" \
	"assign to lpinteger"

mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"lpinteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: lpinteger changed after assign"

mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[\\\]" \
	"update all vars: no changes on second update"

mi_gdb_test "-var-evaluate-expression lpinteger" \
	"\\^done,value=\"$hex\"" \
	"eval lpinteger"

# reset the values to the original ones so that the rest of the file doesn't suffer.

mi_gdb_test "-var-assign linteger 4321" \
	"\\^done,value=\"4321\"" \
	"assign to linteger"

mi_gdb_test "-var-assign lpinteger &linteger" \
	"\\^done,value=\"$hex\"" \
	"assign to lpinteger"

mi_gdb_test "-var-assign lcharacter 'z'" \
	"\\^done,value=\"122 'z'\"" \
	"assign to lcharacter"

mi_gdb_test "-var-evaluate-expression lcharacter" \
	"\\^done,value=\"122 'z'\"" \
	"eval lcharacter"

mi_gdb_test "-var-assign llong 1313L" \
	"\\^done,value=\"1313\"" \
	"assign to llong"
mi_gdb_test "-var-evaluate-expression llong" \
	"\\^done,value=\"1313\"" \
	"eval llong"
mi_gdb_test "-var-assign llong 1212L" \
	"\\^done,value=\"1212\"" \
	"assign to llong"

mi_gdb_test "-var-assign lplong &llong+4" \
	"\\^done,value=\"$hex\"" \
	"assign to lplong"
mi_gdb_test "-var-evaluate-expression lplong" \
	"\\^done,value=\"$hex\"" \
	"eval lplong"
mi_gdb_test "-var-assign lplong &llong" \
	"\\^done,value=\"$hex\"" \
	"assign to lplong"

mi_gdb_test "-var-assign lfloat 3.4567" \
	"\\^done,value=\"3.45.*\"" \
	"assign to lfloat"
mi_gdb_test "-var-evaluate-expression lfloat" \
	"\\^done,value=\"3.45.*\"" \
	"eval lfloat"
mi_gdb_test "-var-assign lfloat 1.2345" \
	"\\^done,value=\"1.23.*\"" \
	"assign to lfloat"

mi_gdb_test "-var-assign lpfloat &lfloat+4" \
	"\\^done,value=\"$hex\"" \
	"assign to lpfloat"

mi_gdb_test "-var-assign ldouble 5.333318284590435" \
	"\\^done,value=\"5.333318284590435\"" \
	"assign to ldouble"

mi_gdb_test "-var-assign func do_block_tests" \
	"\\^done,value=\"$hex <do_block_tests>\"" \
	"assign to func"

mi_gdb_test "-var-assign lsimple.character 'd'" \
	"\\^done,value=\"100 'd'\"" \
	"assign to lsimple.character"

mi_gdb_test "-var-assign  lsimple->integer 222" \
	"\\^done,value=\"222\"" \
	"assign to lsimple->integer"

mi_gdb_test "-var-assign lsimple.integer 333" \
	"\\^done,value=\"333\"" \
	"assign to lsimple.integer"

######
# End of assign tests 
#####

set line_subroutine1_body [gdb_get_line_number "global_simple.integer = i + 3;"]

mi_gdb_test "-break-insert subroutine1" \
	"\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"subroutine1\",file=\".*var-cmd.c\",line=\"$line_subroutine1_body\",shlib=\"$binfile\",times=\"0\"\}" \
	"break-insert subroutine1"
mi_continue_to "2" "subroutine1" \
	"\{name=\"i\",value=\"4321\"\},\{name=\"l\",value=\"$hex\"\}" \
	"var-cmd.c" $line_subroutine1_body "continue to subroutine1"

# Test: c_variable-2.10
# Desc: create variable for locals i,l in subroutine1
mi_gdb_test "-var-create i  * i" \
	"\\^done,name=\"i\",numchild=\"0\",type=\"int\".*" \
	"create i"

mi_gdb_test "-var-create l * l" \
	"\\^done,name=\"l\",numchild=\"1\",type=\"long int \\*\".*" \
	"create l"

# Test: c_variable-2.11
# Desc: create do_locals_tests local in subroutine1
mi_gdb_test "-var-create linteger * linteger" \
	"\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
	"create linteger"

mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
	"var-cmd.c" [expr $line_subroutine1_body + 1] "step at subroutine1"

# Test: c_variable-2.12
# Desc: change global_simple.integer
# Note: This also tests whether we are reporting changes in structs properly.
#       gdb normally would say that global_simple has changed, but we
#       special case that, since it is not what a human expects to
#       see.

setup_xfail *-*-*
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\{FIXME: WHAT IS CORRECT HERE\}" \
	"update all vars: changed FIXME"
clear_xfail *-*-*

mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
	"var-cmd.c" [expr $line_subroutine1_body + 2] "step at subroutine1 (2)"

# Test: c_variable-2.13
# Desc: change subroutine1 local i
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"i\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: i changed"

mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
	"var-cmd.c" [expr $line_subroutine1_body + 3] "step at subroutine1 (3)"

# Test: c_variable-2.14
# Desc: change do_locals_tests local llong
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
	"update all vars: llong changed"

set line_dlt_call_subroutine1 [gdb_get_line_number "subroutine1 (linteger, &llong);"]
mi_next_to "do_locals_tests" ""	"var-cmd.c" \
  [expr $line_dlt_call_subroutine1 + 1] "next out of subroutine1"

# Test: c_variable-2.15
# Desc: check for out of scope subroutine1 locals
mi_gdb_test "-var-update *" \
	"\\^done,changelist=\\\[varobj=\{name=\"l\",in_scope=\"false\"\},varobj=\{name=\"i\",in_scope=\"false\"\}\\\]" \
	"update all vars: all now out of scope"

# Done with locals/globals tests. Erase all variables
#delete_all_variables
mi_gdb_test "-var-delete global_simple" \
	"\\^done,ndeleted=\"1\"" \
	"delete var"

mi_gdb_test "-var-delete linteger" \
	"\\^done,ndeleted=\"1\"" \
	"delete var linteger"

mi_gdb_test "-var-delete lpinteger" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lpinteger"

mi_gdb_test "-var-delete lcharacter" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lcharacter"

mi_gdb_test "-var-delete lpcharacter" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lpcharacter"

mi_gdb_test "-var-delete llong" \
	"\\^done,ndeleted=\"1\"" \
	"delete var llong"

mi_gdb_test "-var-delete lplong" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lplong"

mi_gdb_test "-var-delete lfloat" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lfloat"

mi_gdb_test "-var-delete lpfloat" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lpfloat"

mi_gdb_test "-var-delete ldouble" \
	"\\^done,ndeleted=\"1\"" \
	"delete var ldouble"

mi_gdb_test "-var-delete lpdouble" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lpdouble"

mi_gdb_test "-var-delete lsimple" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lsimple"

mi_gdb_test "-var-delete lpsimple" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lpsimple"

mi_gdb_test "-var-delete func" \
	"\\^done,ndeleted=\"1\"" \
	"delete var func"

mi_gdb_test "-var-delete lsimple.character" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lsimple.character"

mi_gdb_test "-var-delete  lsimple->integer" \
	"\\^done,ndeleted=\"1\"" \
	"delete var  lsimple->integer"

mi_gdb_test "-var-delete lsimple.integer" \
	"\\^done,ndeleted=\"1\"" \
	"delete var lsimple.integer"

mi_gdb_test "-var-delete i" \
	"\\^done,ndeleted=\"1\"" \
	"delete var i"

mi_gdb_test "-var-delete l" \
	"\\^done,ndeleted=\"1\"" \
	"delete var l"

# Test whether we can follow the name of a variable through multiple
# stack frames.
mi_gdb_test "-break-insert do_special_tests" \
  {\^done,bkpt=.*} \
  "set breakpoint at do_special_tests"

mi_continue_to {.*} do_special_tests {.*} {.*var-cmd.c} {.*} {stop in do_special_tests}

mi_gdb_test "-var-create selected_a @ a" \
  {\^done,name="selected_a",numchild="0",type="int".*} \
  "create selected_a"

mi_gdb_test "-break-insert incr_a" \
  {\^done,bkpt=.*} \
  "set breakpoint at incr_a"

mi_continue_to {.*} incr_a {.*} {.*var-cmd.c} {.*} {stop in incr_a}

mi_gdb_test "-var-update selected_a" \
	"\\^done,changelist=\\\[varobj=\{name=\"selected_a\",in_scope=\"true\",type_changed=\"true\",new_type=\"char\",new_dynamic_type=\"\",new_resolved_type=\"char\",new_typecode=\"INT\",new_num_children=\"0\"\}\\\]" \
	"update selected_a in incr_a"

mi_next "step a line in incr_a"
mi_next "return from incr_a to do_special_tests"

mi_gdb_test "-var-update selected_a" \
	"\\^done,changelist=\\\[varobj=\{name=\"selected_a\",in_scope=\"true\",type_changed=\"true\",new_type=\"int\",new_dynamic_type=\"\",new_resolved_type=\"int\",new_typecode=\"INT\",new_num_children=\"0\"\}\\\]" \
	"update selected_a in do_special_tests"

mi_gdb_exit
return 0
