[RFA]: testsuite/gdb.base/call-ar-st.[exp|c]: Change to work better with small targets

Fernando Nasser fnasser@redhat.com
Mon Oct 29 10:13:00 GMT 2001


Elena Zannoni wrote:
> 
> Corinna Vinschen writes:
>  > Hi,
>  >
>  > the following patch allows the call-ar-st test to run better on smaller
>  > targets.  Currently nearly all variable space is allocated on the stack
>  > and moreover especially the double array is somewhat big.  The patch
>  > changes all auto variables in main() to be static to unburden the stack
>  > and reduces the size of the double array to reduce the all over memory
>  > requirements of the test.  Additionally it increases the timeout value
>  > by 60 seconds considering that some small targets are also somewhat
>  > slow.
>  >
>  > Corinna
> 
> I am not the maintainer of this, but since I wrote the test, I think
> the patch is fine.
> 
> Elena
> 

If Elena says it is right it is fine with me.  Please check it in.

And thanks for the patch.

Fernando

>  >
>  > 2001-10-25  Corinna Vinschen  <vinschen@redhat.com>
>  >
>  >      * gdb.base/call-ar-st.c (print_double_array): Match for loop
>  >      with new double_array size.
>  >      (main): Change storage class of all local variables to static.
>  >      Reduce size of double_array to 9.
>  >      * gdb.base/call-ar-st.exp:  Increase timeout value.
>  >      Change expected output for double array to match new size in
>  >      call-ar-st.c.
>  >
>  > Index: gdb.base/call-ar-st.c
>  > ===================================================================
>  > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/call-ar-st.c,v
>  > retrieving revision 1.2
>  > diff -u -p -r1.2 call-ar-st.c
>  > --- call-ar-st.c     2000/03/30 23:32:30     1.2
>  > +++ call-ar-st.c     2001/10/25 13:49:08
>  > @@ -231,7 +231,7 @@ void print_double_array (array_d)
>  >
>  >    printf("array_d :\n");
>  >    printf("=========\n\n");
>  > -  for (index = 0; index < 100; index++) {
>  > +  for (index = 0; index < 9; index++) {
>  >        printf("%f  ", array_d[index]);
>  >        if ((index%8) == 0) printf("\n");
>  >    }
>  > @@ -1147,48 +1147,48 @@ int main ()  {
>  >
>  >    /* variables for array and enumerated type testing
>  >     */
>  > -  char     char_array[121];
>  > -  double   double_array[100];
>  > -  float    float_array[15];
>  > -  int      integer_array[50];
>  > -  int      index;
>  > -  id_int   student_id = 23;
>  > -  colors   my_shirt = YELLOW;
>  > +  static char     char_array[121];
>  > +  static double   double_array[9];
>  > +  static float    float_array[15];
>  > +  static int      integer_array[50];
>  > +  static int      index;
>  > +  static id_int   student_id = 23;
>  > +  static colors   my_shirt = YELLOW;
>  >
>  >    /* variables for large structure testing
>  >     */
>  > -  int number = 10;
>  > -  struct array_rep_info_t *list1;
>  > -  struct array_rep_info_t *list2;
>  > -  struct array_rep_info_t *list3;
>  > -  struct array_rep_info_t *list4;
>  > +  static int number = 10;
>  > +  static struct array_rep_info_t *list1;
>  > +  static struct array_rep_info_t *list2;
>  > +  static struct array_rep_info_t *list3;
>  > +  static struct array_rep_info_t *list4;
>  >
>  >    /* variables for testing a very long argument list
>  >     */
>  > -   double                    a;
>  > -   double                    b;
>  > -   int                       c;
>  > -   int                       d;
>  > -   int                       e;
>  > -   int                       f;
>  > +   static double                    a;
>  > +   static double                    b;
>  > +   static int                       c;
>  > +   static int                       d;
>  > +   static int                       e;
>  > +   static int                       f;
>  >
>  >    /* variables for testing a small structures and a very long argument list
>  >     */
>  > -   struct small_rep_info_t  *struct1;
>  > -   struct small_rep_info_t  *struct2;
>  > -   struct small_rep_info_t  *struct3;
>  > -   struct small_rep_info_t  *struct4;
>  > -   struct bit_flags_t       *flags;
>  > -   struct bit_flags_combo_t *flags_combo;
>  > -   struct three_char_t      *three_char;
>  > -   struct five_char_t       *five_char;
>  > -   struct int_char_combo_t  *int_char_combo;
>  > -   struct one_double_t      *d1;
>  > -   struct one_double_t      *d2;
>  > -   struct one_double_t      *d3;
>  > -   struct two_floats_t      *f1;
>  > -   struct two_floats_t      *f2;
>  > -   struct two_floats_t      *f3;
>  > +   static struct small_rep_info_t  *struct1;
>  > +   static struct small_rep_info_t  *struct2;
>  > +   static struct small_rep_info_t  *struct3;
>  > +   static struct small_rep_info_t  *struct4;
>  > +   static struct bit_flags_t       *flags;
>  > +   static struct bit_flags_combo_t *flags_combo;
>  > +   static struct three_char_t      *three_char;
>  > +   static struct five_char_t       *five_char;
>  > +   static struct int_char_combo_t  *int_char_combo;
>  > +   static struct one_double_t      *d1;
>  > +   static struct one_double_t      *d2;
>  > +   static struct one_double_t      *d3;
>  > +   static struct two_floats_t      *f1;
>  > +   static struct two_floats_t      *f2;
>  > +   static struct two_floats_t      *f3;
>  >
>  >    /* Initialize arrays
>  >     */
>  > @@ -1198,7 +1198,7 @@ int main ()  {
>  >    }
>  >    char_array[120] = '\0';
>  >
>  > -  for (index = 0; index < 100; index++) {
>  > +  for (index = 0; index < 9; index++) {
>  >        double_array[index] = index*23.4567;
>  >    }
>  >
>  > Index: gdb.base/call-ar-st.exp
>  > ===================================================================
>  > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/call-ar-st.exp,v
>  > retrieving revision 1.9
>  > diff -u -p -r1.9 call-ar-st.exp
>  > --- call-ar-st.exp   2001/07/16 18:44:23     1.9
>  > +++ call-ar-st.exp   2001/10/25 13:49:08
>  > @@ -56,6 +56,9 @@ if [target_info exists gdb,cannot_call_f
>  >      continue
>  >  }
>  >
>  > +set oldtimeout $timeout
>  > +set timeout [expr "$timeout + 60"]
>  > +
>  >  # Set the current language to C.  This counts as a test.  If it
>  >  # fails, then we skip the other tests.
>  >
>  > @@ -122,18 +125,7 @@ if {![gdb_skip_float_test "print print_d
>  >      "\[ \t\r\n\]+========="
>  >      "\[ \t\r\n\]+0.000000"
>  >      "\[ \t\r\n\]+23.456700  46.913400  70.370100  93.826800  117.283500  140.740200  164.196900  187.653600"
>  > -    "\[ \t\r\n\]+211.110300  234.567000  258.023700  281.480400  304.937100  328.393800  351.850500  375.307200"
>  > -    "\[ \t\r\n\]+398.763900  422.220600  445.677300  469.134000  492.590700  516.047400  539.504100  562.960800"
>  > -    "\[ \t\r\n\]+586.417500  609.874200  633.330900  656.787600  680.244300  703.701000  727.157700  750.614400"
>  > -    "\[ \t\r\n\]+774.071100  797.527800  820.984500  844.441200  867.897900  891.354600  914.811300  938.268000"
>  > -    "\[ \t\r\n\]+961.724700  985.181400  1008.638100  1032.094800  1055.551500  1079.008200  1102.464900  1125.921600"
>  > -    "\[ \t\r\n\]+1149.378300  1172.835000  1196.291700  1219.748400  1243.205100  1266.661800  1290.118500  1313.575200"
>  > -    "\[ \t\r\n\]+1337.031900  1360.488600  1383.945300  1407.402000  1430.858700  1454.315400  1477.772100  1501.228800"
>  > -    "\[ \t\r\n\]+1524.685500  1548.142200  1571.598900  1595.055600  1618.512300  1641.969000  1665.425700  1688.882400"
>  > -    "\[ \t\r\n\]+1712.339100  1735.795800  1759.252500  1782.709200  1806.165900  1829.622600  1853.079300  1876.536000"
>  > -    "\[ \t\r\n\]+1899.992700  1923.449400  1946.906100  1970.362800  1993.819500  2017.276200  2040.732900  2064.189600"
>  > -    "\[ \t\r\n\]+2087.646300  2111.103000  2134.559700  2158.016400  2181.473100  2204.929800  2228.386500  2251.843200"
>  > -    "\[ \t\r\n\]+2275.299900  2298.756600  2322.213300\[ \t\r\n\]+\[ \t\r\n\]+"
>  > +    "\[ \t\r\n\]+"
>  >    }
>  >  }
>  >
>  > @@ -202,18 +194,7 @@ if {![gdb_skip_float_test "continuing to
>  >      "\[ \t\r\n\]+========="
>  >      "\[ \t\r\n\]+0.000000"
>  >      "\[ \t\r\n\]+23.456700  46.913400  70.370100  93.826800  117.283500  140.740200  164.196900  187.653600"
>  > -    "\[ \t\r\n\]+211.110300  234.567000  258.023700  281.480400  304.937100  328.393800  351.850500  375.307200"
>  > -    "\[ \t\r\n\]+398.763900  422.220600  445.677300  469.134000  492.590700  516.047400  539.504100  562.960800"
>  > -    "\[ \t\r\n\]+586.417500  609.874200  633.330900  656.787600  680.244300  703.701000  727.157700  750.614400"
>  > -    "\[ \t\r\n\]+774.071100  797.527800  820.984500  844.441200  867.897900  891.354600  914.811300  938.268000"
>  > -    "\[ \t\r\n\]+961.724700  985.181400  1008.638100  1032.094800  1055.551500  1079.008200  1102.464900  1125.921600"
>  > -    "\[ \t\r\n\]+1149.378300  1172.835000  1196.291700  1219.748400  1243.205100  1266.661800  1290.118500  1313.575200"
>  > -    "\[ \t\r\n\]+1337.031900  1360.488600  1383.945300  1407.402000  1430.858700  1454.315400  1477.772100  1501.228800"
>  > -    "\[ \t\r\n\]+1524.685500  1548.142200  1571.598900  1595.055600  1618.512300  1641.969000  1665.425700  1688.882400"
>  > -    "\[ \t\r\n\]+1712.339100  1735.795800  1759.252500  1782.709200  1806.165900  1829.622600  1853.079300  1876.536000"
>  > -    "\[ \t\r\n\]+1899.992700  1923.449400  1946.906100  1970.362800  1993.819500  2017.276200  2040.732900  2064.189600"
>  > -    "\[ \t\r\n\]+2087.646300  2111.103000  2134.559700  2158.016400  2181.473100  2204.929800  2228.386500  2251.843200"
>  > -    "\[ \t\r\n\]+2275.299900  2298.756600  2322.213300\[ \t\r\n\]+\[ \t\r\n\]+"
>  > +    "\[ \t\r\n\]+"
>  >      ".*array_f :"
>  >      ".*student id :\[\t \]+.*YELLOW"
>  >      ".*array_i :"
>  > @@ -259,18 +240,7 @@ if {![gdb_skip_float_test "print print_d
>  >      "\[ \t\r\n\]+========="
>  >      "\[ \t\r\n\]+\[ \t\r\n\]+0.000000"
>  >      "\[ \t\r\n\]+23.456700  46.913400  70.370100  93.826800  117.283500  140.740200  164.196900  187.653600"
>  > -    "\[ \t\r\n\]+211.110300  234.567000  258.023700  281.480400  304.937100  328.393800  351.850500  375.307200"
>  > -    "\[ \t\r\n\]+398.763900  422.220600  445.677300  469.134000  492.590700  516.047400  539.504100  562.960800"
>  > -    "\[ \t\r\n\]+586.417500  609.874200  633.330900  656.787600  680.244300  703.701000  727.157700  750.614400"
>  > -    "\[ \t\r\n\]+774.071100  797.527800  820.984500  844.441200  867.897900  891.354600  914.811300  938.268000"
>  > -    "\[ \t\r\n\]+961.724700  985.181400  1008.638100  1032.094800  1055.551500  1079.008200  1102.464900  1125.921600"
>  > -    "\[ \t\r\n\]+1149.378300  1172.835000  1196.291700  1219.748400  1243.205100  1266.661800  1290.118500  1313.575200"
>  > -    "\[ \t\r\n\]+1337.031900  1360.488600  1383.945300  1407.402000  1430.858700  1454.315400  1477.772100  1501.228800"
>  > -    "\[ \t\r\n\]+1524.685500  1548.142200  1571.598900  1595.055600  1618.512300  1641.969000  1665.425700  1688.882400"
>  > -    "\[ \t\r\n\]+1712.339100  1735.795800  1759.252500  1782.709200  1806.165900  1829.622600  1853.079300  1876.536000"
>  > -    "\[ \t\r\n\]+1899.992700  1923.449400  1946.906100  1970.362800  1993.819500  2017.276200  2040.732900  2064.189600"
>  > -    "\[ \t\r\n\]+2087.646300  2111.103000  2134.559700  2158.016400  2181.473100  2204.929800  2228.386500  2251.843200"
>  > -    "\[ \t\r\n\]+2275.299900  2298.756600  2322.213300\[ \t\r\n\]+\[ \t\r\n\]+"
>  > +    "\[ \t\r\n\]+"
>  >      }
>  >  }
>  >
>  > @@ -289,18 +259,7 @@ if {![gdb_skip_float_test "continuing to
>  >      "\[ \t\r\n\]+========="
>  >      "\[ \t\r\n\]+0.000000"
>  >      "\[ \t\r\n\]+23.456700  46.913400  70.370100  93.826800  117.283500  140.740200  164.196900  187.653600"
>  > -    "\[ \t\r\n\]+211.110300  234.567000  258.023700  281.480400  304.937100  328.393800  351.850500  375.307200"
>  > -    "\[ \t\r\n\]+398.763900  422.220600  445.677300  469.134000  492.590700  516.047400  539.504100  562.960800"
>  > -    "\[ \t\r\n\]+586.417500  609.874200  633.330900  656.787600  680.244300  703.701000  727.157700  750.614400"
>  > -    "\[ \t\r\n\]+774.071100  797.527800  820.984500  844.441200  867.897900  891.354600  914.811300  938.268000"
>  > -    "\[ \t\r\n\]+961.724700  985.181400  1008.638100  1032.094800  1055.551500  1079.008200  1102.464900  1125.921600"
>  > -    "\[ \t\r\n\]+1149.378300  1172.835000  1196.291700  1219.748400  1243.205100  1266.661800  1290.118500  1313.575200"
>  > -    "\[ \t\r\n\]+1337.031900  1360.488600  1383.945300  1407.402000  1430.858700  1454.315400  1477.772100  1501.228800"
>  > -    "\[ \t\r\n\]+1524.685500  1548.142200  1571.598900  1595.055600  1618.512300  1641.969000  1665.425700  1688.882400"
>  > -    "\[ \t\r\n\]+1712.339100  1735.795800  1759.252500  1782.709200  1806.165900  1829.622600  1853.079300  1876.536000"
>  > -    "\[ \t\r\n\]+1899.992700  1923.449400  1946.906100  1970.362800  1993.819500  2017.276200  2040.732900  2064.189600"
>  > -    "\[ \t\r\n\]+2087.646300  2111.103000  2134.559700  2158.016400  2181.473100  2204.929800  2228.386500  2251.843200"
>  > -    "\[ \t\r\n\]+2275.299900  2298.756600  2322.213300.*HELLO WORLD.*main \\(\\) at .*call-ar-st.c:1236.*printf\\(.BYE BYE FOR NOW.n.\\)."
>  > +    "\[ \t\r\n\]+.*HELLO WORLD.*main \\(\\) at .*call-ar-st.c:1236.*printf\\(.BYE BYE FOR NOW.n.\\)."
>  >      }
>  >  } else {
>  >      gdb_test "continue" "" ""
>  > @@ -740,5 +699,6 @@ if ![gdb_skip_stdio_test "print print_on
>  >      }
>  >  }
>  >
>  > +set timeout $oldtimeout
>  >  return
>  >
>  >
>  > --
>  > Corinna Vinschen
>  > Cygwin Developer
>  > Red Hat, Inc.
>  > mailto:vinschen@redhat.com

-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9



More information about the Gdb-patches mailing list