PERFORCE change 164337 for review

Zhao Shuai zhaoshuai at FreeBSD.org
Sun Jun 14 13:08:30 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=164337

Change 164337 by zhaoshuai at zhaoshuai on 2009/06/14 13:08:02

	make the testing program easier to use

Affected files ...

.. //depot/projects/soc2009/fifo/fifo_test/functionality/reader1.c#3 edit
.. //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#4 edit
.. //depot/projects/soc2009/fifo/fifo_test/functionality/writer1.c#3 edit

Differences ...

==== //depot/projects/soc2009/fifo/fifo_test/functionality/reader1.c#3 (text+ko) ====

@@ -12,31 +12,39 @@
 #include <errno.h>
 #include "test.h"
 
+#define TEST_RDONLY 1
+#define TEST_RDWR   0
+#define TEST_NONBLOCK 0
+
 int main(int argc, char *argv[])
 {
 	int fd, n;
 	char buffer[BUF_SIZE];
 
+#if TEST_RDONLY
 	fd = open(FIFO_PATH, O_RDONLY);
-	/*
+#elif TEST_RDWR
 	fd = open(FIFO_PATH, O_RDWR);
+#elif TEST_NONBLOCK
 	fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK);
-	*/
+#endif
 	if (fd < 0) {
 		perror("open error");
 		return (1);
 	}
+#if TEST_NONBLOCK
 retry:
+#endif
 	while ((n = read(fd, buffer, BUF_SIZE)) > 0) {
 		printf("%s", buffer);
 		memset(buffer, 0, n);
 	}
-	/*
+#if TEST_NONBLOCK
 	if (n < 0 && errno == EAGAIN) {
 		sleep(1);
 		goto retry;
 	}
-	*/
+#endif
 
 	return 0;
 }

==== //depot/projects/soc2009/fifo/fifo_test/functionality/select.c#4 (text+ko) ====

@@ -15,6 +15,9 @@
 #include <sys/select.h>
 #include "test.h"
 
+/* set this value to 0 when testing write */
+#define TEST_READ 1
+
 int main()
 {
 	int fd, n, ret;
@@ -23,11 +26,11 @@
 
 	FD_ZERO(&rset);
 	FD_ZERO(&wset);
+#if TEST_READ
 	fd = open(FIFO_PATH, O_RDONLY | O_NONBLOCK);
-	/*
+#elif
 	fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK);
-	fd = open(FIFO_PATH, O_WRONLY); 
-	*/
+#endif
 	if (fd < 0) {
 		perror("open error");
 		return (1);
@@ -35,25 +38,28 @@
 	while (1) {
 		FD_SET(fd, &rset);
 		FD_SET(fd, &wset);
-
+#if TEST_READ
 		ret = select(fd+1, &rset, NULL, NULL, NULL);
-		/*
+#elif
 		ret = select(fd+1, NULL, &wset, NULL, NULL);
-		*/
+#endif
 		if (ret > 0) {
+#if TEST_READ
 			if (FD_ISSET(fd, &rset)) {
 				n = read(fd, buf, BUF_SIZE);
+				if (n <= 0)
+					return (0);
 				printf("%s", buf);
 				memset(buf, 0, n);
 			}
-			/*
+#elif
 			if (FD_ISSET(fd, &wset)) {
 				n = read(0, buf, BUF_SIZE);
 				if (n <= 0)
 					return (0);
 				write(fd, buf, n);
 			}
-			*/
+#endif
 		} else if (ret < 0) { /* select error */
 			perror("select error");
 			return (2);

==== //depot/projects/soc2009/fifo/fifo_test/functionality/writer1.c#3 (text+ko) ====

@@ -13,16 +13,22 @@
 #include <fcntl.h>
 #include "test.h"
 
+#define TEST_WRONLY 1
+#define TEST_RDWR   0
+#define TEST_NONBLOCK 0
+
 int main(int argc, char *argv[])
 {
 	int fd, n;
 	char buf[BUF_SIZE];
 	
+#if TEST_WRONLY
 	fd = open(FIFO_PATH, O_WRONLY);
-	/*
+#elif TEST_RDWR
 	fd = open(FIFO_PATH, O_RDWR);
+#elif TEST_NONBLOCK
 	fd = open(FIFO_PATH, O_WRONLY | O_NONBLOCK);
-	*/
+#endif
 	while ((n = read(0, buf, BUF_SIZE)) > 0)
 		write(fd, buf, n);
 


More information about the p4-projects mailing list