From 97388b2309826ad2a77330d4856cd1e4708d321e Mon Sep 17 00:00:00 2001 From: ngie Date: Fri, 4 Dec 2015 09:32:03 +0000 Subject: [PATCH] MFC r290913,r291181: r290913: Port contrib/netbsd-tests/kernel/t_mqueue.c to FreeBSD - Add missing headers - Ensure mqueuefs is loaded - Make sure the mqueuefs path is absolute and relative to / - Cast the result of mq_open returning -1 to (mqd_t) to mute a compiler warning Sponsored by: EMC / Isilon Storage Division r291181: Integrate contrib/netbsd-tests/kernel/t_mqueue into the FreeBSD test suite as tests/sys/kern/mqueue_test git-svn-id: svn://svn.freebsd.org/base/stable/10@291764 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- contrib/netbsd-tests/kernel/t_mqueue.c | 19 +++++++++++++++++++ tests/sys/kern/Makefile | 5 +++++ 2 files changed, 24 insertions(+) diff --git a/contrib/netbsd-tests/kernel/t_mqueue.c b/contrib/netbsd-tests/kernel/t_mqueue.c index 2a0310116..aa98d91ea 100644 --- a/contrib/netbsd-tests/kernel/t_mqueue.c +++ b/contrib/netbsd-tests/kernel/t_mqueue.c @@ -6,6 +6,13 @@ * This file is in the Public Domain. */ +#ifdef __FreeBSD__ +#include +#include + +#include "freebsd_test_suite/macros.h" +#endif + #include #include @@ -111,16 +118,28 @@ ATF_TC_BODY(mqueue, tc) char template[32]; char mq_name[64]; +#ifdef __FreeBSD__ + ATF_REQUIRE_KERNEL_MODULE("mqueuefs"); +#endif + strlcpy(template, "./t_mqueue.XXXXXX", sizeof(template)); tmpdir = mkdtemp(template); ATF_REQUIRE_MSG(tmpdir != NULL, "mkdtemp failed: %d", errno); +#ifdef __FreeBSD__ + snprintf(mq_name, sizeof(mq_name), "/t_mqueue"); +#else snprintf(mq_name, sizeof(mq_name), "%s/mq", tmpdir); +#endif mqd_t mqfd; mqfd = mq_open(mq_name, O_RDWR | O_CREAT, S_IRUSR | S_IRWXG | S_IROTH, NULL); +#ifdef __FreeBSD__ + ATF_REQUIRE_MSG(mqfd != (mqd_t)-1, "mq_open failed: %d", errno); +#else ATF_REQUIRE_MSG(mqfd != -1, "mq_open failed: %d", errno); +#endif send_msgs(mqfd); receive_msgs(mqfd); diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 5328b996e..03b4a5c8e 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -15,6 +15,11 @@ LDADD.ptrace_test+= -lpthread LDADD.unix_seqpacket_test+= -lpthread NETBSD_ATF_TESTS_C+= lockf_test +NETBSD_ATF_TESTS_C+= mqueue_test + +CFLAGS.mqueue_test+= -I${SRCTOP}/tests +DPADD.mqueue_test+= ${LIBRT} +LDADD.mqueue_test+= -lrt WARNS?= 5 -- 2.45.0