* [RFA/testsuite] Complex numbers in C
@ 2002-03-20 16:36 Daniel Jacobowitz
2002-03-20 16:51 ` Daniel Jacobowitz
2002-04-14 17:35 ` Andrew Cagney
0 siblings, 2 replies; 4+ messages in thread
From: Daniel Jacobowitz @ 2002-03-20 16:36 UTC (permalink / raw)
To: gdb-patches
Here's a test for the bug I just fixed. It's got one caveat: I could not,
no matter how I searched, find a way to make DejaGNU be quiet if a test
fails to compile. This adds one line of gcc error message to the testsuite
output if the test didn't build (non-GCC-and-non-C99 compiler will do it,
probably).
Other caveat was that I don't remember if we agreed to use unsupported in
this case or not.
[As a side note, I'm trying to design a gcc.dg-like framework for GDB. I
shouldn't need to write TCL for a test this simple, with a small testcase,
and there are a lot of this sort of test that we could use.]
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
2002-03-20 Daniel Jacobowitz <drow@mvista.com>
* gdb.base/complex.c: New file.
* gdb.base/complex.exp: New file.
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.c Wed Mar 20 19:30:16 2002
@@ -0,0 +1,29 @@
+/* Test taken from GCC. Verify that we can print a structure containing
+ a complex number. */
+
+typedef __complex__ float cf;
+struct x { char c; cf f; } __attribute__ ((__packed__));
+extern void f2 (struct x*);
+extern void f1 (void);
+int
+main (void)
+{
+ f1 ();
+ exit (0);
+}
+
+void
+f1 (void)
+{
+ struct x s;
+ s.f = 1;
+ s.c = 42;
+ f2 (&s);
+}
+
+void
+f2 (struct x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.exp Wed Mar 20 19:32:32 2002
@@ -0,0 +1,49 @@
+# Copyright 2002 Free Software Foundation, Inc.
+
+# 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.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set bug_id 0
+
+set testfile complex
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+set options debug
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
+ # No support for __complex__, presumably.
+ unsupported "print complex value in C"
+ return 0
+}
+
+# Start with a fresh gdb.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+if [runto f2] then {
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex value in C"
+}
+
+return 0
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFA/testsuite] Complex numbers in C
2002-03-20 16:36 [RFA/testsuite] Complex numbers in C Daniel Jacobowitz
@ 2002-03-20 16:51 ` Daniel Jacobowitz
2002-04-14 17:35 ` Andrew Cagney
1 sibling, 0 replies; 4+ messages in thread
From: Daniel Jacobowitz @ 2002-03-20 16:51 UTC (permalink / raw)
To: gdb-patches
On Wed, Mar 20, 2002 at 07:36:44PM -0500, Daniel Jacobowitz wrote:
> Here's a test for the bug I just fixed. It's got one caveat: I could not,
> no matter how I searched, find a way to make DejaGNU be quiet if a test
> fails to compile. This adds one line of gcc error message to the testsuite
> output if the test didn't build (non-GCC-and-non-C99 compiler will do it,
> probably).
By the way, it fails on GCC 3.0/stabs because of a (probably) GCC bug
in debug information. It also fails in GCC 2.95/DWARF-2 because of a
bug with __attribute__((packed)), so I'd actually use the test attached
instead.
> Other caveat was that I don't remember if we agreed to use unsupported in
> this case or not.
>
> [As a side note, I'm trying to design a gcc.dg-like framework for GDB. I
> shouldn't need to write TCL for a test this simple, with a small testcase,
> and there are a lot of this sort of test that we could use.]
>
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer
>
> 2002-03-20 Daniel Jacobowitz <drow@mvista.com>
>
> * gdb.base/complex.c: New file.
> * gdb.base/complex.exp: New file.
>
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.c Wed Mar 20 19:51:21 2002
@@ -0,0 +1,49 @@
+/* Test taken from GCC. Verify that we can print a structure containing
+ a complex number. */
+
+typedef __complex__ float cf;
+struct x { char c; cf f; } __attribute__ ((__packed__));
+struct unpacked_x { char c; cf f; };
+extern void f4 (struct unpacked_x*);
+extern void f3 (void);
+extern void f2 (struct x*);
+extern void f1 (void);
+int
+main (void)
+{
+ f1 ();
+ f3 ();
+ exit (0);
+}
+
+void
+f1 (void)
+{
+ struct x s;
+ s.f = 1;
+ s.c = 42;
+ f2 (&s);
+}
+
+void
+f2 (struct x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
+
+void
+f3 (void)
+{
+ struct unpacked_x s;
+ s.f = 1;
+ s.c = 42;
+ f4 (&s);
+}
+
+void
+f4 (struct unpacked_x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.exp Wed Mar 20 19:50:45 2002
@@ -0,0 +1,56 @@
+# Copyright 2002 Free Software Foundation, Inc.
+
+# 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.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set bug_id 0
+
+set testfile complex
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+set options debug
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
+ # No support for __complex__, presumably.
+ unsupported "print complex packed value in C"
+ unsupported "print complex value in C"
+ return 0
+}
+
+# Start with a fresh gdb.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+if [runto f2] then {
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex packed value in C"
+}
+
+if [runto f4] then {
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex value in C"
+
+}
+
+return 0
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFA/testsuite] Complex numbers in C
2002-03-20 16:36 [RFA/testsuite] Complex numbers in C Daniel Jacobowitz
2002-03-20 16:51 ` Daniel Jacobowitz
@ 2002-04-14 17:35 ` Andrew Cagney
1 sibling, 0 replies; 4+ messages in thread
From: Andrew Cagney @ 2002-04-14 17:35 UTC (permalink / raw)
To: Daniel Jacobowitz, Fernando Nasser; +Cc: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 293 bytes --]
FYI,
Andrew
PS:
> +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
> + # No support for __complex__, presumably.
> + unsupported "print complex value in C"
> + return 0
> +}
Should that be a feature test - like stdio and the like?
Andrew
[-- Attachment #2: mailbox-message://ac131313@movemail/fsf/gdb/patches/sep#1800848 --]
[-- Type: message/rfc822, Size: 5090 bytes --]
From: Daniel Jacobowitz <drow@mvista.com>
To: gdb-patches@sources.redhat.com
Subject: [RFA/testsuite] Complex numbers in C
Date: Wed, 20 Mar 2002 19:36:44 -0500
Message-ID: <20020320193644.A21454@nevyn.them.org>
Here's a test for the bug I just fixed. It's got one caveat: I could not,
no matter how I searched, find a way to make DejaGNU be quiet if a test
fails to compile. This adds one line of gcc error message to the testsuite
output if the test didn't build (non-GCC-and-non-C99 compiler will do it,
probably).
Other caveat was that I don't remember if we agreed to use unsupported in
this case or not.
[As a side note, I'm trying to design a gcc.dg-like framework for GDB. I
shouldn't need to write TCL for a test this simple, with a small testcase,
and there are a lot of this sort of test that we could use.]
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
2002-03-20 Daniel Jacobowitz <drow@mvista.com>
* gdb.base/complex.c: New file.
* gdb.base/complex.exp: New file.
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.c Wed Mar 20 19:30:16 2002
@@ -0,0 +1,29 @@
+/* Test taken from GCC. Verify that we can print a structure containing
+ a complex number. */
+
+typedef __complex__ float cf;
+struct x { char c; cf f; } __attribute__ ((__packed__));
+extern void f2 (struct x*);
+extern void f1 (void);
+int
+main (void)
+{
+ f1 ();
+ exit (0);
+}
+
+void
+f1 (void)
+{
+ struct x s;
+ s.f = 1;
+ s.c = 42;
+ f2 (&s);
+}
+
+void
+f2 (struct x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
--- /dev/null Wed Dec 31 19:00:00 1969
+++ gdb/testsuite/gdb.base/complex.exp Wed Mar 20 19:32:32 2002
@@ -0,0 +1,49 @@
+# Copyright 2002 Free Software Foundation, Inc.
+
+# 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.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set bug_id 0
+
+set testfile complex
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+set options debug
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
+ # No support for __complex__, presumably.
+ unsupported "print complex value in C"
+ return 0
+}
+
+# Start with a fresh gdb.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+if [runto f2] then {
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex value in C"
+}
+
+return 0
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFA/testsuite] Complex numbers in C
@ 2002-03-20 17:42 Michael Elizabeth Chastain
0 siblings, 0 replies; 4+ messages in thread
From: Michael Elizabeth Chastain @ 2002-03-20 17:42 UTC (permalink / raw)
To: drow, gdb-patches
Daniel Jacobowitz writes:
> I could not, no matter how I searched, find a way to make DejaGNU be
> quiet if a test fails to compile.
One of the tests in gdb.threads has the same issue: it tries to link
with several different thread libraries so there is noise in the output
files from the unsuccessful links.
It's never bothered me and my analysis scripts do not even see it.
(they start off with /^[[::upper::]]: / basically). So it's okay
with me to have noise like that.
Michael C
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-04-15 0:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-20 16:36 [RFA/testsuite] Complex numbers in C Daniel Jacobowitz
2002-03-20 16:51 ` Daniel Jacobowitz
2002-04-14 17:35 ` Andrew Cagney
2002-03-20 17:42 Michael Elizabeth Chastain
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox