Index: head/etc/mtree/BSD.tests.dist =================================================================== --- head/etc/mtree/BSD.tests.dist (revision 282070) +++ head/etc/mtree/BSD.tests.dist (revision 282071) @@ -1,576 +1,578 @@ # $FreeBSD$ # # Please see the file src/etc/mtree/README before making changes to this file. # /set type=dir uname=root gname=wheel mode=0755 . bin cat .. chown .. date .. expr .. mv .. pax .. pkill .. sh builtins .. errors .. execution .. expansion .. parameters .. parser .. set-e .. .. sleep .. test .. .. cddl lib .. sbin .. usr.bin .. usr.sbin dtrace common aggs .. arithmetic .. arrays .. assocs .. begin .. bitfields .. buffering .. builtinvar .. cg .. clauses .. cpc .. decls .. drops .. dtraceUtil .. end .. enum .. error .. exit .. fbtprovider .. funcs .. grammar .. include .. inline .. io .. ip .. java_api .. json .. lexer .. llquantize .. mdb .. mib .. misc .. multiaggs .. offsetof .. operators .. pid .. plockstat .. pointers .. pragma .. predicates .. preprocessor .. print .. printa .. printf .. privs .. probes .. proc .. profile-n .. providers .. raise .. rates .. safety .. scalars .. sched .. scripting .. sdt .. sizeof .. speculation .. stability .. stack .. stackdepth .. stop .. strlen .. strtoll .. struct .. syscall .. sysevent .. tick-n .. trace .. tracemem .. translators .. typedef .. types .. uctf .. union .. usdt .. ustack .. vars .. version .. .. .. .. .. etc rc.d .. .. games .. gnu lib .. usr.bin diff .. .. .. lib atf libatf-c detail .. .. libatf-c++ detail .. .. test-programs .. .. libc c063 .. db .. gen execve .. posix_spawn .. .. hash data .. .. inet .. locale .. net getaddrinfo data .. .. .. regex data .. .. ssp .. stdio .. stdlib .. string .. sys .. time .. tls dso .. .. termios .. ttyio .. .. libcrypt .. libmp .. libnv .. libpam .. libproc .. librt .. libthr dlopen .. .. libutil .. msun .. .. libexec atf atf-check .. atf-sh .. .. rtld-elf .. .. sbin dhclient .. devd .. growfs .. ifconfig .. mdconfig .. .. secure lib .. libexec .. usr.bin .. usr.sbin .. .. share examples tests atf .. plain .. .. .. .. sys fifo .. file .. kern execve .. .. kqueue .. + mqueue + .. netinet .. opencrypto .. pjdfstest chflags .. chmod .. chown .. ftruncate .. granular .. link .. mkdir .. mkfifo .. mknod .. open .. rename .. rmdir .. symlink .. truncate .. unlink .. .. .. usr.bin apply .. basename .. bmake archives fmt_44bsd .. fmt_44bsd_mod .. fmt_oldbsd .. .. basic t0 .. t1 .. t2 .. t3 .. .. execution ellipsis .. empty .. joberr .. plus .. .. shell builtin .. meta .. path .. path_select .. replace .. select .. .. suffixes basic .. src_wild1 .. src_wild2 .. .. syntax directive-t0 .. enl .. funny-targets .. semi .. .. sysmk t0 2 1 .. .. mk .. .. t1 2 1 .. .. mk .. .. t2 2 1 .. .. mk .. .. .. variables modifier_M .. modifier_t .. opt_V .. t0 .. .. .. calendar .. cmp .. comm .. cut .. dirname .. file2c .. grep .. gzip .. join .. jot .. lastcomm .. m4 .. mkimg .. ncal .. opensm .. printf .. sed regress.multitest.out .. .. timeout .. tr .. truncate .. units .. uudecode .. uuencode .. xargs .. yacc yacc .. .. .. usr.sbin etcupdate .. newsyslog .. nmtree .. pw .. sa .. .. .. # vim: set expandtab ts=4 sw=4: Index: head/tests/sys/Makefile =================================================================== --- head/tests/sys/Makefile (revision 282070) +++ head/tests/sys/Makefile (revision 282071) @@ -1,17 +1,18 @@ # $FreeBSD$ .include TESTSDIR= ${TESTSBASE}/sys TESTS_SUBDIRS+= fifo TESTS_SUBDIRS+= file TESTS_SUBDIRS+= kern TESTS_SUBDIRS+= kqueue +TESTS_SUBDIRS+= mqueue TESTS_SUBDIRS+= netinet TESTS_SUBDIRS+= opencrypto # Items not integrated into kyua runs by default SUBDIR+= pjdfstest .include Index: head/tests/sys/mqueue/mqueue_test.sh =================================================================== --- head/tests/sys/mqueue/mqueue_test.sh (nonexistent) +++ head/tests/sys/mqueue/mqueue_test.sh (revision 282071) @@ -0,0 +1,54 @@ + +mqtest1_head() +{ + : +} +mqtest1_body() +{ + atf_check -s exit:0 -x $(atf_get_srcdir)/mqtest1 +} + +mqtest2_head() +{ + : +} +mqtest2_body() +{ + atf_check -s exit:0 -x $(atf_get_srcdir)/mqtest2 +} + +mqtest3_head() +{ + : +} +mqtest3_body() +{ + atf_check -s exit:0 -x $(atf_get_srcdir)/mqtest3 +} + +mqtest4_head() +{ + : +} +mqtest4_body() +{ + atf_check -s exit:0 -x $(atf_get_srcdir)/mqtest4 +} + +mqtest5_head() +{ + : +} +mqtest5_body() +{ + atf_check -s exit:0 -x $(atf_get_srcdir)/mqtest5 +} + +atf_init_test_cases() +{ + atf_add_test_case mqtest1 + atf_add_test_case mqtest2 + atf_add_test_case mqtest3 + atf_add_test_case mqtest4 + atf_add_test_case mqtest5 +} Property changes on: head/tests/sys/mqueue/mqueue_test.sh ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/tests/sys/mqueue/Makefile =================================================================== --- head/tests/sys/mqueue/Makefile (nonexistent) +++ head/tests/sys/mqueue/Makefile (revision 282071) @@ -0,0 +1,20 @@ +# $FreeBSD$ + +TESTSDIR= ${TESTSBASE}/sys/mqueue + +ATF_TESTS_SH= mqueue_test + +BINDIR= ${TESTSDIR} + +PROGS+= mqtest1 +PROGS+= mqtest2 +PROGS+= mqtest3 +PROGS+= mqtest4 +PROGS+= mqtest5 + +LDADD+= -lrt +DPADD+= ${LIBRT} + +WARNS?= 6 + +.include Property changes on: head/tests/sys/mqueue/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tests/sys/mqueue/mqtest1.c =================================================================== --- head/tests/sys/mqueue/mqtest1.c (nonexistent) +++ head/tests/sys/mqueue/mqtest1.c (revision 282071) @@ -0,0 +1,53 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include + +#define MQNAME "/mytstqueue1" + +int +main(void) +{ + struct mq_attr attr, attr2; + struct sigevent sigev; + mqd_t mq; + int status; + + attr.mq_maxmsg = 2; + attr.mq_msgsize = 100; + mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); + if (mq == (mqd_t)-1) + err(1, "mq_open"); + status = mq_unlink(MQNAME); + if (status) + err(1, "mq_unlink"); + status = mq_getattr(mq, &attr2); + if (status) + err(1, "mq_getattr"); + if (attr.mq_maxmsg != attr2.mq_maxmsg) + err(1, "mq_maxmsg changed"); + if (attr.mq_msgsize != attr2.mq_msgsize) + err(1, "mq_msgsize changed"); + + sigev.sigev_notify = SIGEV_SIGNAL; + sigev.sigev_signo = SIGRTMIN; + status = mq_notify(mq, &sigev); + if (status) + err(1, "mq_notify"); + status = mq_notify(mq, &sigev); + if (status == 0) + err(1, "mq_notify 2"); + else if (errno != EBUSY) + err(1, "mq_notify 3"); + status = mq_notify(mq, NULL); + if (status) + err(1, "mq_notify 4"); + status = mq_close(mq); + if (status) + err(1, "mq_close"); + return (0); +} Property changes on: head/tests/sys/mqueue/mqtest1.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tests/sys/mqueue/mqtest2.c =================================================================== --- head/tests/sys/mqueue/mqtest2.c (nonexistent) +++ head/tests/sys/mqueue/mqtest2.c (revision 282071) @@ -0,0 +1,97 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MQNAME "/mytstqueue2" +#define LOOPS 1000 +#define PRIO 10 + +static void +alarmhandler(int sig __unused) +{ + write(1, "timeout\n", 8); + _exit(1); +} + +int +main(void) +{ + struct mq_attr attr; + mqd_t mq; + int status; + pid_t pid; + + mq_unlink(MQNAME); + + attr.mq_maxmsg = 5; + attr.mq_msgsize = 128; + mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); + if (mq == (mqd_t)-1) + err(1, "mq_open"); + status = mq_getattr(mq, &attr); + if (status) + err(1, "mq_getattr"); + pid = fork(); + if (pid == 0) { /* child */ + char *buf; + int j, i; + unsigned int prio; + + mq_close(mq); + + signal(SIGALRM, alarmhandler); + + mq = mq_open(MQNAME, O_RDWR); + if (mq == (mqd_t)-1) + err(1, "child: mq_open"); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + alarm(3); + status = mq_receive(mq, buf, attr.mq_msgsize, &prio); + if (status == -1) + err(2, "child: mq_receive"); + for (i = 0; i < attr.mq_msgsize; ++i) + if (buf[i] != i) + err(3, "child: message data corrupted"); + if (prio != PRIO) + err(4, "child: priority is incorrect: %d", + prio); + } + alarm(0); + free(buf); + mq_close(mq); + return (0); + } else if (pid == -1) { + err(1, "fork()"); + } else { + char *buf; + int i, j; + + signal(SIGALRM, alarmhandler); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + for (i = 0; i < attr.mq_msgsize; ++i) + buf[i] = i; + alarm(3); + status = mq_send(mq, buf, attr.mq_msgsize, PRIO); + if (status) + err(1, "mq_send"); + } + alarm(3); + wait(&status); + alarm(0); + } + status = mq_close(mq); + if (status) + err(1, "mq_close"); + mq_unlink(MQNAME); + return (0); +} Property changes on: head/tests/sys/mqueue/mqtest2.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tests/sys/mqueue/mqtest3.c =================================================================== --- head/tests/sys/mqueue/mqtest3.c (nonexistent) +++ head/tests/sys/mqueue/mqtest3.c (revision 282071) @@ -0,0 +1,112 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MQNAME "/mytstqueue3" +#define LOOPS 1000 +#define PRIO 10 + +static void +sighandler(int sig __unused) +{ + write(1, "timeout\n", 8); + _exit(1); +} + +int +main(void) +{ + fd_set set; + struct mq_attr attr; + int status; + mqd_t mq; + pid_t pid; + + mq_unlink(MQNAME); + + attr.mq_maxmsg = 5; + attr.mq_msgsize = 128; + mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); + if (mq == (mqd_t)-1) + err(1, "mq_open()"); + status = mq_getattr(mq, &attr); + if (status) + err(1, "mq_getattr()"); + + pid = fork(); + if (pid == 0) { /* child */ + char *buf; + int j, i; + unsigned int prio; + + mq_close(mq); + + signal(SIGALRM, sighandler); + + mq = mq_open(MQNAME, O_RDWR); + if (mq == (mqd_t)-1) + err(1, "child process: mq_open"); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + FD_ZERO(&set); + FD_SET(__mq_oshandle(mq), &set); + alarm(3); + status = select(__mq_oshandle(mq)+1, &set, NULL, NULL, NULL); + if (status != 1) + err(1, "child process: select()"); + status = mq_receive(mq, buf, attr.mq_msgsize, &prio); + if (status == -1) + err(2, "child process: mq_receive"); + for (i = 0; i < attr.mq_msgsize; ++i) + if (buf[i] != i) + err(3, "message data corrupted"); + if (prio != PRIO) + err(4, "priority is incorrect: %d", prio); + } + alarm(0); + free(buf); + mq_close(mq); + return (0); + } else if (pid == -1) { + err(1, "fork()"); + } else { + char *buf; + int i, j; + + signal(SIGALRM, sighandler); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + for (i = 0; i < attr.mq_msgsize; ++i) { + buf[i] = i; + } + alarm(3); + FD_ZERO(&set); + FD_SET(__mq_oshandle(mq), &set); + status = select(__mq_oshandle(mq)+1, NULL, &set, NULL, NULL); + if (status != 1) + err(1, "select()"); + status = mq_send(mq, buf, attr.mq_msgsize, PRIO); + if (status) { + kill(pid, SIGKILL); + err(2, "mq_send()"); + } + } + alarm(3); + wait(&status); + alarm(0); + } + status = mq_close(mq); + if (status) + err(1, "mq_close"); + mq_unlink(MQNAME); + return (0); +} Property changes on: head/tests/sys/mqueue/mqtest3.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tests/sys/mqueue/mqtest4.c =================================================================== --- head/tests/sys/mqueue/mqtest4.c (nonexistent) +++ head/tests/sys/mqueue/mqtest4.c (revision 282071) @@ -0,0 +1,116 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MQNAME "/mytstqueue4" +#define LOOPS 1000 +#define PRIO 10 + +static void +sighandler(int sig __unused) +{ + write(1, "timeout\n", 8); + _exit(1); +} + +int +main(void) +{ + struct kevent kev; + struct mq_attr attr; + mqd_t mq; + int kq, status; + pid_t pid; + + mq_unlink(MQNAME); + + attr.mq_maxmsg = 5; + attr.mq_msgsize = 128; + mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); + if (mq == (mqd_t) -1) + err(1, "mq_open()"); + status = mq_getattr(mq, &attr); + if (status) + err(1, "mq_getattr()"); + pid = fork(); + if (pid == 0) { /* child */ + char *buf; + int j, i; + unsigned int prio; + + mq_close(mq); + kq = kqueue(); + mq = mq_open(MQNAME, O_RDWR); + if (mq == (mqd_t)-1) + err(1, "child: mq_open"); + EV_SET(&kev, __mq_oshandle(mq), EVFILT_READ, EV_ADD, 0, 0, 0); + status = kevent(kq, &kev, 1, NULL, 0, NULL); + if (status == -1) + err(1, "child: kevent"); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + alarm(3); + status = kevent(kq, NULL, 0, &kev, 1, NULL); + if (status != 1) + err(1, "child: kevent 2"); + status = mq_receive(mq, buf, attr.mq_msgsize, &prio); + if (status == -1) + err(2, "child: mq_receive"); + for (i = 0; i < attr.mq_msgsize; ++i) + if (buf[i] != i) + err(3, "child: message data corrupted"); + if (prio != PRIO) + err(4, "child: priority is incorrect: %d", + prio); + } + alarm(0); + free(buf); + mq_close(mq); + return (0); + } else if (pid == -1) { + err(1, "fork()"); + } else { + char *buf; + int i, j; + + signal(SIGALRM, sighandler); + kq = kqueue(); + EV_SET(&kev, __mq_oshandle(mq), EVFILT_WRITE, EV_ADD, 0, 0, 0); + status = kevent(kq, &kev, 1, NULL, 0, NULL); + if (status == -1) + err(1, "kevent"); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + for (i = 0; i < attr.mq_msgsize; ++i) { + buf[i] = i; + } + alarm(3); + status = kevent(kq, NULL, 0, &kev, 1, NULL); + if (status != 1) + err(1, "child: kevent 2"); + status = mq_send(mq, buf, attr.mq_msgsize, PRIO); + if (status) { + err(2, "mq_send()"); + } + } + free(buf); + alarm(3); + wait(&status); + alarm(0); + } + status = mq_close(mq); + if (status) + err(1, "mq_close"); + mq_unlink(MQNAME); + return (0); +} Property changes on: head/tests/sys/mqueue/mqtest4.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tests/sys/mqueue/mqtest5.c =================================================================== --- head/tests/sys/mqueue/mqtest5.c (nonexistent) +++ head/tests/sys/mqueue/mqtest5.c (revision 282071) @@ -0,0 +1,124 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MQNAME "/mytstqueue5" +#define LOOPS 1000 +#define PRIO 10 + +static void +sighandler(int sig __unused) +{ + write(1, "timeout\n", 8); + _exit(1); +} + +int +main(void) +{ + int status; + struct mq_attr attr; + struct sigaction sa; + sigset_t set; + siginfo_t info; + mqd_t mq; + pid_t pid; + + mq_unlink(MQNAME); + + sigemptyset(&set); + sigaddset(&set, SIGRTMIN); + sigprocmask(SIG_BLOCK, &set, NULL); + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_SIGINFO; + sa.sa_sigaction = (void *) SIG_DFL; + sigaction(SIGRTMIN, &sa, NULL); + + attr.mq_maxmsg = 5; + attr.mq_msgsize = 128; + mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); + if (mq == (mqd_t)-1) + err(1, "mq_open()"); + status = mq_getattr(mq, &attr); + if (status) + err(1, "mq_getattr()"); + pid = fork(); + if (pid == 0) { /* child */ + int prio, j, i; + char *buf; + struct sigevent sigev; + + signal(SIGALRM, sighandler); + + sigev.sigev_notify = SIGEV_SIGNAL; + sigev.sigev_signo = SIGRTMIN; + sigev.sigev_value.sival_int = 2; + + mq_close(mq); + mq = mq_open(MQNAME, O_RDWR | O_NONBLOCK); + if (mq == (mqd_t)-1) + err(1, "child: mq_open"); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + alarm(3); + status = mq_notify(mq, &sigev); + if (status) + err(1, "child: mq_notify"); + status = sigwaitinfo(&set, &info); + if (status == -1) + err(1, "child: sigwaitinfo"); + if (info.si_value.sival_int != 2) + err(1, "child: sival_int"); + status = mq_receive(mq, buf, attr.mq_msgsize, &prio); + if (status == -1) + err(2, "child: mq_receive"); + for (i = 0; i < attr.mq_msgsize; ++i) + if (buf[i] != i) + err(3, "child: message data corrupted"); + if (prio != PRIO) + err(4, "child: priority is incorrect: %d", + prio); + } + alarm(0); + free(buf); + mq_close(mq); + return (0); + } else if (pid == -1) { + err(1, "fork()"); + } else { + char *buf; + int i, j; + + signal(SIGALRM, sighandler); + buf = malloc(attr.mq_msgsize); + for (j = 0; j < LOOPS; ++j) { + for (i = 0; i < attr.mq_msgsize; ++i) { + buf[i] = i; + } + alarm(3); + status = mq_send(mq, buf, attr.mq_msgsize, PRIO); + if (status) { + kill(pid, SIGKILL); + err(2, "mq_send()"); + } + } + alarm(3); + wait(&status); + alarm(0); + } + status = mq_close(mq); + if (status) + err(1, "mq_close"); + mq_unlink(MQNAME); + return (0); +} Property changes on: head/tests/sys/mqueue/mqtest5.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest2/mqtest2.c =================================================================== --- head/tools/regression/mqueue/mqtest2/mqtest2.c (revision 282070) +++ head/tools/regression/mqueue/mqtest2/mqtest2.c (nonexistent) @@ -1,93 +0,0 @@ -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MQNAME "/mytstqueue2" -#define LOOPS 1000 -#define PRIO 10 - -void alarmhandler(int sig) -{ - write(1, "timeout\n", 8); - _exit(1); -} - -int main() -{ - struct mq_attr attr; - mqd_t mq; - int status, pid; - - mq_unlink(MQNAME); - - attr.mq_maxmsg = 5; - attr.mq_msgsize = 128; - mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); - if (mq == (mqd_t)-1) - err(1, "mq_open"); - status = mq_getattr(mq, &attr); - if (status) - err(1, "mq_getattr"); - pid = fork(); - if (pid == 0) { /* child */ - int prio, j, i; - char *buf; - - mq_close(mq); - - signal(SIGALRM, alarmhandler); - - mq = mq_open(MQNAME, O_RDWR); - if (mq == (mqd_t)-1) - err(1, "child: mq_open"); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - alarm(3); - status = mq_receive(mq, buf, attr.mq_msgsize, &prio); - if (status == -1) - err(2, "child: mq_receive"); - for (i = 0; i < attr.mq_msgsize; ++i) - if (buf[i] != i) - err(3, "child: message data corrupted"); - if (prio != PRIO) - err(4, "child: priority is incorrect: %d", - prio); - } - alarm(0); - free(buf); - mq_close(mq); - return (0); - } else if (pid == -1) { - err(1, "fork()"); - } else { - char *buf; - int i, j, prio; - - signal(SIGALRM, alarmhandler); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - for (i = 0; i < attr.mq_msgsize; ++i) - buf[i] = i; - alarm(3); - status = mq_send(mq, buf, attr.mq_msgsize, PRIO); - if (status) - err(1, "mq_send"); - } - alarm(3); - wait(&status); - alarm(0); - } - status = mq_close(mq); - if (status) - err(1, "mq_close"); - mq_unlink(MQNAME); - return (0); -} Property changes on: head/tools/regression/mqueue/mqtest2/mqtest2.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest2/Makefile =================================================================== --- head/tools/regression/mqueue/mqtest2/Makefile (revision 282070) +++ head/tools/regression/mqueue/mqtest2/Makefile (nonexistent) @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG=mqtest2 -DPADD= ${LIBRT} -LDADD= -lrt -MAN= -DEBUG_FLAGS=-g - -.include Property changes on: head/tools/regression/mqueue/mqtest2/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest3/mqtest3.c =================================================================== --- head/tools/regression/mqueue/mqtest3/mqtest3.c (revision 282070) +++ head/tools/regression/mqueue/mqtest3/mqtest3.c (nonexistent) @@ -1,109 +0,0 @@ -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MQNAME "/mytstqueue3" -#define LOOPS 1000 -#define PRIO 10 - -void sighandler(int sig) -{ - write(1, "timeout\n", 8); - _exit(1); -} - -int main() -{ - mqd_t mq; - int status; - struct mq_attr attr; - int pid; - fd_set set; - - mq_unlink(MQNAME); - - attr.mq_maxmsg = 5; - attr.mq_msgsize = 128; - mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); - if (mq == (mqd_t)-1) - err(1, "mq_open()"); - status = mq_getattr(mq, &attr); - if (status) - err(1, "mq_getattr()"); - - pid = fork(); - if (pid == 0) { /* child */ - int prio, j, i; - char *buf; - - mq_close(mq); - - signal(SIGALRM, sighandler); - - mq = mq_open(MQNAME, O_RDWR); - if (mq == (mqd_t)-1) - err(1, "child process: mq_open"); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - FD_ZERO(&set); - FD_SET(__mq_oshandle(mq), &set); - alarm(3); - status = select(__mq_oshandle(mq)+1, &set, NULL, NULL, NULL); - if (status != 1) - err(1, "child process: select()"); - status = mq_receive(mq, buf, attr.mq_msgsize, &prio); - if (status == -1) - err(2, "child process: mq_receive"); - for (i = 0; i < attr.mq_msgsize; ++i) - if (buf[i] != i) - err(3, "message data corrupted"); - if (prio != PRIO) - err(4, "priority is incorrect: %d", prio); - } - alarm(0); - free(buf); - mq_close(mq); - return (0); - } else if (pid == -1) { - err(1, "fork()"); - } else { - char *buf; - int i, j, prio; - - signal(SIGALRM, sighandler); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - for (i = 0; i < attr.mq_msgsize; ++i) { - buf[i] = i; - } - alarm(3); - FD_ZERO(&set); - FD_SET(__mq_oshandle(mq), &set); - status = select(__mq_oshandle(mq)+1, NULL, &set, NULL, NULL); - if (status != 1) - err(1, "select()"); - status = mq_send(mq, buf, attr.mq_msgsize, PRIO); - if (status) { - kill(pid, SIGKILL); - err(2, "mq_send()"); - } - } - alarm(3); - wait(&status); - alarm(0); - } - status = mq_close(mq); - if (status) - err(1, "mq_close"); - mq_unlink(MQNAME); - return (0); -} Property changes on: head/tools/regression/mqueue/mqtest3/mqtest3.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest3/Makefile =================================================================== --- head/tools/regression/mqueue/mqtest3/Makefile (revision 282070) +++ head/tools/regression/mqueue/mqtest3/Makefile (nonexistent) @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG=mqtest3 -DPADD= ${LIBRT} -LDADD= -lrt -MAN= -DEBUG_FLAGS=-g - -.include Property changes on: head/tools/regression/mqueue/mqtest3/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest4/mqtest4.c =================================================================== --- head/tools/regression/mqueue/mqtest4/mqtest4.c (revision 282070) +++ head/tools/regression/mqueue/mqtest4/mqtest4.c (nonexistent) @@ -1,115 +0,0 @@ -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MQNAME "/mytstqueue4" -#define LOOPS 1000 -#define PRIO 10 - -void sighandler(int sig) -{ - write(1, "timeout\n", 8); - _exit(1); -} - -int main() -{ - mqd_t mq; - int status; - struct mq_attr attr; - int pid; - fd_set set; - int kq; - struct kevent kev; - - mq_unlink(MQNAME); - - attr.mq_maxmsg = 5; - attr.mq_msgsize = 128; - mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); - if (mq == (mqd_t) -1) - err(1, "mq_open()"); - status = mq_getattr(mq, &attr); - if (status) - err(1, "mq_getattr()"); - pid = fork(); - if (pid == 0) { /* child */ - int prio, j, i; - char *buf; - - mq_close(mq); - kq = kqueue(); - mq = mq_open(MQNAME, O_RDWR); - if (mq == (mqd_t)-1) - err(1, "child: mq_open"); - EV_SET(&kev, __mq_oshandle(mq), EVFILT_READ, EV_ADD, 0, 0, 0); - status = kevent(kq, &kev, 1, NULL, 0, NULL); - if (status == -1) - err(1, "child: kevent"); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - alarm(3); - status = kevent(kq, NULL, 0, &kev, 1, NULL); - if (status != 1) - err(1, "child: kevent 2"); - status = mq_receive(mq, buf, attr.mq_msgsize, &prio); - if (status == -1) - err(2, "child: mq_receive"); - for (i = 0; i < attr.mq_msgsize; ++i) - if (buf[i] != i) - err(3, "child: message data corrupted"); - if (prio != PRIO) - err(4, "child: priority is incorrect: %d", - prio); - } - alarm(0); - free(buf); - mq_close(mq); - return (0); - } else if (pid == -1) { - err(1, "fork()"); - } else { - char *buf; - int i, j, prio; - - signal(SIGALRM, sighandler); - kq = kqueue(); - EV_SET(&kev, __mq_oshandle(mq), EVFILT_WRITE, EV_ADD, 0, 0, 0); - status = kevent(kq, &kev, 1, NULL, 0, NULL); - if (status == -1) - err(1, "kevent"); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - for (i = 0; i < attr.mq_msgsize; ++i) { - buf[i] = i; - } - alarm(3); - status = kevent(kq, NULL, 0, &kev, 1, NULL); - if (status != 1) - err(1, "child: kevent 2"); - status = mq_send(mq, buf, attr.mq_msgsize, PRIO); - if (status) { - err(2, "mq_send()"); - } - } - free(buf); - alarm(3); - wait(&status); - alarm(0); - } - status = mq_close(mq); - if (status) - err(1, "mq_close"); - mq_unlink(MQNAME); - return (0); -} Property changes on: head/tools/regression/mqueue/mqtest4/mqtest4.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest4/Makefile =================================================================== --- head/tools/regression/mqueue/mqtest4/Makefile (revision 282070) +++ head/tools/regression/mqueue/mqtest4/Makefile (nonexistent) @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG=mqtest4 -DPADD= ${LIBRT} -LDADD= -lrt -MAN= -DEBUG_FLAGS=-g - -.include Property changes on: head/tools/regression/mqueue/mqtest4/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest5/mqtest5.c =================================================================== --- head/tools/regression/mqueue/mqtest5/mqtest5.c (revision 282070) +++ head/tools/regression/mqueue/mqtest5/mqtest5.c (nonexistent) @@ -1,122 +0,0 @@ -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MQNAME "/mytstqueue5" -#define LOOPS 1000 -#define PRIO 10 - -void sighandler(int sig) -{ - write(1, "timeout\n", 8); - _exit(1); -} - -int main() -{ - mqd_t mq; - int status; - struct mq_attr attr; - int pid; - sigset_t set; - struct sigaction sa; - siginfo_t info; - - mq_unlink(MQNAME); - - sigemptyset(&set); - sigaddset(&set, SIGRTMIN); - sigprocmask(SIG_BLOCK, &set, NULL); - sigemptyset(&sa.sa_mask); - sa.sa_flags = SA_SIGINFO; - sa.sa_sigaction = (void *) SIG_DFL; - sigaction(SIGRTMIN, &sa, NULL); - - attr.mq_maxmsg = 5; - attr.mq_msgsize = 128; - mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); - if (mq == (mqd_t)-1) - err(1, "mq_open()"); - status = mq_getattr(mq, &attr); - if (status) - err(1, "mq_getattr()"); - pid = fork(); - if (pid == 0) { /* child */ - int prio, j, i; - char *buf; - struct sigevent sigev; - - signal(SIGALRM, sighandler); - - sigev.sigev_notify = SIGEV_SIGNAL; - sigev.sigev_signo = SIGRTMIN; - sigev.sigev_value.sival_int = 2; - - mq_close(mq); - mq = mq_open(MQNAME, O_RDWR | O_NONBLOCK); - if (mq == (mqd_t)-1) - err(1, "child: mq_open"); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - alarm(3); - status = mq_notify(mq, &sigev); - if (status) - err(1, "child: mq_notify"); - status = sigwaitinfo(&set, &info); - if (status == -1) - err(1, "child: sigwaitinfo"); - if (info.si_value.sival_int != 2) - err(1, "child: sival_int"); - status = mq_receive(mq, buf, attr.mq_msgsize, &prio); - if (status == -1) - err(2, "child: mq_receive"); - for (i = 0; i < attr.mq_msgsize; ++i) - if (buf[i] != i) - err(3, "child: message data corrupted"); - if (prio != PRIO) - err(4, "child: priority is incorrect: %d", - prio); - } - alarm(0); - free(buf); - mq_close(mq); - return (0); - } else if (pid == -1) { - err(1, "fork()"); - } else { - char *buf; - int i, j, prio; - - signal(SIGALRM, sighandler); - buf = malloc(attr.mq_msgsize); - for (j = 0; j < LOOPS; ++j) { - for (i = 0; i < attr.mq_msgsize; ++i) { - buf[i] = i; - } - alarm(3); - status = mq_send(mq, buf, attr.mq_msgsize, PRIO); - if (status) { - kill(pid, SIGKILL); - err(2, "mq_send()"); - } - } - alarm(3); - wait(&status); - alarm(0); - } - status = mq_close(mq); - if (status) - err(1, "mq_close"); - mq_unlink(MQNAME); - return (0); -} Property changes on: head/tools/regression/mqueue/mqtest5/mqtest5.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest5/Makefile =================================================================== --- head/tools/regression/mqueue/mqtest5/Makefile (revision 282070) +++ head/tools/regression/mqueue/mqtest5/Makefile (nonexistent) @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG=mqtest5 -DPADD= ${LIBRT} -LDADD= -lrt -MAN= -DEBUG_FLAGS=-g - -.include Property changes on: head/tools/regression/mqueue/mqtest5/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/Makefile =================================================================== --- head/tools/regression/mqueue/Makefile (revision 282070) +++ head/tools/regression/mqueue/Makefile (nonexistent) @@ -1,5 +0,0 @@ -# $FreeBSD$ - -SUBDIR=mqtest1 mqtest2 mqtest3 mqtest4 mqtest5 - -.include Property changes on: head/tools/regression/mqueue/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest1/mqtest1.c =================================================================== --- head/tools/regression/mqueue/mqtest1/mqtest1.c (revision 282070) +++ head/tools/regression/mqueue/mqtest1/mqtest1.c (nonexistent) @@ -1,52 +0,0 @@ -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include -#include - -#define MQNAME "/mytstqueue1" - -int main() -{ - struct mq_attr attr, attr2; - struct sigevent sigev; - mqd_t mq; - int status; - - attr.mq_maxmsg = 2; - attr.mq_msgsize = 100; - mq = mq_open(MQNAME, O_CREAT | O_RDWR | O_EXCL, 0666, &attr); - if (mq == (mqd_t)-1) - err(1, "mq_open"); - status = mq_unlink(MQNAME); - if (status) - err(1, "mq_unlink"); - status = mq_getattr(mq, &attr2); - if (status) - err(1, "mq_getattr"); - if (attr.mq_maxmsg != attr2.mq_maxmsg) - err(1, "mq_maxmsg changed"); - if (attr.mq_msgsize != attr2.mq_msgsize) - err(1, "mq_msgsize changed"); - - sigev.sigev_notify = SIGEV_SIGNAL; - sigev.sigev_signo = SIGRTMIN; - status = mq_notify(mq, &sigev); - if (status) - err(1, "mq_notify"); - status = mq_notify(mq, &sigev); - if (status == 0) - err(1, "mq_notify 2"); - else if (errno != EBUSY) - err(1, "mq_notify 3"); - status = mq_notify(mq, NULL); - if (status) - err(1, "mq_notify 4"); - status = mq_close(mq); - if (status) - err(1, "mq_close"); - return (0); -} Property changes on: head/tools/regression/mqueue/mqtest1/mqtest1.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/regression/mqueue/mqtest1/Makefile =================================================================== --- head/tools/regression/mqueue/mqtest1/Makefile (revision 282070) +++ head/tools/regression/mqueue/mqtest1/Makefile (nonexistent) @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG=mqtest1 -DPADD= ${LIBRT} -LDADD= -lrt -MAN= -DEBUG_FLAGS=-g - -.include Property changes on: head/tools/regression/mqueue/mqtest1/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head =================================================================== --- head (revision 282070) +++ head (revision 282071) Property changes on: head ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /user/ngie/more-tests:r281428,281430,281490