PATCH: tests for MI commands

Daniel Jacobowitz drow@false.org
Sun Jul 31 21:25:00 GMT 2005


I apologize for the delay.  I meant to do this Friday.

On Fri, Jul 29, 2005 at 07:29:56PM +1200, Nick Roberts wrote:
> Daniel Jacobowitz writes:
>  > You've broken many of the other tests using the source files you've
>  > modified.  Please, run the entire GDB testsuite before committing
>  > patches - as testsuites go it really doesn't take very long.
> 
>  ...
>  > +UNRESOLVED: gdb.mi/mi2-var-child.exp: update all vars psnp->next->long_ptr (and 1.long_ptr) changed
>  > +FAIL: gdb.mi/mi2-var-child.exp: step $line_dct_snp0 + 7 (timeout)
>  > +ERROR: Couldn't send -var-update * to GDB.
>  > +UNRESOLVED: gdb.mi/mi2-var-child.exp: update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed
>  > 
>  > Please fix them - I think the easiest thing to do is to revert the
>  > changes to the affected source files and switch those two modified
>  > tests to using new source files.
> 
> I would rather copy my changes to mi-stack.exp and mi-var-child.exp over to
> mi2-stack.exp and mi2-var-child.exp.  Creating new files mi-var-cmd.c,
> mi-basics.c etc seems more complicated.  Is this an acceptable short term
> solution?

It's not complicated at all.  Please see the attached patch, which I've
checked in.  It would be even simpler than this if folks had used
${srcfile} to begin with.

Tested on i686-pc-linux-gnu, where it resolves 18 FAILs and assorted
ERRORs.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

2005-07-31  Daniel Jacobowitz  <dan@codesourcery.com>

	* gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change.
	* gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c.
	* gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c.
	* gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file.
	* gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source
	file.

Index: gdb.mi/basics.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/basics.c,v
retrieving revision 1.6
diff -u -p -r1.6 basics.c
--- gdb.mi/basics.c	27 Jul 2005 02:20:17 -0000	1.6
+++ gdb.mi/basics.c	31 Jul 2005 21:20:52 -0000
@@ -1,4 +1,4 @@
-/* Copyright 1999, 2000, 2004, 2005
+/* Copyright 1999, 2000, 2004
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -30,7 +30,6 @@ int callee4 (void)
   int A=1;
   int B=2;
   int C;
-  int D[3] = {0, 1 ,2};
 
   C = A + B;
   return 0;
Index: gdb.mi/mi-stack.c
===================================================================
RCS file: gdb.mi/mi-stack.c
diff -N gdb.mi/mi-stack.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gdb.mi/mi-stack.c	31 Jul 2005 21:20:52 -0000
@@ -0,0 +1,68 @@
+/* Copyright 1999, 2000, 2004, 2005
+   Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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.  */
+
+/*
+ *	This simple program that passes different types of arguments
+ *      on function calls.  Useful to test printing frames, stepping, etc.
+ */
+
+#include <stdio.h>
+
+int callee4 (void)
+{
+  int A=1;
+  int B=2;
+  int C;
+  int D[3] = {0, 1, 2};
+
+  C = A + B;
+  return 0;
+}
+callee3 (char *strarg)
+{
+  callee4 ();
+}
+
+callee2 (int intarg, char *strarg)
+{
+  callee3 (strarg);
+}
+
+callee1 (int intarg, char *strarg, double fltarg)
+{
+  callee2 (intarg, strarg);
+}
+
+main ()
+{
+  callee1 (2, "A string argument.", 3.5);
+  callee1 (2, "A string argument.", 3.5);
+
+  printf ("Hello, World!");
+
+  return 0;
+}
+
+/*
+Local variables: 
+change-log-default-name: "ChangeLog-mi"
+End: 
+*/
+
Index: gdb.mi/mi-stack.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-stack.exp,v
retrieving revision 1.17
diff -u -p -r1.17 mi-stack.exp
--- gdb.mi/mi-stack.exp	27 Jul 2005 02:20:45 -0000	1.17
+++ gdb.mi/mi-stack.exp	31 Jul 2005 21:20:53 -0000
@@ -31,7 +31,7 @@ if [mi_gdb_start] {
     continue
 }
 
