]> granicus.if.org Git - strace/commitdiff
tests: add mq.test
authorElvira Khabirova <lineprinter0@gmail.com>
Wed, 19 Aug 2015 02:28:48 +0000 (05:28 +0300)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 28 Aug 2015 08:46:23 +0000 (08:46 +0000)
* tests/mq.c: New file.
* tests/mq.expected: Likewise.
* tests/mq.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add mq.
(TESTS): Add mq.test.
(EXTRA_DIST): Add mq.expected.
(mq_LDADD): Add -lrt.
* tests/.gitignore: Add mq.

tests/.gitignore
tests/Makefile.am
tests/mq.c [new file with mode: 0644]
tests/mq.expected [new file with mode: 0644]
tests/mq.test [new file with mode: 0755]

index b48e870cc01a0c3f4d53180c2861d0139c1b7c77..ba0bd3a53b2918ce96e86896c743f0e5c6b4b200 100644 (file)
@@ -18,6 +18,7 @@ memfd_create
 mmap
 mmap64
 mmsg
+mq
 net-accept-connect
 netlink_inet_diag
 netlink_unix_diag
index bb8e9bc80c19112ada706fc144866e55e1d22e8f..678649871ad20f46806eacc51a0e4f5ea4d02cc9 100644 (file)
@@ -31,6 +31,7 @@ check_PROGRAMS = \
        mmap \
        mmap64 \
        mmsg \
+       mq \
        net-accept-connect \
        netlink_inet_diag \
        netlink_unix_diag \
@@ -73,6 +74,7 @@ check_PROGRAMS = \
 
 filter_unavailable_LDADD = -lpthread
 mmap64_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
+mq_LDADD = -lrt
 pc_LDADD = $(dl_LIBS)
 stat_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
 statfs_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
@@ -101,6 +103,7 @@ TESTS = \
        ipc_msg.test \
        ipc_shm.test \
        ipc_sem.test \
+       mq.test \
        readlink.test \
        readlinkat.test \
        rt_sigqueueinfo.test \
@@ -173,6 +176,7 @@ EXTRA_DIST = init.sh run.sh match.awk \
             ipc.sh \
             memfd_create.expected \
             mmsg.expected \
+            mq.expected \
             net.expected \
             net-fd.expected \
             net-yy-accept.awk \
diff --git a/tests/mq.c b/tests/mq.c
new file mode 100644 (file)
index 0000000..c6251b6
--- /dev/null
@@ -0,0 +1,34 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_MQUEUE_H
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <mqueue.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main (void)
+{
+       struct mq_attr attr;
+       (void) close(0);
+       if (mq_open("/strace-mq.test", O_CREAT, S_IRWXU, 0) ||
+               mq_getattr(0, &attr) ||
+               mq_setattr(0, &attr, 0) ||
+               mq_unlink("/strace-mq.test"))
+               return 77;
+       return 0;
+}
+
+#else
+
+int
+main(void)
+{
+       return 77;
+}
+
+#endif
diff --git a/tests/mq.expected b/tests/mq.expected
new file mode 100644 (file)
index 0000000..40b8eee
--- /dev/null
@@ -0,0 +1,4 @@
+mq_open\("strace-mq.test", O_RDONLY\|O_CREAT, 0700, NULL\) += 0
+mq_getsetattr\(0, NULL, \{mq_flags=O_RDONLY, mq_maxmsg=[1-9][0-9]*, mq_msgsize=[1-9][0-9]*, mq_curmsg=0\}\) += 0
+mq_getsetattr\(0, \{mq_flags=O_RDONLY, mq_maxmsg=[1-9][0-9]*, mq_msgsize=[1-9][0-9]*, mq_curmsg=0\}, NULL\) += 0
+mq_unlink\("strace-mq.test"\) += 0
diff --git a/tests/mq.test b/tests/mq.test
new file mode 100755 (executable)
index 0000000..e900591
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Check mq_open, mq_getsetattr, mq_unlink syscalls decoding.
+
+. "${srcdir=.}/init.sh"
+
+run_prog
+run_strace -v -e mq_getsetattr,mq_open,mq_unlink $args
+match_grep
+
+exit 0