Module Name: src Committed By: thorpej Date: Sat Apr 3 22:34:59 UTC 2021
Modified Files: src/tests/lib/libc/sys [thorpej-futex]: t_ptrace_signal_wait.h t_sendrecv.c t_syscall.c Log Message: Sync with HEAD. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.2.1 src/tests/lib/libc/sys/t_ptrace_signal_wait.h cvs rdiff -u -r1.6 -r1.6.8.1 src/tests/lib/libc/sys/t_sendrecv.c cvs rdiff -u -r1.3 -r1.3.10.1 src/tests/lib/libc/sys/t_syscall.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/sys/t_ptrace_signal_wait.h diff -u src/tests/lib/libc/sys/t_ptrace_signal_wait.h:1.4 src/tests/lib/libc/sys/t_ptrace_signal_wait.h:1.4.2.1 --- src/tests/lib/libc/sys/t_ptrace_signal_wait.h:1.4 Mon Jun 22 12:21:02 2020 +++ src/tests/lib/libc/sys/t_ptrace_signal_wait.h Sat Apr 3 22:34:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: t_ptrace_signal_wait.h,v 1.4 2020/06/22 12:21:02 rin Exp $ */ +/* $NetBSD: t_ptrace_signal_wait.h,v 1.4.2.1 2021/04/03 22:34:59 thorpej Exp $ */ /*- * Copyright (c) 2016, 2017, 2018, 2019, 2020 The NetBSD Foundation, Inc. @@ -90,7 +90,7 @@ traceme_raise(int sigval) ATF_REQUIRE_EQ(info.psi_siginfo.si_signo, sigval); ATF_REQUIRE_EQ(info.psi_siginfo.si_code, SI_LWP); - DPRINTF("Assert that PT_GET_PROCESS_STATE returns non-error"); + DPRINTF("Assert that PT_GET_PROCESS_STATE returns non-error\n"); SYSCALL_REQUIRE( ptrace(PT_GET_PROCESS_STATE, child, &state, slen) != -1); ATF_REQUIRE(memcmp(&state, &zero_state, slen) == 0); @@ -401,7 +401,7 @@ traceme_crash(int sig) validate_status_stopped(status, sig); - DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child"); + DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child\n"); SYSCALL_REQUIRE( ptrace(PT_GET_SIGINFO, child, &info, sizeof(info)) != -1); @@ -567,7 +567,7 @@ traceme_signalmasked_crash(int sig) validate_status_stopped(status, sig); - DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child"); + DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child\n"); SYSCALL_REQUIRE( ptrace(PT_GET_SIGINFO, child, &info, sizeof(info)) != -1); @@ -750,7 +750,7 @@ traceme_signalignored_crash(int sig) validate_status_stopped(status, sig); - DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child"); + DPRINTF("Before calling ptrace(2) with PT_GET_SIGINFO for child\n"); SYSCALL_REQUIRE( ptrace(PT_GET_SIGINFO, child, &info, sizeof(info)) != -1); Index: src/tests/lib/libc/sys/t_sendrecv.c diff -u src/tests/lib/libc/sys/t_sendrecv.c:1.6 src/tests/lib/libc/sys/t_sendrecv.c:1.6.8.1 --- src/tests/lib/libc/sys/t_sendrecv.c:1.6 Sun Feb 3 03:19:28 2019 +++ src/tests/lib/libc/sys/t_sendrecv.c Sat Apr 3 22:34:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: t_sendrecv.c,v 1.6 2019/02/03 03:19:28 mrg Exp $ */ +/* $NetBSD: t_sendrecv.c,v 1.6.8.1 2021/04/03 22:34:59 thorpej Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_sendrecv.c,v 1.6 2019/02/03 03:19:28 mrg Exp $"); +__RCSID("$NetBSD: t_sendrecv.c,v 1.6.8.1 2021/04/03 22:34:59 thorpej Exp $"); #include <atf-c.h> #include <sys/types.h> @@ -40,8 +40,8 @@ __RCSID("$NetBSD: t_sendrecv.c,v 1.6 201 #include <errno.h> #include <stdio.h> #include <stdlib.h> -#include <unistd.h> #include <sched.h> +#include <unistd.h> #include <signal.h> @@ -62,61 +62,66 @@ handle_sigchld(__unused int pid) } static void -sender(int fd) +sender(int sd) { union packet p; ssize_t n; p.seq = 0; for (size_t i = 0; i < COUNT; i++) { - for (; (n = send(fd, &p, sizeof(p), 0)) == sizeof(p); + for (; (n = send(sd, &p, sizeof(p), 0)) == sizeof(p); p.seq++) continue; - printf(">>%zd %d %ju\n", n, errno, p.seq); +// printf(">>%zd %d %ju\n", n, errno, p.seq); ATF_REQUIRE_MSG(errno == ENOBUFS, "send %s", strerror(errno)); -// sched_yield(); } - printf("sender done\n"); + close(sd); +// printf("sender done\n"); } static void -receiver(int fd) +receiver(int sd) { union packet p; ssize_t n; uintmax_t seq = 0; - do { + for (size_t i = 0; i < COUNT; i++) { if (rdied) return; - while ((n = recv(fd, &p, sizeof(p), 0), sizeof(p)) + while ((n = recv(sd, &p, sizeof(p), 0), sizeof(p)) == sizeof(p)) { if (rdied) return; if (p.seq != seq) printf("%ju != %ju\n", p.seq, seq); + if (seq % 10 == 0) + sched_yield(); seq = p.seq + 1; } - printf("<<%zd %d %ju\n", n, errno, seq); +// printf("<<%zd %d %ju\n", n, errno, seq); if (n == 0) return; ATF_REQUIRE_EQ(n, -1); ATF_REQUIRE_MSG(errno == ENOBUFS, "recv %s", strerror(errno)); - } while (p.seq < COUNT); + } + close(sd); } static void sendrecv(int rerror) { - int fd[2], error; + int fd[2], sd[2], error; + char c = 0; struct sigaction sa; - error = socketpair(AF_UNIX, SOCK_DGRAM, 0, fd); -// error = pipe(fd); + error = socketpair(AF_UNIX, SOCK_DGRAM, 0, sd); ATF_REQUIRE_MSG(error != -1, "socketpair failed (%s)", strerror(errno)); + error = pipe(fd); + ATF_REQUIRE_MSG(error != -1, "pipe failed (%s)", strerror(errno)); - for (size_t i = 0; i < __arraycount(fd); i++) { - error = setsockopt(fd[i], SOL_SOCKET, SO_RERROR, &rerror, + for (size_t i = 0; i < __arraycount(sd); i++) { + error = setsockopt(sd[i], SOL_SOCKET, SO_RERROR, &rerror, sizeof(rerror)); ATF_REQUIRE_MSG(error != -1, "setsockopt(SO_RERROR) failed (%s)", strerror(errno)); @@ -133,17 +138,18 @@ sendrecv(int rerror) switch (fork()) { case -1: ATF_REQUIRE_MSG(errno == 0, - "socketpair failed (%s)", strerror(errno)); + "fork failed (%s)", strerror(errno)); __unreachable(); /*NOTREACHED*/ case 0: - sched_yield(); - sender(fd[0]); - close(fd[0]); + read(fd[1], &c, sizeof(c)); + sender(sd[0]); + close(sd[0]); exit(EXIT_SUCCESS); /*NOTREACHED*/ default: - receiver(fd[1]); + write(fd[0], &c, sizeof(c)); + receiver(sd[1]); return; } } Index: src/tests/lib/libc/sys/t_syscall.c diff -u src/tests/lib/libc/sys/t_syscall.c:1.3 src/tests/lib/libc/sys/t_syscall.c:1.3.10.1 --- src/tests/lib/libc/sys/t_syscall.c:1.3 Mon May 28 07:55:56 2018 +++ src/tests/lib/libc/sys/t_syscall.c Sat Apr 3 22:34:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: t_syscall.c,v 1.3 2018/05/28 07:55:56 martin Exp $ */ +/* $NetBSD: t_syscall.c,v 1.3.10.1 2021/04/03 22:34:59 thorpej Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_syscall.c,v 1.3 2018/05/28 07:55:56 martin Exp $"); +__RCSID("$NetBSD: t_syscall.c,v 1.3.10.1 2021/04/03 22:34:59 thorpej Exp $"); #include <atf-c.h> @@ -75,7 +75,7 @@ ATF_TC_BODY(mmap_syscall, tc) p = (const char *)syscall(SYS_mmap, 0, sizeof(secrect_data), PROT_READ, MAP_PRIVATE, fd, 0, 0, 0); - ATF_REQUIRE(p != NULL); + ATF_REQUIRE(p != MAP_FAILED); ATF_REQUIRE(strcmp(p, secrect_data) == 0); } @@ -101,7 +101,7 @@ ATF_TC_BODY(mmap___syscall, tc) p = (const char *)__SYSCALL_TO_UINTPTR_T(__syscall(SYS_mmap, 0, sizeof(secrect_data), PROT_READ, MAP_PRIVATE, fd, /* pad*/ 0, (off_t)0)); - ATF_REQUIRE(p != NULL); + ATF_REQUIRE(p != MAP_FAILED); ATF_REQUIRE(strcmp(p, secrect_data) == 0); }