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);
}