about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-02-23 03:35:39 +0000
committerRoland McGrath <roland@gnu.org>2003-02-23 03:35:39 +0000
commitdd1747485cf1cacc65523aedf0e365333df1f3f5 (patch)
treef36285dd412b0728fb407a76c2532ba5a3b61211
parent445546a1c9e085fee574cb3e2830a9f1bb2bc679 (diff)
downloadglibc-dd1747485cf1cacc65523aedf0e365333df1f3f5.tar.gz
glibc-dd1747485cf1cacc65523aedf0e365333df1f3f5.tar.xz
glibc-dd1747485cf1cacc65523aedf0e365333df1f3f5.zip
2003-02-22 Roland McGrath <roland@redhat.com>
	* resolv/tst-leaks.c: New file by Daniel Jacobowitz <drow@mvista.com>.
	* resolv/Makefile (tests): Add tst-leaks.
	($(objpfx)tst-leaks): Depend on $(objpfx)libresolv.so.
	(tst-leaks-ENV): New variable.
	($(objpfx)mtrace-tst-leaks): New target.
	(tests): Depend on it.
-rw-r--r--resolv/Makefile13
-rw-r--r--resolv/tst-leaks.c43
2 files changed, 54 insertions, 2 deletions
diff --git a/resolv/Makefile b/resolv/Makefile
index c3b66052de..44c1b342ce 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -1,4 +1,5 @@
-# Copyright (C) 1994,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+# Copyright (C) 1994,1995,1996,1997,1998,1999,2000,2001,2003
+#	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -31,7 +32,7 @@ distribute := ../conf/portability.h mapv4v6addr.h mapv4v6hostent.h \
 routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
 	    res_hconf res_libc res-state
 
-tests = tst-aton
+tests = tst-aton tst-leaks
 
 include ../Makeconfig
 
@@ -87,3 +88,11 @@ $(objpfx)libanl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \
 		    $(shared-thread-library)
 
 $(objpfx)ga_test: $(objpfx)libanl.so $(shared-thread-library)
+
+$(objpfx)tst-leaks: $(objpfx)libresolv.so
+tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
+$(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
+ifneq (no,$(PERL))
+tests: $(objpfx)mtrace-tst-leaks
+endif
diff --git a/resolv/tst-leaks.c b/resolv/tst-leaks.c
new file mode 100644
index 0000000000..0a94514645
--- /dev/null
+++ b/resolv/tst-leaks.c
@@ -0,0 +1,43 @@
+/* Tests for res_query in libresolv
+   Copyright (C) 2003 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <mcheck.h>
+
+/* Prototype for our test function.  */
+extern int do_test (int argc, char *argv[]);
+
+/* This defines the `main' function and some more.  */
+#include <test-skeleton.c>
+
+int
+do_test (int argc, char *argv[])
+{
+  unsigned char buf[256];
+
+  mtrace();
+
+  /* This will allocate some memory, which should be automatically
+     freed at exit.  */
+  res_query ("1.0.0.127.in-addr.arpa.", C_ANY, T_ANY, buf, 256);
+
+  return 0;
+}