summaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2009-05-17 07:13:19 +0000
committerVladimir Prus <vladimir@codesourcery.com>2009-05-17 07:13:19 +0000
commitee342b2344e091d2d8a5bfea83b19f651ea58dff (patch)
tree854f620f66decdde5bda9c56600f0b2e5782f9ae /gdb/testsuite
parent177b81d66a6cf42aaa2b15ccc499bb7b292c3955 (diff)
downloadbinutils-gdb-ee342b2344e091d2d8a5bfea83b19f651ea58dff.tar.gz
Always report varobj as changed when in_scope attribute changes.
* varobj.c (install_new_value): If non-NULL-ness of value changed, return 1.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cmd.exp27
2 files changed, 33 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a9d5de7c1b3..54d1de64ea9 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-17 Vladimir Prus <vladimir@codesourcery.com>
+
+ * gdb.mi/mi-cmd-var.exp: Check that when varobj
+ of structure type enters or leaves the scope, it
+ is reported by -var-update.
+
2009-05-11 Doug Evans <dje@sebabeach.org>
* gdb.mi/nsintrall.c (main): Fix off-by-one error.
diff --git a/gdb/testsuite/gdb.mi/mi-var-cmd.exp b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
index ffe0b799caf..78b30bd9205 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
@@ -631,5 +631,32 @@ mi_gdb_test "-var-delete endvar" \
"\\^done,ndeleted=\"1\"" \
"delete endvar"
+mi_delete_breakpoints
+
+mi_runto do_locals_tests
+
+mi_create_varobj "L" "lsimple" "in-and-out-of-scope: create varobj"
+mi_check_varobj_value "L" "{...}" "in-and-out-of-scope: check initial value"
+
+mi_runto main
+
+mi_gdb_test "-var-update L" \
+ {\^done,changelist=\[{name="L",in_scope="false",type_changed="false"}\]} \
+ "in-and-out-of-scope: out of scope now"
+
+mi_gdb_test "-var-update L" \
+ {\^done,changelist=\[]} \
+ "in-and-out-of-scope: out of scope now, not changed"
+
+mi_continue_to do_locals_tests
+
+mi_gdb_test "-var-update L" \
+ {\^done,changelist=\[{name="L",in_scope="true",type_changed="false"}\]} \
+ "in-and-out-of-scope: in scope now"
+
+mi_gdb_test "-var-update L" \
+ {\^done,changelist=\[\]} \
+ "in-and-out-of-scope: in scope now, not changed"
+
mi_gdb_exit
return 0