FreeBSD regtest: fix "filter_fdleak is missing in dist_noinst_SCRIPTS"
[valgrind.git] / none / tests / socket_close.c
blob59d70c0009265ec5b3065a292d1962af6e93d709
1 #define _GNU_SOURCE
2 #include <unistd.h>
3 #include <stdio.h>
4 #include <sys/socket.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <sys/un.h>
8 #include "fdleak.h"
10 const char *SPATH = "/tmp/vgtest-foofrob";
11 int socket_fd;
13 void open_socket()
15 unlink (SPATH); /* Make sure socket path doesn't exist yet. */
17 socket_fd = socket(AF_UNIX, SOCK_STREAM, 0);
18 fprintf (stderr, "Open socket %d\n", socket_fd);
19 struct sockaddr_un my_addr;
21 memset(&my_addr, 0, sizeof(my_addr));
22 my_addr.sun_family = AF_UNIX;
23 strncpy(my_addr.sun_path, SPATH, sizeof(my_addr.sun_path) - 1);
24 bind(socket_fd, (struct sockaddr *) &my_addr, sizeof(my_addr));
27 int main ()
29 CLOSE_INHERITED_FDS;
31 open_socket();
33 if (socket_fd != -1)
35 fprintf(stderr, "close socket_fd %d\n", socket_fd);
36 close (socket_fd);
39 fprintf (stderr, "and close the socket again %d\n", socket_fd);
40 close (socket_fd);
42 return 0;