aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2015-04-11 03:43:43 +0000
committerEnji Cooper <ngie@FreeBSD.org>2015-04-11 03:43:43 +0000
commit1e0d20633776de016f35022ecd48213941cd1cc3 (patch)
tree7674df20783fd85a6bdc3971f79d72dc1090b173 /tools
parent38a7f1e44609e930724666fb3bb18de23666d358 (diff)
downloadsrc-1e0d20633776de016f35022ecd48213941cd1cc3.tar.gz
src-1e0d20633776de016f35022ecd48213941cd1cc3.zip
- Garbage collect argc/argv; bump WARNS to 6
- Make the socket path random and move it out of /tmp as that's outside ATF's prescribed path MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=281400
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/sockets/unix_close_race/Makefile2
-rw-r--r--tools/regression/sockets/unix_close_race/unix_close_race.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/tools/regression/sockets/unix_close_race/Makefile b/tools/regression/sockets/unix_close_race/Makefile
index 8b9f7928e3df..370adc469896 100644
--- a/tools/regression/sockets/unix_close_race/Makefile
+++ b/tools/regression/sockets/unix_close_race/Makefile
@@ -2,6 +2,6 @@
PROG= unix_close_race
MAN=
-WARNS?= 3
+WARNS?= 6
.include <bsd.prog.mk>
diff --git a/tools/regression/sockets/unix_close_race/unix_close_race.c b/tools/regression/sockets/unix_close_race/unix_close_race.c
index 97783e332e5e..89c1b20d62dc 100644
--- a/tools/regression/sockets/unix_close_race/unix_close_race.c
+++ b/tools/regression/sockets/unix_close_race/unix_close_race.c
@@ -54,12 +54,13 @@
#include <unistd.h>
#include <err.h>
-#define UNIXSTR_PATH "/tmp/mytest.socket"
+static char socket_path[] = "tmp.XXXXXXXX";
+
#define USLEEP 100
#define LOOPS 100000
int
-main(int argc, char **argv)
+main(void)
{
struct sockaddr_un servaddr;
int listenfd, connfd, pid;
@@ -74,16 +75,20 @@ main(int argc, char **argv)
if (ncpus < 2)
warnx("SMP not present, test may be unable to trigger race");
+ if (mkstemp(socket_path) == -1)
+ err(1, "mkstemp failed");
+ unlink(socket_path);
+
/*
* Create a UNIX domain socket that the child will repeatedly
* accept() from, and that the parent will repeatedly connect() to.
*/
if ((listenfd = socket(AF_LOCAL, SOCK_STREAM, 0)) < 0)
err(1, "parent: socket error");
- (void)unlink(UNIXSTR_PATH);
+ (void)unlink(socket_path);
bzero(&servaddr, sizeof(servaddr));
servaddr.sun_family = AF_LOCAL;
- strcpy(servaddr.sun_path, UNIXSTR_PATH);
+ strcpy(servaddr.sun_path, socket_path);
if (bind(listenfd, (struct sockaddr *) &servaddr,
sizeof(servaddr)) < 0)
err(1, "parent: bind error");
@@ -102,7 +107,7 @@ main(int argc, char **argv)
sleep(1);
bzero(&servaddr, sizeof(servaddr));
servaddr.sun_family = AF_LOCAL;
- strcpy(servaddr.sun_path, UNIXSTR_PATH);
+ strcpy(servaddr.sun_path, socket_path);
for (counter = 0; counter < LOOPS; counter++) {
if ((connfd = socket(AF_LOCAL, SOCK_STREAM, 0)) < 0) {
(void)kill(pid, SIGTERM);