CHILD_REQUIRE_EQ
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(errno, ENOTCAPABLE);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(errno, ENOTCAPABLE);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(error, SIGUSR1);
CHILD_REQUIRE_EQ(read(cpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(write(cpipe[1], &ppid, sizeof(ppid)),
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(WSTOPSIG(status), SIGSTOP);
CHILD_REQUIRE_EQ(write(dpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(WEXITSTATUS(status), 1);
CHILD_REQUIRE_EQ(pthread_create(&thread, NULL, simple_thread, NULL), 0);
CHILD_REQUIRE_EQ(pthread_join(thread, NULL), 0);
CHILD_REQUIRE_EQ(pthread_create(&thread, NULL, exec_thread, NULL), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(cpuset(&setid), 0);
CHILD_REQUIRE_EQ(pthread_barrier_init(&barrier, NULL, 2), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(cpuset(&setid), 0);
CHILD_REQUIRE_EQ(pthread_barrier_init(&barrier, NULL, 2), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(sig, SIGUSR1);
CHILD_REQUIRE_EQ(0, read(cpipe[1], &c, sizeof(c)));
CHILD_REQUIRE_EQ(sig, SIGUSR1);
CHILD_REQUIRE_EQ(sem_post(&sigusr1_sem), 0);
CHILD_REQUIRE_EQ(sigemptyset(&sigmask), 0);
CHILD_REQUIRE_EQ(sigaddset(&sigmask, SIGUSR1), 0);
CHILD_REQUIRE_EQ(sigprocmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 0);
CHILD_REQUIRE_EQ(sigprocmask(SIG_UNBLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 1);
CHILD_REQUIRE_EQ(read(cpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(kevent(kq, &kev, 1, NULL, 0, NULL), 0);
CHILD_REQUIRE_EQ(kev.filter, EVFILT_SIGNAL);
CHILD_REQUIRE_EQ(kev.ident, (uintptr_t)SIGUSR1);
CHILD_REQUIRE_EQ(sigemptyset(&sigmask), 0);
CHILD_REQUIRE_EQ(sigaddset(&sigmask, SIGUSR1), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(sigemptyset(&sigmask), 0);
CHILD_REQUIRE_EQ(sigaddset(&sigmask, SIGUSR1), 0);
CHILD_REQUIRE_EQ(sigprocmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 0);
CHILD_REQUIRE_EQ(sigprocmask(SIG_UNBLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 1);
CHILD_REQUIRE_EQ(sigemptyset(&sigmask), 0);
CHILD_REQUIRE_EQ(sigaddset(&sigmask, SIGUSR1), 0);
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(sigprocmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 0);
CHILD_REQUIRE_EQ(sigprocmask(SIG_UNBLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(got_usr1, 1);
CHILD_REQUIRE_EQ(WSTOPSIG(status), SIGSTOP);
CHILD_REQUIRE_EQ(write(dpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(pthread_create(&t, NULL, signal_thread,
CHILD_REQUIRE_EQ(sigemptyset(&sigmask), 0);
CHILD_REQUIRE_EQ(sigaddset(&sigmask, SIGUSR1), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_BLOCK, &sigmask, NULL), 0);
CHILD_REQUIRE_EQ(pthread_sigmask(SIG_UNBLOCK, &sigmask, NULL),
CHILD_REQUIRE_EQ(pthread_join(t, NULL), 0);
CHILD_REQUIRE_EQ(read(dpipe[1], &c, sizeof(c)), 0);
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(WEXITSTATUS(status), 1);
CHILD_REQUIRE_EQ(cpuset(&setid), 0);
CHILD_REQUIRE_EQ(wpid, fpid);
CHILD_REQUIRE_EQ(WSTOPSIG(status), SIGSTOP);
CHILD_REQUIRE_EQ(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0), 0);
CHILD_REQUIRE_EQ(wpid, fpid);
CHILD_REQUIRE_EQ(WSTOPSIG(status), SIGSTOP);
CHILD_REQUIRE_EQ(sig, SIGUSR1);
CHILD_REQUIRE_EQ(pthread_join(threads[0], NULL), 0);
CHILD_REQUIRE_EQ(pthread_join(threads[1], NULL), 0);
CHILD_REQUIRE_EQ(read(cpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(WSTOPSIG(status), SIGSTOP);
CHILD_REQUIRE_EQ(write(dpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(read(dpipe[1], &c, sizeof(c)),
CHILD_REQUIRE_EQ(wpid, child);
CHILD_REQUIRE_EQ(WEXITSTATUS(status), 1);
CHILD_REQUIRE_EQ(write(cpipe1[1], &gchild, sizeof(gchild)),
CHILD_REQUIRE_EQ(read(cpipe2[0], &status, sizeof(status)),
CHILD_REQUIRE_EQ(wpid, fpid);
CHILD_REQUIRE_EQ(WEXITSTATUS(status), 2);
CHILD_REQUIRE_EQ(write(cpipe[1], &fpid, sizeof(fpid)),
CHILD_REQUIRE_EQ(read(cpipe[1], &fpid, sizeof(fpid)), 0);