-set testfile "basics"
+set testfile "mi-stack"
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
@@ -58,7 +58,7 @@ proc test_stack_frame_listing {} {
     # -stack-info-frame
 
     mi_gdb_test "231-stack-list-frames" \
-	    "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \
+	    "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \
                 "stack frame listing"
     mi_gdb_test "232-stack-list-frames 1 1" \
 	    "232\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\}\\\]" \
@@ -72,7 +72,7 @@ proc test_stack_frame_listing {} {
 	    "stack frame listing wrong"
 
     mi_gdb_test "235-stack-info-frame" \
-            "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \
+            "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \
 	       "selected frame listing"
 }
 
@@ -166,7 +166,7 @@ set line_callee4_return_0 [gdb_get_line_
 # step until A, B, C, D have some reasonable values.
 send_gdb "-exec-next 4\n"
 gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_return_0\"\}\r\n$mi_gdb_prompt$" {
+    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_return_0\"\}\r\n$mi_gdb_prompt$" {
 	pass "next's in callee4"
     }
     timeout { fail "next in callee4 (timeout)" }
Index: gdb.mi/mi-var-child.c
===================================================================
RCS file: gdb.mi/mi-var-child.c
diff -N gdb.mi/mi-var-child.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gdb.mi/mi-var-child.c	31 Jul 2005 21:20:53 -0000
@@ -0,0 +1,319 @@
+/* Copyright 1999, 2004, 2005 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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.  */
+
+#include <stdlib.h>
+
+struct _simple_struct {
+  int integer;
+  unsigned int unsigned_integer;
+  char character;
+  signed char signed_character;
+  char *char_ptr;
+  int array_of_10[10];
+};
+
+typedef struct _simple_struct simpleton;
+
+simpleton global_simple;
+
+enum foo {
+  bar = 1,
+  baz
+};
+
+typedef enum foo efoo;
+
+union named_union
+{
+  int integer;
+  char *char_ptr;
+};
+
+typedef struct _struct_decl {
+  int   integer;
+  char  character;
+  char *char_ptr;
+  long  long_int;
+  int  **int_ptr_ptr;
+  long  long_array[12];
+
+  void (*func_ptr) (void);
+  struct _struct_decl (*func_ptr_struct) (int, char *, long);
+  struct _struct_decl *(*func_ptr_ptr) (int, char *, long);
+  union {
+    int   a;
+    char *b;
+    long  c;
+    enum foo d;
+  } u1;
+
+  struct {
+    union {
+      struct {
+        int d;
+        char e[10];
+        int *(*func) (void);
+        efoo foo;
+      } u1s1;
+
+      long f;
+      struct {
+        char array_ptr[2];
+        int (*func) (int, char *);
+      } u1s2;
+    } u2;
+
+    int g;
+    char h;
+    long i[10];
+  } s2;
+} weird_struct;
+
+struct _struct_n_pointer {
+  char ****char_ptr;
+  long ****long_ptr;
+  struct _struct_n_pointer *ptrs[3];
+  struct _struct_n_pointer *next;
+};
+
+void do_locals_tests (void);
+void do_block_tests (void);
+void subroutine1 (int, long *);
+void nothing (void);
+void do_children_tests (void);
+void do_special_tests (void);
+void incr_a (char);
+
+void incr_a (char a)
+{
+  int b;
+  b = a;
+}
+
+void
+do_locals_tests ()
+{
+  int linteger;
+  int *lpinteger;
+  char lcharacter;
+  char *lpcharacter;
+  long llong;
+  long *lplong;
+  float lfloat;
+  float *lpfloat;
+  double ldouble;
+  double *lpdouble;
+  struct _simple_struct lsimple;
+  struct _simple_struct *lpsimple;
+  void (*func) (void);
+
+  /* Simple assignments */
+  linteger = 1234;
+  lpinteger = &linteger;
+  lcharacter = 'a';
+  lpcharacter = &lcharacter;
+  llong = 2121L;
+  lplong = &llong;
+  lfloat = 2.1;
+  lpfloat = &lfloat;
+  ldouble = 2.718281828459045;
+  lpdouble = &ldouble;
+  lsimple.integer = 1234;
+  lsimple.unsigned_integer = 255;
+  lsimple.character = 'a';
+  lsimple.signed_character = 21;
+  lsimple.char_ptr = &lcharacter;
+  lpsimple = &lsimple;
+  func = nothing;
+
+  /* Check pointers */
+  linteger = 4321;
+  lcharacter = 'b';
+  llong = 1212L;
+  lfloat = 1.2;
+  ldouble = 5.498548281828172;
+  lsimple.integer = 255;
+  lsimple.unsigned_integer = 4321;
+  lsimple.character = 'b';
+  lsimple.signed_character = 0;
+
+  subroutine1 (linteger, &llong);
+}
+
+void
+nothing ()
+{
+}
+
+void
+subroutine1 (int i, long *l)
+{
+  global_simple.integer = i + 3;
+  i = 212;
+  *l = 12;
+}
+
+void
+do_block_tests ()
+{
+  int cb = 12;
+
+  {
+    int foo;
+    foo = 123;
+    {
+      int foo2;
+      foo2 = 123;
+      {
+        int foo;
+        foo = 321;
+      }
+      foo2 = 0;
+    }
+    foo = 0;
+  }
+
+  cb = 21;
+}
+
+void
+do_children_tests (void)
+{
+  weird_struct *weird;
+  struct _struct_n_pointer *psnp;
+  struct _struct_n_pointer snp0, snp1, snp2;
+  char a0, *a1, **a2, ***a3;
+  char b0, *b1, **b2, ***b3;
+  char c0, *c1, **c2, ***c3;
+  long z0, *z1, **z2, ***z3;
+  long y0, *y1, **y2, ***y3;
+  long x0, *x1, **x2, ***x3;
+  int *foo;
+  int bar;
+
+  struct _struct_decl struct_declarations;
+  weird = &struct_declarations;
+
+  struct_declarations.integer = 123;
+  weird->char_ptr = "hello";
+  bar = 2121;
+  foo = &bar;
+  struct_declarations.int_ptr_ptr = &foo;
+  weird->long_array[0] = 1234;
+  struct_declarations.long_array[1] = 2345;
+  weird->long_array[2] = 3456;
+  struct_declarations.long_array[3] = 4567;
+  weird->long_array[4] = 5678;
+  struct_declarations.long_array[5] = 6789;
+  weird->long_array[6] = 7890;
+  struct_declarations.long_array[7] = 8901;
+  weird->long_array[8] = 9012;
+  struct_declarations.long_array[9] = 1234;
+
+  weird->func_ptr = nothing;
+  struct_declarations.long_array[10] = 3456;
+  struct_declarations.long_array[11] = 5678;
+
+  /* Struct/pointer/array tests */
+  a0 = '0';
+  a1 = &a0;
+  a2 = &a1;
+  a3 = &a2;
+  b0 = '1';
+  b1 = &b0;
+  b2 = &b1;
+  b3 = &b2;
+  c0 = '2';
+  c1 = &c0;
+  c2 = &c1;
+  c3 = &c2;
+  z0 = 0xdead + 0;
+  z1 = &z0;
+  z2 = &z1;
+  z3 = &z2;
+  y0 = 0xdead + 1;
+  y1 = &y0;
+  y2 = &y1;
+  y3 = &y2;
+  x0 = 0xdead + 2;
+  x1 = &x0;
+  x2 = &x1;
+  x3 = &x2;
+  snp0.char_ptr = &a3;
+  snp0.long_ptr = &z3;
+  snp0.ptrs[0] = &snp0;
+  snp0.ptrs[1] = &snp1;
+  snp0.ptrs[2] = &snp2;
+  snp0.next = &snp1;
+  snp1.char_ptr = &b3;
+  snp1.long_ptr = &y3;
+  snp1.ptrs[0] = &snp0;
+  snp1.ptrs[1] = &snp1;
+  snp1.ptrs[2] = &snp2;
+  snp1.next = &snp2;
+  snp2.char_ptr = &c3;
+  snp2.long_ptr = &x3;
+  snp2.ptrs[0] = &snp0;
+  snp2.ptrs[1] = &snp1;
+  snp2.ptrs[2] = &snp2;
+  snp2.next = 0x0;
+  psnp = &snp0;
+  snp0.char_ptr = &b3;
+  snp1.char_ptr = &c3;
+  snp2.char_ptr = &a3;
+  snp0.long_ptr = &y3;
+  snp1.long_ptr = &x3;
+  snp2.long_ptr = &z3;
+}
+
+void
+do_special_tests (void)
+{
+  union named_union u;
+  union {
+    int a;
+    char b;
+    long c;
+  } anonu;
+  struct _simple_struct s;
+  struct {
+    int a;
+    char b;
+    long c;
+  } anons;
+  enum foo e;
+  enum { A, B, C } anone;
+  int array[21];
+  int a;
+
+  a = 1;   
+  incr_a(2);
+}
+
+int
+main (int argc, char *argv [])
+{
+  do_locals_tests ();
+  do_block_tests ();
+  do_children_tests ();
+  do_special_tests ();
+  exit (0);
+}
+
+  
Index: gdb.mi/mi-var-child.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-var-child.exp,v
retrieving revision 1.18
diff -u -p -r1.18 mi-var-child.exp
--- gdb.mi/mi-var-child.exp	27 Jul 2005 02:21:01 -0000	1.18
+++ gdb.mi/mi-var-child.exp	31 Jul 2005 21:20:53 -0000
@@ -28,7 +28,7 @@ if [mi_gdb_start] {
     continue
 }
 
-set testfile "var-cmd"
+set testfile "mi-var-child"
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
@@ -553,7 +553,7 @@ mi_gdb_test "-var-info-num-children stru
 
 # Step to "struct_declarations.integer = 123;"
 set line_dct_123 [gdb_get_line_number "struct_declarations.integer = 123;"]
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
       $line_dct_123 "step to line \$line_dct_123"
 
 # Test: c_variable-4.81
@@ -752,7 +752,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars. None changed"
 
 # Step over "struct_declarations.integer = 123;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 1] "step \$line_dct_123 + 1"
 
 # Test: c_variable-5.2
@@ -765,7 +765,7 @@ mi_gdb_test "-var-update *" \
 #    weird->char_ptr = "hello";
 #    bar = 2121;
 #    foo = &bar;
-mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
+mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 4] {} "step \$line_dct_123 + 4"
 
 # Test: c_variable-5.3
@@ -775,7 +775,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars struct_declarations.char_ptr"
 
 # Step over "struct_declarations.int_ptr_ptr = &foo;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 5] "step \$line_dct_123 + 5"
 
 # Test: c_variable-5.4
@@ -785,7 +785,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars int_ptr_ptr and children changed"
 
 # Step over "weird->long_array[0] = 1234;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 6] "step \$line_dct_123 + 6"
 
 # Test: c_variable-5.5
@@ -795,7 +795,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars struct_declarations.long_array.0 changed"
 
 # Step over "struct_declarations.long_array[1] = 2345;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 7] "step \$line_dct_123 + 7"
 
 # Test: c_variable-5.6
@@ -805,7 +805,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars struct_declarations.long_array.1 changed"
 
 # Step over "weird->long_array[2] = 3456;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_123 + 8] "step \$line_dct_123 + 8"
 
 # Test: c_variable-5.7
@@ -824,7 +824,7 @@ mi_gdb_test "-var-update *" \
 #    struct_declarations.long_array[9] = 1234;
 
 set line_dct_nothing [gdb_get_line_number "weird->func_ptr = nothing;"]
-mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
+mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
     $line_dct_nothing {} "step \$line_dct_nothing"
 
 # Test: c_variable-5.8
@@ -835,7 +835,7 @@ mi_gdb_test "-var-update *" \
 
 
 # Step over "weird->func_ptr = nothing";
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_nothing + 1] "step \$line_dct_nothing + 1"
 
 # Test: c_variable-5.9
@@ -845,7 +845,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars struct_declarations.func_ptr changed"
 
 # Step over "struct_declarations.long_array[10] = 3456";
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_nothing + 2] "step \$line_dct_nothing + 2"
 
 mi_gdb_test "-var-update --no-values *" \
