Module Name: src Committed By: pooka Date: Fri Aug 27 12:42:21 UTC 2010
Modified Files: src/tests/fs/puffs: t_fuzz.c Log Message: poll the putter fd instead of doing a blocking read. Long story short: we don't have to wait for the fs syncer to run for the close to succeed. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/tests/fs/puffs/t_fuzz.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/fs/puffs/t_fuzz.c diff -u src/tests/fs/puffs/t_fuzz.c:1.3 src/tests/fs/puffs/t_fuzz.c:1.4 --- src/tests/fs/puffs/t_fuzz.c:1.3 Mon Aug 16 10:46:20 2010 +++ src/tests/fs/puffs/t_fuzz.c Fri Aug 27 12:42:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: t_fuzz.c,v 1.3 2010/08/16 10:46:20 pooka Exp $ */ +/* $NetBSD: t_fuzz.c,v 1.4 2010/08/27 12:42:21 pooka Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -38,6 +38,7 @@ #include <sys/types.h> #include <sys/mount.h> +#include <sys/poll.h> #include <assert.h> #include <atf-c.h> @@ -167,6 +168,7 @@ { char buf[PUFFS_MSG_MAXSIZE]; struct puffs_req *preq = (void *)buf; + struct pollfd pfd; ssize_t n; pthread_mutex_lock(&damtx); @@ -176,6 +178,13 @@ while (dafd != -1) { pthread_mutex_unlock(&damtx); + pfd.fd = dafd; + pfd.events = POLLIN; + pfd.revents = 0; + if (rump_sys_poll(&pfd, 1, 10) == 0) { + pthread_mutex_lock(&damtx); + continue; + } n = rump_sys_read(dafd, buf, sizeof(buf)); if (n <= 0) { pthread_mutex_lock(&damtx); @@ -204,11 +213,12 @@ srandom(seed); printf("test seeded RNG with %lu\n", seed); + rump_init(); + pthread_mutex_init(&damtx, NULL); pthread_cond_init(&dacv, NULL); pthread_create(&pt, NULL, respondthread, NULL); - rump_init(); ATF_REQUIRE(rump_sys_mkdir("/mnt", 0777) == 0); for (i = 0; i < ITERATIONS; i++) {