This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 6/6] Test nested struct assign
Existing testsuite doesn't exercise function evaluate_struct_tuple, so
this test is added to do so.
gdb/testsuite:
2012-11-01 Yao Qi <yao@codesourcery.com>
* gdb.base/setvar.exp: Test setting nested struct.
* gdb.base/setvar.c (v_struct3): New.
---
gdb/testsuite/gdb.base/setvar.c | 7 +++++++
gdb/testsuite/gdb.base/setvar.exp | 8 ++++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/gdb/testsuite/gdb.base/setvar.c b/gdb/testsuite/gdb.base/setvar.c
index 83509cd..3a80b22 100644
--- a/gdb/testsuite/gdb.base/setvar.c
+++ b/gdb/testsuite/gdb.base/setvar.c
@@ -115,6 +115,13 @@ struct {
double v_double_member;
} v_struct2;
+struct
+{
+ long v_long_member;
+ struct t_struct t;
+ char v_char_member;
+} v_struct3;
+
/**** unions *******/
union t_union {
diff --git a/gdb/testsuite/gdb.base/setvar.exp b/gdb/testsuite/gdb.base/setvar.exp
index 7faa10a..3c5251f 100644
--- a/gdb/testsuite/gdb.base/setvar.exp
+++ b/gdb/testsuite/gdb.base/setvar.exp
@@ -383,6 +383,14 @@ test_set "set variable v_struct1 = {'h', 1, 2, 3, 4.0, 5.0}" \
v_long_member = 3,.*v_float_member = 4,.*v_double_member = 5.*\\}" \
"set print structure #3"
+#
+# test "set variable" for nested struct
+#
+test_set "set variable v_struct3 = {1, {'h', 1, 2, 3, 4.0, 5.0}, 37}" \
+ "print v_struct3" \
+ ".*.\[0-9\]* = \\{.*v_long_member = 1,.*t = \\{.*v_char_member = 104 \'h\',.*v_short_member = 1,.*v_int_member = 2,.*v_long_member = 3,.*v_float_member = 4,.*v_double_member = 5.*\\},.*v_char_member = 37 \'%\'\\}" \
+ "set print structure #4"
+
set timeout $prev_timeout
# Test printing of enumeration bitfields.
--
1.7.7.6