@@ -854,7 +854,7 @@ mi_gdb_test "-var-update --no-values *" 
 
 # Step over "struct_declarations.long_array[11] = 5678";
 set line_dct_a0_0 [gdb_get_line_number "a0 = '0';"]
-mi_step_to  do_children_tests {} {.*var-cmd.c} \
+mi_step_to  do_children_tests {} ".*${srcfile}" \
     $line_dct_a0_0 "step \$line_dct_a0_0"
 
 mi_gdb_test "-var-update --all-values *" \
@@ -883,7 +883,7 @@ mi_gdb_test "-var-delete weird->int_ptr_
 #   psnp = &snp0;
 
 set line_dct_snp0 [gdb_get_line_number "psnp = &snp0;"]
-mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
+mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 1] {} "step \$line_dct_snp0 + 1"
 
 # Test: c_variable-5.10
@@ -1154,7 +1154,7 @@ mi_gdb_test "-var-list-children psnp->pt
 	"get children of psnp->ptrs.0.next.next.ptrs"
 
 #  Step over "snp0.char_ptr = &b3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 2] "step \$line_dct_snp0 + 2"
 
 # Test: c_variable-5.47
@@ -1164,7 +1164,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars psnp->char_ptr (and 0.char_ptr) changed"
 
 #  Step over "snp1.char_ptr = &c3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 3] "step \$line_dct_snp0 + 3"
 
 # Test: c_variable-5.48
