Module Name:    src
Committed By:   rmind
Date:           Sun Jul 19 02:31:20 UTC 2009

Modified Files:
        src/regress/sys/kern/mqueue: Makefile mq_prio_test.c

Log Message:
Improve mqueue regression test.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/regress/sys/kern/mqueue/Makefile \
    src/regress/sys/kern/mqueue/mq_prio_test.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/regress/sys/kern/mqueue/Makefile
diff -u src/regress/sys/kern/mqueue/Makefile:1.1 src/regress/sys/kern/mqueue/Makefile:1.2
--- src/regress/sys/kern/mqueue/Makefile:1.1	Mon Jul 13 02:55:42 2009
+++ src/regress/sys/kern/mqueue/Makefile	Sun Jul 19 02:31:19 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.1 2009/07/13 02:55:42 rmind Exp $
+#	$NetBSD: Makefile,v 1.2 2009/07/19 02:31:19 rmind Exp $
 #
 PROG=		mq_prio_test
 NOMAN=		# defined
@@ -6,7 +6,7 @@
 LDADD=		-lrt
 
 regress:
-	@/sbin/sysctl kern.mqueue.mq_prio_max=33
+	@/sbin/sysctl -w kern.mqueue.mq_prio_max=33
 	@if ./$(PROG); then \
 		echo "PASSED"; \
 	else \
Index: src/regress/sys/kern/mqueue/mq_prio_test.c
diff -u src/regress/sys/kern/mqueue/mq_prio_test.c:1.1 src/regress/sys/kern/mqueue/mq_prio_test.c:1.2
--- src/regress/sys/kern/mqueue/mq_prio_test.c:1.1	Mon Jul 13 02:55:42 2009
+++ src/regress/sys/kern/mqueue/mq_prio_test.c	Sun Jul 19 02:31:19 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: mq_prio_test.c,v 1.1 2009/07/13 02:55:42 rmind Exp $	*/
+/*	$NetBSD: mq_prio_test.c,v 1.2 2009/07/19 02:31:19 rmind Exp $	*/
 
 /*
  * Test for POSIX message queue priority handling.
@@ -28,7 +28,7 @@
 		err(EXIT_FAILURE, "mq_send 1");
 
 	msg[0] = 'b';
-	if (mq_send(mqfd, msg, sizeof(msg), 1 + MQ_PRIO_BOUNDARY) == -1)
+	if (mq_send(mqfd, msg, sizeof(msg), MQ_PRIO_BOUNDARY + 1) == -1)
 		err(EXIT_FAILURE, "mq_send 2");
 
 	msg[0] = 'c';
@@ -36,8 +36,16 @@
 		err(EXIT_FAILURE, "mq_send 3");
 
 	msg[0] = 'd';
-	if (mq_send(mqfd, msg, sizeof(msg), 1 + MQ_PRIO_BOUNDARY) == -1)
+	if (mq_send(mqfd, msg, sizeof(msg), MQ_PRIO_BOUNDARY - 1) == -1)
 		err(EXIT_FAILURE, "mq_send 4");
+
+	msg[0] = 'e';
+	if (mq_send(mqfd, msg, sizeof(msg), 0) == -1)
+		err(EXIT_FAILURE, "mq_send 5");
+
+	msg[0] = 'f';
+	if (mq_send(mqfd, msg, sizeof(msg), MQ_PRIO_BOUNDARY + 1) == -1)
+		err(EXIT_FAILURE, "mq_send 6");
 }
 
 static void
@@ -60,22 +68,32 @@
 	if (mq_receive(mqfd, m, len, &p) == -1) {
 		err(EXIT_FAILURE, "mq_receive 1");
 	}
-	assert(p == 32 && m[0] == 'b');
+	assert(p == (MQ_PRIO_BOUNDARY + 1) && m[0] == 'b');
 
 	if (mq_receive(mqfd, m, len, &p) == -1) {
 		err(EXIT_FAILURE, "mq_receive 2");
 	}
-	assert(p == 32 && m[0] == 'd');
+	assert(p == (MQ_PRIO_BOUNDARY + 1) && m[0] == 'f');
 
 	if (mq_receive(mqfd, m, len, &p) == -1) {
 		err(EXIT_FAILURE, "mq_receive 3");
 	}
-	assert(p == 31 && m[0] == 'a');
+	assert(p == MQ_PRIO_BOUNDARY && m[0] == 'a');
 
 	if (mq_receive(mqfd, m, len, &p) == -1) {
 		err(EXIT_FAILURE, "mq_receive 4");
 	}
-	assert(p == 31 && m[0] == 'c');
+	assert(p == MQ_PRIO_BOUNDARY && m[0] == 'c');
+
+	if (mq_receive(mqfd, m, len, &p) == -1) {
+		err(EXIT_FAILURE, "mq_receive 5");
+	}
+	assert(p == (MQ_PRIO_BOUNDARY - 1) && m[0] == 'd');
+
+	if (mq_receive(mqfd, m, len, &p) == -1) {
+		err(EXIT_FAILURE, "mq_receive 6");
+	}
+	assert(p == 0 && m[0] == 'e');
 
 	free(m);
 }

Reply via email to