gdb/testsuite/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 20 Jul 2010 22:06:59 +0000 (22:06 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 20 Jul 2010 22:06:59 +0000 (22:06 +0000)
* gdb.base/charset-malloc.c: New file.
* gdb.base/charset.c (malloc_stub): New prototype.
(main): Call it instead of malloc itself.
* gdb.base/charset.exp: Use only prepare_for_testing.
(binfile): Remove the variable.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/charset-malloc.c [new file with mode: 0644]
gdb/testsuite/gdb.base/charset.c
gdb/testsuite/gdb.base/charset.exp

index e821f0e..5beecdf 100644 (file)
@@ -1,3 +1,13 @@
+2010-07-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+           Ulrich Weigand  <uweigand@de.ibm.com>
+           Tom Tromey  <tromey@redhat.com>
+
+       * gdb.base/charset-malloc.c: New file.
+       * gdb.base/charset.c (malloc_stub): New prototype.
+       (main): Call it instead of malloc itself.
+       * gdb.base/charset.exp: Use only prepare_for_testing.
+       (binfile): Remove the variable.
+
 2010-07-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        Make core files the process_stratum.
diff --git a/gdb/testsuite/gdb.base/charset-malloc.c b/gdb/testsuite/gdb.base/charset-malloc.c
new file mode 100644 (file)
index 0000000..450b7c8
--- /dev/null
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2010 Free Software Foundation, Inc.
+
+   Contributed by Red Hat, originally written by Jim Blandy.
+
+   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/>.
+
+   Please email any bugs, comments, and/or additions to this file to:
+   bug-gdb@gnu.org  */
+
+/* charset.c file cannot use a system include file as it has its own wchar_t
+   definition which would be in a conflict.  Use this separate compilation
+   unit.  */
+
+#include <stdlib.h>
+
+void
+malloc_stub (void)
+{
+  /* charset.exp wants to allocate memory for constants.  So make sure malloc
+     gets linked into the program.  */
+  malloc (1);
+}
index a7d64f2..5dafc90 100644 (file)
@@ -114,6 +114,8 @@ init_utf32 ()
     utf_32_string[i] = iso_8859_1_string[i] & 0xff;
 }
 
+extern void malloc_stub (void);
+
 int main ()
 {
 #ifdef usestubs
@@ -121,9 +123,7 @@ int main ()
   breakpoint();
 #endif
 
-  /* charset.exp wants to allocate memory for constants.  So make sure malloc
-     gets linked into the program.  */
-  malloc (1);
+  malloc_stub ();
 
   /* Initialize ascii_string.  */
   init_string (ascii_string,
index 58418be..0639117 100644 (file)
@@ -27,18 +27,11 @@ if $tracelevel then {
 
 set testfile "charset"
 set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
-    untested "couldn't compile ${srcdir}/${subdir}/${srcfile}"
+set srcmallocfile ${testfile}-malloc.c
+if { [prepare_for_testing ${testfile}.exp ${testfile} [list $srcfile $srcmallocfile]] } {
     return -1
 }
 
-# Start with a fresh gdb.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
 # Parse the output from a `show charset' command.  Return the host
 # and target charset as a two-element list.
 proc parse_show_charset_output {testname} {