Index: user/ngie/more-tests/etc/mtree/BSD.tests.dist =================================================================== --- user/ngie/more-tests/etc/mtree/BSD.tests.dist (revision 281427) +++ user/ngie/more-tests/etc/mtree/BSD.tests.dist (revision 281428) @@ -1,574 +1,576 @@ # $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 kern .. kqueue .. + mqueue + .. netinet .. opencrypto .. pjdfstest chflags .. chmod .. chown .. ftruncate .. granular .. link .. mkdir .. mkfifo .. mknod .. open .. rename .. rmdir .. symlink .. truncate .. unlink .. .. socket .. vfs .. .. 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: user/ngie/more-tests/tests/sys/mqueue/Makefile =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/Makefile (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/Makefile (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tests/sys/mqueue/mqtest1.c =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/mqtest1.c (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/mqtest1.c (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/mqtest1.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tests/sys/mqueue/mqtest2.c =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/mqtest2.c (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/mqtest2.c (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/mqtest2.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tests/sys/mqueue/mqtest3.c =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/mqtest3.c (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/mqtest3.c (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/mqtest3.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tests/sys/mqueue/mqtest4.c =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/mqtest4.c (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/mqtest4.c (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/mqtest4.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tests/sys/mqueue/mqtest5.c =================================================================== --- user/ngie/more-tests/tests/sys/mqueue/mqtest5.c (nonexistent) +++ user/ngie/more-tests/tests/sys/mqueue/mqtest5.c (revision 281428) @@ -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: user/ngie/more-tests/tests/sys/mqueue/mqtest5.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest2/mqtest2.c =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest2/mqtest2.c (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest2/mqtest2.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest2/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest2/Makefile (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest2/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest3/mqtest3.c =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest3/mqtest3.c (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest3/mqtest3.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest3/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest3/Makefile (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest3/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest4/mqtest4.c =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest4/mqtest4.c (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest4/mqtest4.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest4/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest4/Makefile (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest4/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest5/mqtest5.c =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest5/mqtest5.c (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest5/mqtest5.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest5/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest5/Makefile (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest5/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/Makefile (revision 281427) +++ user/ngie/more-tests/tools/regression/mqueue/Makefile (nonexistent) @@ -1,5 +0,0 @@ -# $FreeBSD$ - -SUBDIR=mqtest1 mqtest2 mqtest3 mqtest4 mqtest5 - -.include Property changes on: user/ngie/more-tests/tools/regression/mqueue/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest1/mqtest1.c =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest1/mqtest1.c (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest1/mqtest1.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: user/ngie/more-tests/tools/regression/mqueue/mqtest1/Makefile =================================================================== --- user/ngie/more-tests/tools/regression/mqueue/mqtest1/Makefile (revision 281427) +++ user/ngie/more-tests/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: user/ngie/more-tests/tools/regression/mqueue/mqtest1/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property