@@ -1175,7 +1175,7 @@ mi_gdb_test "-var-update *" \
 
 
 #  Step over "snp2.char_ptr = &a3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 4] "step \$line_dct_snp0 + 4"
 
 # Test: c_variable-5.49
@@ -1186,7 +1186,7 @@ mi_gdb_test "-var-update *" \
 
 
 #  Step over "snp0.long_ptr = &y3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 5] "step \$line_dct_snp0 + 5"
 
 # Test: c_variable-5.50
@@ -1197,7 +1197,7 @@ mi_gdb_test "-var-update *" \
 
 
 #  Step over "snp1.long_ptr = &x3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 6] "step \$line_dct_snp0 + 6"
 
 # Test: c_variable-5.51
@@ -1214,7 +1214,7 @@ clear_xfail *-*-*
 #
 
 #  Step over "snp2.long_ptr = &z3;"
-mi_step_to do_children_tests {} {.*var-cmd.c} \
+mi_step_to do_children_tests {} ".*${srcfile}" \
     [expr $line_dct_snp0 + 7] "step \$line_dct_snp0 + 7"
 
 # Test: c_variable-5.52
Index: gdb.mi/var-cmd.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/var-cmd.c,v
retrieving revision 1.4
diff -u -p -r1.4 var-cmd.c
--- gdb.mi/var-cmd.c	27 Jul 2005 02:21:16 -0000	1.4
+++ gdb.mi/var-cmd.c	31 Jul 2005 21:20:53 -0000
@@ -1,4 +1,4 @@
-/* Copyright 1999, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright 1999, 2004 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -51,7 +51,7 @@ typedef struct _struct_decl {
   char *char_ptr;
   long  long_int;
   int  **int_ptr_ptr;
-  long  long_array[12];
+  long  long_array[10];
 
   void (*func_ptr) (void);
   struct _struct_decl (*func_ptr_struct) (int, char *, long);
@@ -227,8 +227,6 @@ do_children_tests (void)
   struct_declarations.long_array[9] = 1234;
 
   weird->func_ptr = nothing;
-  struct_declarations.long_array[10] = 3456;
-  struct_declarations.long_array[11] = 5678;
 
   /* Struct/pointer/array tests */
   a0 = '0';



More information about the Gdb-patches mailing list