diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libc/sys/Makefile | 8 | ||||
| -rw-r--r-- | src/regress/lib/libc/sys/README | 2 | ||||
| -rw-r--r-- | src/regress/lib/libc/sys/macros.h | 3 | ||||
| -rw-r--r-- | src/regress/lib/libc/sys/t_fork.c | 7 | ||||
| -rw-r--r-- | src/regress/lib/libc/sys/t_vfork.c | 31 |
5 files changed, 45 insertions, 6 deletions
diff --git a/src/regress/lib/libc/sys/Makefile b/src/regress/lib/libc/sys/Makefile index acb5c89896..0bc8822c2a 100644 --- a/src/regress/lib/libc/sys/Makefile +++ b/src/regress/lib/libc/sys/Makefile | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $OpenBSD: Makefile,v 1.11 2021/09/02 12:40:44 mbuhl Exp $ | 1 | # $OpenBSD: Makefile,v 1.12 2021/09/02 15:28:41 mbuhl Exp $ |
| 2 | 2 | ||
| 3 | # Copyright (c) 2019 Moritz Buhl <openbsd@moritzbuhl.de> | 3 | # Copyright (c) 2019 Moritz Buhl <openbsd@moritzbuhl.de> |
| 4 | # Copyright (c) 2019 Alexander Bluhm <bluhm@openbsd.org> | 4 | # Copyright (c) 2019 Alexander Bluhm <bluhm@openbsd.org> |
| @@ -66,6 +66,7 @@ PROGS += t_stat | |||
| 66 | PROGS += t_syscall | 66 | PROGS += t_syscall |
| 67 | PROGS += t_truncate | 67 | PROGS += t_truncate |
| 68 | PROGS += t_umask t_unlink | 68 | PROGS += t_umask t_unlink |
| 69 | PROGS += t_vfork | ||
| 69 | PROGS += t_wait_noproc | 70 | PROGS += t_wait_noproc |
| 70 | PROGS += t_wait_noproc_wnohang | 71 | PROGS += t_wait_noproc_wnohang |
| 71 | PROGS += t_write | 72 | PROGS += t_write |
| @@ -78,6 +79,11 @@ REGRESS_EXPECTED_FAILURES += run-t_pipe2-2 | |||
| 78 | REGRESS_EXPECTED_FAILURES += run-t_stat-5 | 79 | REGRESS_EXPECTED_FAILURES += run-t_stat-5 |
| 79 | REGRESS_EXPECTED_FAILURES += run-t_unlink-2 | 80 | REGRESS_EXPECTED_FAILURES += run-t_unlink-2 |
| 80 | 81 | ||
| 82 | run-t_vfork-2: | ||
| 83 | # SIGSTOP with vfork is masked before exec(3)/exit(3) | ||
| 84 | # see NetBSD: kern_sig.c,v 1.345 | ||
| 85 | @echo DISABLED | ||
| 86 | |||
| 81 | . for p in ${PROGS} | 87 | . for p in ${PROGS} |
| 82 | SRCS_$p = $p.c atf-c.c | 88 | SRCS_$p = $p.c atf-c.c |
| 83 | . endfor | 89 | . endfor |
diff --git a/src/regress/lib/libc/sys/README b/src/regress/lib/libc/sys/README index 5606fcaa15..b0092c4e0b 100644 --- a/src/regress/lib/libc/sys/README +++ b/src/regress/lib/libc/sys/README | |||
| @@ -28,6 +28,7 @@ t_revoke - remove basic tests, revoke only on ttys supported | |||
| 28 | t_select - remove sigset_t struct as it is int on OpenBSD | 28 | t_select - remove sigset_t struct as it is int on OpenBSD |
| 29 | t_setrlimit - remove unsupported resource parameters and lwp | 29 | t_setrlimit - remove unsupported resource parameters and lwp |
| 30 | t_syscall - add __syscall prototype | 30 | t_syscall - add __syscall prototype |
| 31 | t_vfork - SIGSTOP is masked before exec(3)/exit(3) | ||
| 31 | t_wait_noproc - waitid and wait6 are not implemented | 32 | t_wait_noproc - waitid and wait6 are not implemented |
| 32 | t_wait_noproc_wnohang - waitid and wait6 are not implemented | 33 | t_wait_noproc_wnohang - waitid and wait6 are not implemented |
| 33 | 34 | ||
| @@ -38,7 +39,6 @@ t_msgrcv - msgrcv(id, &r, 3 - 1, 0x41, 004000) != -1 | |||
| 38 | t_pipe2 - closefrom(4) == -1, remove F_GETNOSIGPIPE and nosigpipe test | 39 | t_pipe2 - closefrom(4) == -1, remove F_GETNOSIGPIPE and nosigpipe test |
| 39 | t_stat - invalid GID with doas | 40 | t_stat - invalid GID with doas |
| 40 | t_unlink - wrong errno according to POSIX | 41 | t_unlink - wrong errno according to POSIX |
| 41 | t_vfork - !(((status) & 0177) == 0) evaluated to false, SIGSTOP wrong | ||
| 42 | 42 | ||
| 43 | Excluded tests: | 43 | Excluded tests: |
| 44 | t_clock_nanosleep - not available | 44 | t_clock_nanosleep - not available |
diff --git a/src/regress/lib/libc/sys/macros.h b/src/regress/lib/libc/sys/macros.h index 56f9ff1a1a..ee7d77c31d 100644 --- a/src/regress/lib/libc/sys/macros.h +++ b/src/regress/lib/libc/sys/macros.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: macros.h,v 1.3 2021/09/02 12:40:44 mbuhl Exp $ */ | 1 | /* $OpenBSD: macros.h,v 1.4 2021/09/02 15:28:41 mbuhl Exp $ */ |
| 2 | /* Public domain - Moritz Buhl */ | 2 | /* Public domain - Moritz Buhl */ |
| 3 | 3 | ||
| 4 | #include <sys/param.h> | 4 | #include <sys/param.h> |
| @@ -56,6 +56,7 @@ sysctlbyname(char* s, void *oldp, size_t *oldlenp, void *newp, size_t newlen) | |||
| 56 | #define kinfo_proc2 kinfo_proc | 56 | #define kinfo_proc2 kinfo_proc |
| 57 | #define KERN_PROC2 KERN_PROC | 57 | #define KERN_PROC2 KERN_PROC |
| 58 | #define reallocarr(pp, n, s) ((*pp = reallocarray(*pp, n, s)), *pp == NULL) | 58 | #define reallocarr(pp, n, s) ((*pp = reallocarray(*pp, n, s)), *pp == NULL) |
| 59 | #define LSSTOP SSTOP | ||
| 59 | 60 | ||
| 60 | /* t_mlock.c */ | 61 | /* t_mlock.c */ |
| 61 | #define MAP_WIRED __MAP_NOREPLACE | 62 | #define MAP_WIRED __MAP_NOREPLACE |
diff --git a/src/regress/lib/libc/sys/t_fork.c b/src/regress/lib/libc/sys/t_fork.c index 76d66ce9d4..04157efc5d 100644 --- a/src/regress/lib/libc/sys/t_fork.c +++ b/src/regress/lib/libc/sys/t_fork.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: t_fork.c,v 1.1 2021/09/02 12:40:44 mbuhl Exp $ */ | 1 | /* $OpenBSD: t_fork.c,v 1.2 2021/09/02 15:28:41 mbuhl Exp $ */ |
| 2 | /* $NetBSD: t_fork.c,v 1.4 2019/04/06 15:41:54 kamil Exp $ */ | 2 | /* $NetBSD: t_fork.c,v 1.4 2019/04/06 15:41:54 kamil Exp $ */ |
| 3 | 3 | ||
| 4 | /*- | 4 | /*- |
| @@ -34,6 +34,9 @@ __COPYRIGHT("@(#) Copyright (c) 2018, 2019\ | |||
| 34 | __RCSID("$NetBSD: t_fork.c,v 1.4 2019/04/06 15:41:54 kamil Exp $"); | 34 | __RCSID("$NetBSD: t_fork.c,v 1.4 2019/04/06 15:41:54 kamil Exp $"); |
| 35 | 35 | ||
| 36 | #include <sys/param.h> | 36 | #include <sys/param.h> |
| 37 | #ifdef __OpenBSD__ | ||
| 38 | #include <sys/proc.h> | ||
| 39 | #endif | ||
| 37 | #include <sys/types.h> | 40 | #include <sys/types.h> |
| 38 | #include <sys/sysctl.h> | 41 | #include <sys/sysctl.h> |
| 39 | #include <sys/wait.h> | 42 | #include <sys/wait.h> |
| @@ -118,10 +121,8 @@ await_stopped_child(pid_t process) | |||
| 118 | continue; | 121 | continue; |
| 119 | if (p[i].p_ppid != process) | 122 | if (p[i].p_ppid != process) |
| 120 | continue; | 123 | continue; |
| 121 | #ifndef __OpenBSD__ | ||
| 122 | if (p[i].p_stat != LSSTOP) | 124 | if (p[i].p_stat != LSSTOP) |
| 123 | continue; | 125 | continue; |
| 124 | #endif | ||
| 125 | child = p[i].p_pid; | 126 | child = p[i].p_pid; |
| 126 | break; | 127 | break; |
| 127 | } | 128 | } |
diff --git a/src/regress/lib/libc/sys/t_vfork.c b/src/regress/lib/libc/sys/t_vfork.c new file mode 100644 index 0000000000..a7c6f82e8a --- /dev/null +++ b/src/regress/lib/libc/sys/t_vfork.c | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* $OpenBSD: t_vfork.c,v 1.1 2021/09/02 15:28:41 mbuhl Exp $ */ | ||
| 2 | /* $NetBSD: t_vfork.c,v 1.1 2018/05/18 06:39:58 kamil Exp $ */ | ||
| 3 | |||
| 4 | /*- | ||
| 5 | * Copyright (c) 2018 The NetBSD Foundation, Inc. | ||
| 6 | * All rights reserved. | ||
| 7 | * | ||
| 8 | * Redistribution and use in source and binary forms, with or without | ||
| 9 | * modification, are permitted provided that the following conditions | ||
| 10 | * are met: | ||
| 11 | * 1. Redistributions of source code must retain the above copyright | ||
| 12 | * notice, this list of conditions and the following disclaimer. | ||
| 13 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 14 | * notice, this list of conditions and the following disclaimer in the | ||
| 15 | * documentation and/or other materials provided with the distribution. | ||
| 16 | * | ||
| 17 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | ||
| 18 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
| 19 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
| 20 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | ||
| 21 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
| 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
| 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
| 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
| 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
| 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| 27 | * POSSIBILITY OF SUCH DAMAGE. | ||
| 28 | */ | ||
| 29 | |||
| 30 | #define VFORK | ||
| 31 | #include "t_fork.c" | ||
