This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v5 12/15] test: multi-dimensional c99 vla.


> gdb/testsuite:
> 	* gdb.base/vla-multi.c: New. Test source file
> 	for testing multi-dimensional VLA's in C.
> 	* gdb.base/vla-multi.exp: New. Tests ensure
> 	that multi-dimensional VLA's can be evaluated
> 	correctly in C.

A small formatting nit: You normally need a second space after
periods. But in this case, you don't need to explain the purpose
of the files. If you feel that the comment is needed somewhere,
it should be in the files themselves.

I have some minor comments below, but the patch is pre-approved
with those changes made.

> 
> 
> Signed-off-by: Sanimir Agovic <sanimir.agovic@intel.com>
> ---
>  gdb/testsuite/gdb.base/vla-multi.c   | 55 ++++++++++++++++++++++++++++++++++++
>  gdb/testsuite/gdb.base/vla-multi.exp | 48 +++++++++++++++++++++++++++++++
>  2 files changed, 103 insertions(+)
>  create mode 100644 gdb/testsuite/gdb.base/vla-multi.c
>  create mode 100644 gdb/testsuite/gdb.base/vla-multi.exp
> 
> diff --git a/gdb/testsuite/gdb.base/vla-multi.c b/gdb/testsuite/gdb.base/vla-multi.c
> new file mode 100644
> index 0000000..47c753e
> --- /dev/null
> +++ b/gdb/testsuite/gdb.base/vla-multi.c
> @@ -0,0 +1,55 @@
> +/* This testcase is part of GDB, the GNU debugger.
> +
> +   Copyright 2013 Free Software Foundation, Inc.

The copyright year range needs to include 2014 (use "2013-2014").

> +
> +   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 3 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, see <http://www.gnu.org/licenses/>.  */
> +
> +void
> +f1 (int n, int m, int vla_ptr[n][m])
> +{
> +  return;                                 /* f1_breakpoint */
> +}
> +
> +void
> +f2 (int m, int vla_ptr[][m])
> +{
> +  return;                                 /* f2_breakpoint */
> +}
> +
> +void
> +vla_mult (int n, int m)
> +{
> +  int vla[n][m];
> +  int i, j;
> +
> +  for (i = 0; i < n; i++)
> +    {
> +      for (j = 0; j < m; j++)
> +        {
> +          vla[i][j] = i + j;
> +        }
> +    }
> +
> +  f1(n, m, vla);                          /* vla_filled */
> +  f2(m, vla);
> +
> +  return;
> +}
> +
> +int
> +main()

Please add a "void" here as param.

> +{
> +  vla_mult(2, 2);
> +  return 0;
> +}
> diff --git a/gdb/testsuite/gdb.base/vla-multi.exp b/gdb/testsuite/gdb.base/vla-multi.exp
> new file mode 100644
> index 0000000..53f626f
> --- /dev/null
> +++ b/gdb/testsuite/gdb.base/vla-multi.exp
> @@ -0,0 +1,48 @@
> +# Copyright 2013 Free Software Foundation, Inc.

Copyright year...

> +
> +# 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 3 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, see <http://www.gnu.org/licenses/>.
> +
> +standard_testfile ".c"

Can you remove the ".c"?

> +
> +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
> +    return -1
> +}
> +
> +if ![runto_main] {
> +    return -1
> +}
> +
> +set sizeof_int [get_sizeof "int" 4]
> +
> +gdb_breakpoint [gdb_get_line_number "vla_filled"]
> +gdb_continue_to_breakpoint "vla_filled"
> +gdb_test "print vla" "\\$\\d+ = \\\{\\\{0, 1\\\}, \\\{1, 2\\\}\\\}" \
> +         "print vla"
> +gdb_test "print vla\[0\]\[1\]" "\\$\\d+ = 1" "print vla\[0\]\[1\]"
> +
> +gdb_breakpoint [gdb_get_line_number "f1_breakpoint"]
> +gdb_continue_to_breakpoint "f1_breakpoint"
> +gdb_test "print *vla_ptr" "\\$\\d+ = \\\{0, 1\\\}" "print *vla_ptr (f1)"
> +
> +# Calculate the overall size of the vla.
> +set sizeof_vla [ expr "2" * "$sizeof_int" ]
> +gdb_test "print sizeof vla_ptr\[0\]" "\\$\\d+ = ${sizeof_vla}" \
> +         "print sizeof vla_ptr\[0\]"
> +gdb_test "ptype &vla_ptr" \
> +    "type = int \\\(\\\*\\\*\\\)\\\[variable length\\\]" \
> +    "ptype &vla_ptr"
> +
> +gdb_breakpoint [gdb_get_line_number "f2_breakpoint"]
> +gdb_continue_to_breakpoint "f2_breakpoint"
> +gdb_test "print *vla_ptr" "\\$\\d+ = \\\{0, 1\\\}" "print *vla_ptr (f2)"

Can you remove the $N matching for the "print" tests?

-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]