]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Make the fdleak regression tests less system dependent.
authorBart Van Assche <bvanassche@acm.org>
Tue, 27 May 2008 12:33:29 +0000 (12:33 +0000)
committerBart Van Assche <bvanassche@acm.org>
Tue, 27 May 2008 12:33:29 +0000 (12:33 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8133

none/tests/fdleak.h [new file with mode: 0644]
none/tests/fdleak_cmsg.c
none/tests/fdleak_creat.c
none/tests/fdleak_dup.c
none/tests/fdleak_dup2.c
none/tests/fdleak_fcntl.c
none/tests/fdleak_ipv4.c
none/tests/fdleak_open.c
none/tests/fdleak_pipe.c
none/tests/fdleak_socketpair.c

diff --git a/none/tests/fdleak.h b/none/tests/fdleak.h
new file mode 100644 (file)
index 0000000..bbe9491
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef _FDLEAK_H_
+#define _FDLEAK_H_
+
+/*
+ * The macro below closes file descriptors inherited from the process
+ * that forked the current process. Close these file descriptors right
+ * after the start of main() in order to get consistent results across
+ * different releases. Known behavior:
+ * - Fedora Core 1's Perl opens /dev/pts/2 as fd 10.
+ * - For Ubuntu 8.04, see also
+ *   https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/235184
+ */
+#define CLOSE_INHERITED_FDS { int i; for (i = 3; i < 64; i++) close(i); }
+
+#endif /* _FDLEAK_H_ */
index d376bf4f9e5f7161f54846d86a8bb669245d0247..3c7db64cff152e59fa2ae32ab58e1861586c353c 100644 (file)
@@ -27,7 +27,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <errno.h>
-
+#include "fdleak.h"
 
 char filea[24];
 char fileb[24];
@@ -179,12 +179,12 @@ main (int argc, char **argv)
 {
    int pid, status;
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    pid = getpid();
    sprintf(filea, "/tmp/data1.%d", pid);
index 5ff356b48e28684773f0efb979c96754f0eb8868..9d1221620586c0891ba1874b529c03dbdc0c9e24 100644 (file)
@@ -1,18 +1,18 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <fcntl.h>
-
+#include "fdleak.h"
 int
 main (int argc, char **argv)
 {
    char filename[24];
    
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    sprintf(filename, "/tmp/file.%d\n", getpid());
    creat(filename, 0);
index a0b9b81f347abdeba7a5dc81ba8a96fa68ffe4e7..5fbf41a9558f25c9cadb254d8e6c4159c182d04c 100644 (file)
@@ -1,17 +1,17 @@
 #include <unistd.h>
 #include <fcntl.h>
-
+#include "fdleak.h"
 int
 main (int argc, char **argv)
 {
    int s;
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    s = open("/dev/null", O_RDONLY);
    dup(s);
index 14c59f4ec5efa42c4608b0115ada02fbe79cadeb..41b770cc75cb10d7c92b5202040899ff12a8c495 100644 (file)
@@ -1,18 +1,18 @@
 #include <unistd.h>
 #include <fcntl.h>
-
+#include "fdleak.h"
 int
 main (int argc, char **argv)
 {
    int s1;
    int s2;
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    s1 = open("/dev/null", O_RDONLY);
    s2 = open("/dev/null", O_RDONLY);
index 0fee1db1efcf6fe7e1c1a43871a55cefab8c1974..0a1f52d74af839c3ea9fbd60c17edf560dced14e 100644 (file)
@@ -1,18 +1,18 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <fcntl.h>
-
+#include "fdleak.h"
 int
 main (int argc, char **argv)
 {
    int s1;
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    s1 = open("/dev/null", O_RDONLY);
    if(fcntl(s1, F_DUPFD, s1) == -1) perror("fcntl");
index b450dabcb3191f07ed3d5cded652833e9eddacf6..cdc550dfb746a34954a535c2c8b019e114a0a63e 100644 (file)
@@ -8,7 +8,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
-
+#include "fdleak.h"
 void
 server ()
 {
@@ -89,12 +89,12 @@ main (int argc, char **argv)
 {
    int pid, status;
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    if((pid = fork()) == 0) {
       server();
index bf9dc395e6f7fa3a4c6fb894a6862e2ad69b15e8..c09979886df54af27a23b08ba64a6e6d2b0c4e7c 100644 (file)
@@ -1,14 +1,14 @@
 #include <fcntl.h>
 #include <unistd.h>
+#include "fdleak.h"
+
 int
 main (int argc, char **argv)
 {
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+   CLOSE_INHERITED_FDS;
 
    open("/dev/null", O_RDONLY);
    return 0;
index 6c2d566d18a553c7b83815440c2d8b018a5155f2..870ba9d3a417b9a266ecffac1fd7924a82f5b1c5 100644 (file)
@@ -1,16 +1,16 @@
 #include <unistd.h>
-
+#include "fdleak.h"
 int
 main (int argc, char **argv)
 {
    int fds[2];
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);
+
+
+
+
+   CLOSE_INHERITED_FDS;
 
    pipe(fds);
    return 0;
index 9c71cd471763ecb1b3d0802ace7e52d4c5d632c9..c2524eef2b157b90e43ae1a7c171a420d9b79945 100644 (file)
@@ -1,16 +1,16 @@
 #include <sys/socket.h>
 #include <unistd.h>
+#include "fdleak.h"
+
 int
 main (int argc, char **argv)
 {
    int fds[2];
 
-   /*
-    * Fedora Core 1's Perl opens /dev/pts/2 as fd 10.  Let's close it
-    * now to get consistent results across different releases.
-    */
 
-   close(10);  close(4);
+
+
+   CLOSE_INHERITED_FDS;
 
    socketpair(AF_UNIX, SOCK_STREAM, PF_UNIX, fds);
    return 0;