summaryrefslogtreecommitdiff
path: root/src/regress/lib
diff options
context:
space:
mode:
authorbluhm <>2020-11-09 23:18:51 +0000
committerbluhm <>2020-11-09 23:18:51 +0000
commitc369d42df84f5bdabcac9041e6c5680a0cbfeaf9 (patch)
tree2233f16128b2705882f46a8369c9f9f47f40af5c /src/regress/lib
parent999ec352efbeb24cccd1d584b91a659b15764151 (diff)
downloadopenbsd-c369d42df84f5bdabcac9041e6c5680a0cbfeaf9.tar.gz
openbsd-c369d42df84f5bdabcac9041e6c5680a0cbfeaf9.tar.bz2
openbsd-c369d42df84f5bdabcac9041e6c5680a0cbfeaf9.zip
Sync libc syscall tests with changes in upstream NetBSD. Use #ifdef
to document differences to NetBSD behaviour, this helps to track upstream. Mark currently failing test as expected failures. So test programs get compiled and executed, but it shows that further investigation is necceassry.
Diffstat (limited to 'src/regress/lib')
-rw-r--r--src/regress/lib/libc/sys/Makefile43
-rw-r--r--src/regress/lib/libc/sys/t_chroot.c14
-rw-r--r--src/regress/lib/libc/sys/t_dup.c27
-rw-r--r--src/regress/lib/libc/sys/t_fsync.c9
-rw-r--r--src/regress/lib/libc/sys/t_getgroups.c6
-rw-r--r--src/regress/lib/libc/sys/t_getitimer.c4
-rw-r--r--src/regress/lib/libc/sys/t_getrusage.c30
-rw-r--r--src/regress/lib/libc/sys/t_gettimeofday.c10
-rw-r--r--src/regress/lib/libc/sys/t_mknod.c22
-rw-r--r--src/regress/lib/libc/sys/t_mlock.c31
-rw-r--r--src/regress/lib/libc/sys/t_mmap.c17
-rw-r--r--src/regress/lib/libc/sys/t_msgget.c10
-rw-r--r--src/regress/lib/libc/sys/t_pipe.c10
-rw-r--r--src/regress/lib/libc/sys/t_pipe2.c30
-rw-r--r--src/regress/lib/libc/sys/t_poll.c179
-rw-r--r--src/regress/lib/libc/sys/t_ptrace.c6
-rw-r--r--src/regress/lib/libc/sys/t_revoke.c23
-rw-r--r--src/regress/lib/libc/sys/t_select.c12
-rw-r--r--src/regress/lib/libc/sys/t_stat.c6
-rw-r--r--src/regress/lib/libc/sys/t_write.c6
20 files changed, 212 insertions, 283 deletions
diff --git a/src/regress/lib/libc/sys/Makefile b/src/regress/lib/libc/sys/Makefile
index c22d08da74..db67e9078a 100644
--- a/src/regress/lib/libc/sys/Makefile
+++ b/src/regress/lib/libc/sys/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.5 2020/10/06 09:20:29 mpi Exp $ 1# $OpenBSD: Makefile,v 1.6 2020/11/09 23:18:51 bluhm 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>
@@ -26,24 +26,35 @@ REGRESS_TARGETS = ${PROGS:S/^/run-/}
26.endif 26.endif
27 27
28PROGS = 28PROGS =
29PROGS += t_access t_bind t_chroot t_clock_gettime t_dup t_fsync 29PROGS += t_access
30PROGS += t_bind
31PROGS += t_chroot t_clock_gettime
32PROGS += t_dup
33PROGS += t_fsync
30PROGS += t_getgroups t_getitimer t_getlogin t_getpid t_getrusage 34PROGS += t_getgroups t_getitimer t_getlogin t_getpid t_getrusage
31PROGS += t_getsid t_getsockname t_gettimeofday t_kill t_link t_listen 35PROGS += t_getsid t_getsockname t_gettimeofday
32PROGS += t_mkdir t_mknod t_msgctl t_msgget t_msgsnd t_msync t_pipe 36PROGS += t_kill
33PROGS += t_poll t_ptrace t_revoke t_select t_sendrecv t_setuid 37PROGS += t_link t_listen
34PROGS += t_socketpair t_sigaction t_truncate t_umask t_write 38PROGS += t_mkdir t_mkfifo t_mknod t_mlock t_mmap
39PROGS += t_msgctl t_msgget t_msgrcv t_msgsnd t_msync
40PROGS += t_pipe t_pipe2 t_poll t_ptrace
41PROGS += t_revoke
42PROGS += t_select t_sendrecv t_setuid t_socketpair t_sigaction t_stat
43PROGS += t_syscall
44PROGS += t_truncate
45PROGS += t_umask t_unlink
46PROGS += t_write
35 47
36# failing tests 48# failing tests
37.if 0 49REGRESS_EXPECTED_FAILURES =
38PROGS += t_mkfifo 50REGRESS_EXPECTED_FAILURES += run-t_mlock-4
39PROGS += t_mlock 51REGRESS_EXPECTED_FAILURES += run-t_mmap-1 run-t_mmap-3
40PROGS += t_mmap 52REGRESS_EXPECTED_FAILURES += run-t_msgrcv-3
41PROGS += t_msgrcv 53REGRESS_EXPECTED_FAILURES += run-t_pipe2-2
42PROGS += t_pipe2 54REGRESS_EXPECTED_FAILURES += run-t_stat-1 run-t_stat-4 run-t_stat-5
43PROGS += t_stat 55REGRESS_EXPECTED_FAILURES += run-t_stat-6 run-t_stat-8
44PROGS += t_syscall 56REGRESS_EXPECTED_FAILURES += run-t_syscall-1
45PROGS += t_unlink 57REGRESS_EXPECTED_FAILURES += run-t_unlink-2
46.endif
47 58
48. for p in ${PROGS} 59. for p in ${PROGS}
49SRCS_$p = $p.c atf-c.c 60SRCS_$p = $p.c atf-c.c
diff --git a/src/regress/lib/libc/sys/t_chroot.c b/src/regress/lib/libc/sys/t_chroot.c
index 1fbe392a88..b2bc16e49e 100644
--- a/src/regress/lib/libc/sys/t_chroot.c
+++ b/src/regress/lib/libc/sys/t_chroot.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_chroot.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_chroot.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_chroot.c,v 1.2 2017/01/10 22:36:29 christos Exp $ */ 2/* $NetBSD: t_chroot.c,v 1.2 2017/01/10 22:36:29 christos Exp $ */
3 3
4/*- 4/*-
@@ -310,12 +310,12 @@ ATF_TP_ADD_TCS(tp)
310 ATF_TP_ADD_TC(tp, chroot_basic); 310 ATF_TP_ADD_TC(tp, chroot_basic);
311 ATF_TP_ADD_TC(tp, chroot_err); 311 ATF_TP_ADD_TC(tp, chroot_err);
312 ATF_TP_ADD_TC(tp, chroot_perm); 312 ATF_TP_ADD_TC(tp, chroot_perm);
313/* 313#ifndef __OpenBSD__
314 * Not available on OpenBSD 314 /* fchroot(2) not available */
315 * ATF_TP_ADD_TC(tp, fchroot_basic); 315 ATF_TP_ADD_TC(tp, fchroot_basic);
316 * ATF_TP_ADD_TC(tp, fchroot_err); 316 ATF_TP_ADD_TC(tp, fchroot_err);
317 * ATF_TP_ADD_TC(tp, fchroot_perm); 317 ATF_TP_ADD_TC(tp, fchroot_perm);
318 */ 318#endif
319 319
320 return atf_no_error(); 320 return atf_no_error();
321} 321}
diff --git a/src/regress/lib/libc/sys/t_dup.c b/src/regress/lib/libc/sys/t_dup.c
index 4021a4f6e4..c998c228b4 100644
--- a/src/regress/lib/libc/sys/t_dup.c
+++ b/src/regress/lib/libc/sys/t_dup.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_dup.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_dup.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_dup.c,v 1.9 2017/01/13 20:31:53 christos Exp $ */ 2/* $NetBSD: t_dup.c,v 1.9 2017/01/13 20:31:53 christos Exp $ */
3 3
4/*- 4/*-
@@ -212,12 +212,18 @@ ATF_TC_BODY(dup3_err, tc)
212 ATF_REQUIRE(fd >= 0); 212 ATF_REQUIRE(fd >= 0);
213 213
214 errno = 0; 214 errno = 0;
215 /* Adjusted for OpenBSD, initially != -1 */ 215#ifdef __OpenBSD__
216 ATF_REQUIRE(dup3(fd, fd, O_CLOEXEC) == -1); 216 ATF_REQUIRE(dup3(fd, fd, O_CLOEXEC) == -1);
217#else
218 ATF_REQUIRE(dup3(fd, fd, O_CLOEXEC) != -1);
219#endif
217 220
218 errno = 0; 221 errno = 0;
219 /* Adjusted for OpenBSD, initially EBADF */ 222#ifdef __OpenBSD__
220 ATF_REQUIRE_ERRNO(EINVAL, dup3(-1, -1, O_CLOEXEC) == -1); 223 ATF_REQUIRE_ERRNO(EINVAL, dup3(-1, -1, O_CLOEXEC) == -1);
224#else
225 ATF_REQUIRE_ERRNO(EBADF, dup3(-1, -1, O_CLOEXEC) == -1);
226#endif
221 227
222 errno = 0; 228 errno = 0;
223 ATF_REQUIRE_ERRNO(EBADF, dup3(fd, -1, O_CLOEXEC) == -1); 229 ATF_REQUIRE_ERRNO(EBADF, dup3(fd, -1, O_CLOEXEC) == -1);
@@ -302,8 +308,11 @@ ATF_TC_BODY(dup_max, tc)
302 * reached. Ater that dup(2) family 308 * reached. Ater that dup(2) family
303 * should fail with EMFILE. 309 * should fail with EMFILE.
304 */ 310 */
305 /* Adjusted for OpenBSD, initially 0 */ 311#ifdef __OpenBSD__
306 (void)closefrom(STDERR_FILENO + 1); 312 (void)closefrom(STDERR_FILENO + 1);
313#else
314 (void)closefrom(0);
315#endif
307 (void)memset(&res, 0, sizeof(struct rlimit)); 316 (void)memset(&res, 0, sizeof(struct rlimit));
308 317
309 n = 10; 318 n = 10;
@@ -316,14 +325,20 @@ ATF_TC_BODY(dup_max, tc)
316 if (buf == NULL) 325 if (buf == NULL)
317 _exit(EX_OSERR); 326 _exit(EX_OSERR);
318 327
319 /* Adjusted for OpenBSD, initially mkstemp(path) */ 328#ifdef __OpenBSD__
320 buf[0] = open(path, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR); 329 buf[0] = open(path, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR);
330#else
331 buf[0] = mkstemp(path);
332#endif
321 333
322 if (buf[0] < 0) 334 if (buf[0] < 0)
323 _exit(EX_OSERR); 335 _exit(EX_OSERR);
324 336
325 /* Adjusted for OpenBSD, initially i < n */ 337#ifdef __OpenBSD__
326 for (i = 1; i < n - (STDERR_FILENO + 1); i++) { 338 for (i = 1; i < n - (STDERR_FILENO + 1); i++) {
339#else
340 for (i = 1; i < n; i++) {
341#endif
327 342
328 buf[i] = open(path, O_RDONLY); 343 buf[i] = open(path, O_RDONLY);
329 344
diff --git a/src/regress/lib/libc/sys/t_fsync.c b/src/regress/lib/libc/sys/t_fsync.c
index c6f24c0e85..bc3cd7939b 100644
--- a/src/regress/lib/libc/sys/t_fsync.c
+++ b/src/regress/lib/libc/sys/t_fsync.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_fsync.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_fsync.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_fsync.c,v 1.2 2012/03/18 07:00:52 jruoho Exp $ */ 2/* $NetBSD: t_fsync.c,v 1.2 2012/03/18 07:00:52 jruoho Exp $ */
3 3
4/*- 4/*-
@@ -103,8 +103,11 @@ ATF_TC_BODY(fsync_sync, tc)
103 103
104 (void)snprintf(buf, sizeof(buf), "t_fsync-%d", i); 104 (void)snprintf(buf, sizeof(buf), "t_fsync-%d", i);
105 105
106 /* Adjusted for OpenBSD, initially mkstemp(buf) */ 106#ifdef __OpenBSD__
107 fd = open(buf, O_CREAT|O_EXCL|O_RDWR, 0600); 107 fd = open(buf, O_CREAT|O_EXCL|O_RDWR, 0600);
108#else
109 fd = mkstemp(buf);
110#endif
108 111
109 ATF_REQUIRE(fd != -1); 112 ATF_REQUIRE(fd != -1);
110 ATF_REQUIRE(write(fd, "0", 1) == 1); 113 ATF_REQUIRE(write(fd, "0", 1) == 1);
diff --git a/src/regress/lib/libc/sys/t_getgroups.c b/src/regress/lib/libc/sys/t_getgroups.c
index dcef3c16f5..5cecd3031f 100644
--- a/src/regress/lib/libc/sys/t_getgroups.c
+++ b/src/regress/lib/libc/sys/t_getgroups.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_getgroups.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_getgroups.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_getgroups.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */ 2/* $NetBSD: t_getgroups.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */
3 3
4/*- 4/*-
@@ -56,7 +56,11 @@ ATF_TC_BODY(getgroups_err, tc)
56 56
57 errno = 0; 57 errno = 0;
58 58
59#if __OpenBSD__
59 ATF_REQUIRE(getgroups(NGROUPS_MAX, (gid_t *)-1) == -1); 60 ATF_REQUIRE(getgroups(NGROUPS_MAX, (gid_t *)-1) == -1);
61#else
62 ATF_REQUIRE(getgroups(10, (gid_t *)-1) == -1);
63#endif
60 ATF_REQUIRE(errno == EFAULT); 64 ATF_REQUIRE(errno == EFAULT);
61 65
62 errno = 0; 66 errno = 0;
diff --git a/src/regress/lib/libc/sys/t_getitimer.c b/src/regress/lib/libc/sys/t_getitimer.c
index fbf9c28ccc..9e5bd792ed 100644
--- a/src/regress/lib/libc/sys/t_getitimer.c
+++ b/src/regress/lib/libc/sys/t_getitimer.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_getitimer.c,v 1.2 2019/11/22 15:59:53 bluhm Exp $ */ 1/* $OpenBSD: t_getitimer.c,v 1.3 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_getitimer.c,v 1.3 2019/07/13 12:44:02 gson Exp $ */ 2/* $NetBSD: t_getitimer.c,v 1.3 2019/07/13 12:44:02 gson Exp $ */
3 3
4/*- 4/*-
@@ -33,7 +33,7 @@
33#include "macros.h" 33#include "macros.h"
34 34
35#include <sys/cdefs.h> 35#include <sys/cdefs.h>
36__RCSID("$NetBSD: t_getitimer.c,v 1.2 2012/03/22 18:20:46 christos Exp $"); 36__RCSID("$NetBSD: t_getitimer.c,v 1.3 2019/07/13 12:44:02 gson Exp $");
37 37
38#include <sys/time.h> 38#include <sys/time.h>
39 39
diff --git a/src/regress/lib/libc/sys/t_getrusage.c b/src/regress/lib/libc/sys/t_getrusage.c
index 481d73431b..316377f8ce 100644
--- a/src/regress/lib/libc/sys/t_getrusage.c
+++ b/src/regress/lib/libc/sys/t_getrusage.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_getrusage.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_getrusage.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_getrusage.c,v 1.8 2018/05/09 08:45:03 mrg Exp $ */ 2/* $NetBSD: t_getrusage.c,v 1.8 2018/05/09 08:45:03 mrg Exp $ */
3 3
4/*- 4/*-
@@ -208,6 +208,9 @@ ATF_TC_BODY(getrusage_utime_back, tc)
208 /* 208 /*
209 * Test that two consecutive calls are sane. 209 * Test that two consecutive calls are sane.
210 */ 210 */
211#ifndef __OpenBSD__
212 atf_tc_expect_fail("PR kern/30115");
213#endif
211 214
212 for (i = 0; i < maxiter; i++) { 215 for (i = 0; i < maxiter; i++) {
213 216
@@ -225,6 +228,10 @@ ATF_TC_BODY(getrusage_utime_back, tc)
225 if (timercmp(&ru2.ru_utime, &ru1.ru_utime, <) != 0) 228 if (timercmp(&ru2.ru_utime, &ru1.ru_utime, <) != 0)
226 atf_tc_fail("user time went backwards"); 229 atf_tc_fail("user time went backwards");
227 } 230 }
231
232#ifndef __OpenBSD__
233 atf_tc_fail("anticipated error did not occur");
234#endif
228} 235}
229 236
230ATF_TC(getrusage_utime_zero); 237ATF_TC(getrusage_utime_zero);
@@ -241,18 +248,31 @@ ATF_TC_BODY(getrusage_utime_zero, tc)
241 /* 248 /*
242 * Test that getrusage(2) does not return 249 * Test that getrusage(2) does not return
243 * zero user time for the calling process. 250 * zero user time for the calling process.
251 *
252 * See also (duplicate) PR port-amd64/41734.
244 */ 253 */
254#ifndef __OpenBSD__
255 atf_tc_expect_fail("PR kern/30115");
256#endif
245 257
246 for (i = 0; i < maxiter; i++) { 258 for (i = 0; i < maxiter; i++) {
259
247 work(); 260 work();
261#ifdef __OpenBSD__
248 } 262 }
263#endif
249 264
250 (void)memset(&ru, 0, sizeof(struct rusage)); 265 (void)memset(&ru, 0, sizeof(struct rusage));
251 266
252 ATF_REQUIRE(getrusage(RUSAGE_SELF, &ru) == 0); 267 ATF_REQUIRE(getrusage(RUSAGE_SELF, &ru) == 0);
253 268
254 if (ru.ru_utime.tv_sec == 0 && ru.ru_utime.tv_usec == 0) 269 if (ru.ru_utime.tv_sec == 0 && ru.ru_utime.tv_usec == 0)
255 atf_tc_fail("zero user time from getrusage(2)"); 270 atf_tc_fail("zero user time from getrusage(2)");
271#ifndef __OpenBSD__
272 }
273
274 atf_tc_fail("anticipated error did not occur");
275#endif
256} 276}
257 277
258ATF_TP_ADD_TCS(tp) 278ATF_TP_ADD_TCS(tp)
diff --git a/src/regress/lib/libc/sys/t_gettimeofday.c b/src/regress/lib/libc/sys/t_gettimeofday.c
index ec4a72c63e..bb716ffdcc 100644
--- a/src/regress/lib/libc/sys/t_gettimeofday.c
+++ b/src/regress/lib/libc/sys/t_gettimeofday.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_gettimeofday.c,v 1.2 2020/10/21 16:26:28 kettenis Exp $ */ 1/* $OpenBSD: t_gettimeofday.c,v 1.3 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_gettimeofday.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */ 2/* $NetBSD: t_gettimeofday.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $ */
3 3
4/*- 4/*-
@@ -41,6 +41,7 @@ __RCSID("$NetBSD: t_gettimeofday.c,v 1.1 2011/07/07 06:57:53 jruoho Exp $");
41#include <errno.h> 41#include <errno.h>
42#include <string.h> 42#include <string.h>
43 43
44#ifdef __OpenBSD__
44static void sighandler(int); 45static void sighandler(int);
45 46
46static void 47static void
@@ -48,6 +49,7 @@ sighandler(int signo)
48{ 49{
49 _exit(0); 50 _exit(0);
50} 51}
52#endif
51 53
52ATF_TC(gettimeofday_err); 54ATF_TC(gettimeofday_err);
53ATF_TC_HEAD(gettimeofday_err, tc) 55ATF_TC_HEAD(gettimeofday_err, tc)
@@ -58,14 +60,16 @@ ATF_TC_HEAD(gettimeofday_err, tc)
58ATF_TC_BODY(gettimeofday_err, tc) 60ATF_TC_BODY(gettimeofday_err, tc)
59{ 61{
60 62
63#ifdef __OpenBSD__
61 /* 64 /*
62 * With userland timecounters we will generate SIGSEGV instead 65 * With userland timecounters we will generate SIGSEGV instead
63 * of failing with errno so to EFAULT. POSIX explicitly 66 * of failing with errno set to EFAULT. POSIX explicitly
64 * allows this behaviour. 67 * allows this behaviour.
65 */ 68 */
66 ATF_REQUIRE(signal(SIGSEGV, sighandler) != SIG_ERR); 69 ATF_REQUIRE(signal(SIGSEGV, sighandler) != SIG_ERR);
67 70#endif
68 errno = 0; 71 errno = 0;
72
69 ATF_REQUIRE_ERRNO(EFAULT, gettimeofday((void *)-1, NULL) != 0); 73 ATF_REQUIRE_ERRNO(EFAULT, gettimeofday((void *)-1, NULL) != 0);
70} 74}
71 75
diff --git a/src/regress/lib/libc/sys/t_mknod.c b/src/regress/lib/libc/sys/t_mknod.c
index 0a16124859..b1e412cb68 100644
--- a/src/regress/lib/libc/sys/t_mknod.c
+++ b/src/regress/lib/libc/sys/t_mknod.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_mknod.c,v 1.1.1.1 2019/11/19 19:57:03 bluhm Exp $ */ 1/* $OpenBSD: t_mknod.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_mknod.c,v 1.2 2012/03/18 07:00:52 jruoho Exp $ */ 2/* $NetBSD: t_mknod.c,v 1.2 2012/03/18 07:00:52 jruoho Exp $ */
3 3
4/*- 4/*-
@@ -170,16 +170,16 @@ ATF_TC_BODY(mknod_stat, tc)
170 170
171 (void)memset(&st, 0, sizeof(struct stat)); 171 (void)memset(&st, 0, sizeof(struct stat));
172 172
173 /* 173#ifndef __OpenBSD__
174 * Adjusted for OpenBSD, only supports FIFO and device special files 174 /* OpenBSD only supports FIFO and device special files */
175 * ATF_REQUIRE(mknod(path, S_IFREG, 0) == 0); 175 ATF_REQUIRE(mknod(path, S_IFREG, 0) == 0);
176 * ATF_REQUIRE(stat(path, &st) == 0); 176 ATF_REQUIRE(stat(path, &st) == 0);
177 * 177
178 * if (S_ISREG(st.st_mode) == 0) 178 if (S_ISREG(st.st_mode) == 0)
179 * atf_tc_fail_nonfatal("invalid mode from mknod(2) (S_IFREG)"); 179 atf_tc_fail_nonfatal("invalid mode from mknod(2) (S_IFREG)");
180 * 180
181 * ATF_REQUIRE(unlink(path) == 0); 181 ATF_REQUIRE(unlink(path) == 0);
182 */ 182#endif
183} 183}
184 184
185ATF_TC_CLEANUP(mknod_stat, tc) 185ATF_TC_CLEANUP(mknod_stat, tc)
diff --git a/src/regress/lib/libc/sys/t_mlock.c b/src/regress/lib/libc/sys/t_mlock.c
index 1fd986383d..e41f52443c 100644
--- a/src/regress/lib/libc/sys/t_mlock.c
+++ b/src/regress/lib/libc/sys/t_mlock.c
@@ -1,5 +1,5 @@
1/* $OpenBSD: t_mlock.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_mlock.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_mlock.c,v 1.7 2019/03/13 08:50:12 kre Exp $ */ 2/* $NetBSD: t_mlock.c,v 1.8 2020/01/24 08:45:16 skrll Exp $ */
3 3
4/*- 4/*-
5 * Copyright (c) 2012 The NetBSD Foundation, Inc. 5 * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
33#include "macros.h" 33#include "macros.h"
34 34
35#include <sys/cdefs.h> 35#include <sys/cdefs.h>
36__RCSID("$NetBSD: t_mlock.c,v 1.7 2019/03/13 08:50:12 kre Exp $"); 36__RCSID("$NetBSD: t_mlock.c,v 1.8 2020/01/24 08:45:16 skrll Exp $");
37 37
38#include <sys/mman.h> 38#include <sys/mman.h>
39#include <sys/resource.h> 39#include <sys/resource.h>
@@ -108,8 +108,11 @@ ATF_TC_BODY(mlock_err, tc)
108 ATF_REQUIRE_ERRNO(ENOMEM, mlock((char *)0, page) == -1); 108 ATF_REQUIRE_ERRNO(ENOMEM, mlock((char *)0, page) == -1);
109 109
110 errno = 0; 110 errno = 0;
111 /* Adjusted for OpenBSD, initially ENOMEM */ 111#ifdef __OpenBSD__
112 ATF_REQUIRE_ERRNO(EINVAL, mlock((char *)-1, page) == -1); 112 ATF_REQUIRE_ERRNO(EINVAL, mlock((char *)-1, page) == -1);
113#else
114 ATF_REQUIRE_ERRNO(ENOMEM, mlock((char *)-1, page) == -1);
115#endif
113 116
114 errno = 0; 117 errno = 0;
115 ATF_REQUIRE_ERRNO(ENOMEM, munlock(NULL, page) == -1); 118 ATF_REQUIRE_ERRNO(ENOMEM, munlock(NULL, page) == -1);
@@ -118,8 +121,11 @@ ATF_TC_BODY(mlock_err, tc)
118 ATF_REQUIRE_ERRNO(ENOMEM, munlock((char *)0, page) == -1); 121 ATF_REQUIRE_ERRNO(ENOMEM, munlock((char *)0, page) == -1);
119 122
120 errno = 0; 123 errno = 0;
121 /* Adjusted for OpenBSD, initially ENOMEM */ 124#ifdef __OpenBSD__
122 ATF_REQUIRE_ERRNO(EINVAL, munlock((char *)-1, page) == -1); 125 ATF_REQUIRE_ERRNO(EINVAL, munlock((char *)-1, page) == -1);
126#else
127 ATF_REQUIRE_ERRNO(ENOMEM, munlock((char *)-1, page) == -1);
128#endif
123 129
124 buf = malloc(page); 130 buf = malloc(page);
125 ATF_REQUIRE(buf != NULL); 131 ATF_REQUIRE(buf != NULL);
@@ -129,11 +135,10 @@ ATF_TC_BODY(mlock_err, tc)
129 * unlocking memory that is not locked is an error... 135 * unlocking memory that is not locked is an error...
130 */ 136 */
131 137
132 /* 138#ifndef __OpenBSD__
133 * Adjusted for OpenBSD 139 errno = 0;
134 * errno = 0; 140 ATF_REQUIRE_ERRNO(ENOMEM, munlock(buf, page) == -1);
135 * ATF_REQUIRE_ERRNO(ENOMEM, munlock(buf, page) == -1); 141#endif
136 */
137 142
138 /* 143 /*
139 * These are permitted to fail (EINVAL) but do not on NetBSD 144 * These are permitted to fail (EINVAL) but do not on NetBSD
@@ -229,8 +234,11 @@ ATF_TC_HEAD(mlock_mmap, tc)
229 234
230ATF_TC_BODY(mlock_mmap, tc) 235ATF_TC_BODY(mlock_mmap, tc)
231{ 236{
232 /* Adjusted for OpenBSD, initially ... | MAP_WIRED */ 237#ifdef __OpenBSD__
233 static const int flags = MAP_ANON | MAP_PRIVATE; 238 static const int flags = MAP_ANON | MAP_PRIVATE;
239#else
240 static const int flags = MAP_ANON | MAP_PRIVATE | MAP_WIRED;
241#endif
234 void *buf; 242 void *buf;
235 243
236 /* 244 /*
@@ -312,7 +320,6 @@ ATF_TP_ADD_TCS(tp)
312{ 320{
313 321
314 page = sysconf(_SC_PAGESIZE); 322 page = sysconf(_SC_PAGESIZE);
315 fprintf(stderr, "t_mlock: pagesize %ld\n", page);
316 ATF_REQUIRE(page >= 0); 323 ATF_REQUIRE(page >= 0);
317 324
318 ATF_TP_ADD_TC(tp, mlock_clip); 325 ATF_TP_ADD_TC(tp, mlock_clip);
diff --git a/src/regress/lib/libc/sys/t_mmap.c b/src/regress/lib/libc/sys/t_mmap.c
index 6dbfae5bb1..9da88fa9cc 100644
--- a/src/regress/lib/libc/sys/t_mmap.c
+++ b/src/regress/lib/libc/sys/t_mmap.c
@@ -1,5 +1,5 @@
1/* $OpenBSD: t_mmap.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_mmap.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_mmap.c,v 1.13 2017/05/23 13:04:29 christos Exp $ */ 2/* $NetBSD: t_mmap.c,v 1.14 2020/06/26 07:50:11 jruoho Exp $ */
3 3
4/*- 4/*-
5 * Copyright (c) 2011 The NetBSD Foundation, Inc. 5 * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
59#include "macros.h" 59#include "macros.h"
60 60
61#include <sys/cdefs.h> 61#include <sys/cdefs.h>
62__RCSID("$NetBSD: t_mmap.c,v 1.13 2017/05/23 13:04:29 christos Exp $"); 62__RCSID("$NetBSD: t_mmap.c,v 1.14 2020/06/26 07:50:11 jruoho Exp $");
63 63
64#include <sys/param.h> 64#include <sys/param.h>
65#include <sys/disklabel.h> 65#include <sys/disklabel.h>
@@ -175,7 +175,8 @@ ATF_TC_BODY(mmap_block, tc)
175 size_t len; 175 size_t len;
176 int fd = -1; 176 int fd = -1;
177 177
178 atf_tc_skip("The test case causes a panic (PR kern/38889, kern/46592)"); 178 atf_tc_skip("The test case causes a panic " \
179 "(PR kern/38889, PR kern/46592)");
179 180
180 ATF_REQUIRE(sysctl(mib, miblen, NULL, &len, NULL, 0) == 0); 181 ATF_REQUIRE(sysctl(mib, miblen, NULL, &len, NULL, 0) == 0);
181 drives = malloc(len); 182 drives = malloc(len);
@@ -575,10 +576,10 @@ ATF_TP_ADD_TCS(tp)
575 ATF_TP_ADD_TC(tp, mmap_prot_3); 576 ATF_TP_ADD_TC(tp, mmap_prot_3);
576 ATF_TP_ADD_TC(tp, mmap_truncate); 577 ATF_TP_ADD_TC(tp, mmap_truncate);
577 ATF_TP_ADD_TC(tp, mmap_truncate_signal); 578 ATF_TP_ADD_TC(tp, mmap_truncate_signal);
578 /* 579#ifndef __OpenBSD__
579 * Adjusted for OpenBSD, not available 580 /* sysctl vm.user_va0_disable not available */
580 * ATF_TP_ADD_TC(tp, mmap_va0); 581 ATF_TP_ADD_TC(tp, mmap_va0);
581 */ 582#endif
582 583
583 return atf_no_error(); 584 return atf_no_error();
584} 585}
diff --git a/src/regress/lib/libc/sys/t_msgget.c b/src/regress/lib/libc/sys/t_msgget.c
index 2a9bb4cf3b..c5b7d97e15 100644
--- a/src/regress/lib/libc/sys/t_msgget.c
+++ b/src/regress/lib/libc/sys/t_msgget.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_msgget.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_msgget.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_msgget.c,v 1.3 2017/10/08 08:31:05 kre Exp $ */ 2/* $NetBSD: t_msgget.c,v 1.3 2017/10/08 08:31:05 kre Exp $ */
3 3
4/*- 4/*-
@@ -328,10 +328,10 @@ ATF_TP_ADD_TCS(tp)
328 ATF_TP_ADD_TC(tp, msgget_excl); 328 ATF_TP_ADD_TC(tp, msgget_excl);
329 ATF_TP_ADD_TC(tp, msgget_exit); 329 ATF_TP_ADD_TC(tp, msgget_exit);
330 ATF_TP_ADD_TC(tp, msgget_init); 330 ATF_TP_ADD_TC(tp, msgget_init);
331 /* 331#ifndef __OpenBSD__
332 * Adjusted for OpenBSD, not available 332 /* sysctl kern.ipc.msgmni not available */
333 * ATF_TP_ADD_TC(tp, msgget_limit); 333 ATF_TP_ADD_TC(tp, msgget_limit);
334 */ 334#endif
335 ATF_TP_ADD_TC(tp, msgget_mode); 335 ATF_TP_ADD_TC(tp, msgget_mode);
336 } 336 }
337 337
diff --git a/src/regress/lib/libc/sys/t_pipe.c b/src/regress/lib/libc/sys/t_pipe.c
index bd9805a4b9..2fcb6d4b13 100644
--- a/src/regress/lib/libc/sys/t_pipe.c
+++ b/src/regress/lib/libc/sys/t_pipe.c
@@ -1,5 +1,5 @@
1/* $OpenBSD: t_pipe.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_pipe.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_pipe.c,v 1.5 2017/01/13 21:30:41 christos Exp $ */ 2/* $NetBSD: t_pipe.c,v 1.7 2020/06/26 07:50:11 jruoho Exp $ */
3 3
4/*- 4/*-
5 * Copyright (c) 2001, 2008 The NetBSD Foundation, Inc. 5 * Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
33#include <sys/cdefs.h> 33#include <sys/cdefs.h>
34__COPYRIGHT("@(#) Copyright (c) 2008\ 34__COPYRIGHT("@(#) Copyright (c) 2008\
35 The NetBSD Foundation, inc. All rights reserved."); 35 The NetBSD Foundation, inc. All rights reserved.");
36__RCSID("$NetBSD: t_pipe.c,v 1.5 2017/01/13 21:30:41 christos Exp $"); 36__RCSID("$NetBSD: t_pipe.c,v 1.7 2020/06/26 07:50:11 jruoho Exp $");
37 37
38#include <sys/types.h> 38#include <sys/types.h>
39#include <sys/wait.h> 39#include <sys/wait.h>
@@ -74,7 +74,7 @@ ATF_TC_HEAD(pipe_restart, tc)
74{ 74{
75 atf_tc_set_md_var(tc, "descr", "Checks that writing to pipe " 75 atf_tc_set_md_var(tc, "descr", "Checks that writing to pipe "
76 "works correctly after being interrupted and restarted " 76 "works correctly after being interrupted and restarted "
77 "(kern/14087)"); 77 "(PR kern/14087)");
78} 78}
79 79
80ATF_TC_BODY(pipe_restart, tc) 80ATF_TC_BODY(pipe_restart, tc)
@@ -103,7 +103,7 @@ ATF_TC_BODY(pipe_restart, tc)
103 /* child */ 103 /* child */
104 RL(close(pp[1])); 104 RL(close(pp[1]));
105 105
106 /* Do inital write. This should succeed, make 106 /* Do initial write. This should succeed, make
107 * the other side do partial write and wait for us to pick 107 * the other side do partial write and wait for us to pick
108 * rest up. 108 * rest up.
109 */ 109 */
diff --git a/src/regress/lib/libc/sys/t_pipe2.c b/src/regress/lib/libc/sys/t_pipe2.c
index 4964be14ce..07991de455 100644
--- a/src/regress/lib/libc/sys/t_pipe2.c
+++ b/src/regress/lib/libc/sys/t_pipe2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_pipe2.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_pipe2.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_pipe2.c,v 1.9 2017/01/13 21:19:45 christos Exp $ */ 2/* $NetBSD: t_pipe2.c,v 1.9 2017/01/13 21:19:45 christos Exp $ */
3 3
4/*- 4/*-
@@ -81,16 +81,16 @@ run(int flags)
81 ATF_REQUIRE((fcntl(fd[1], F_GETFL) & O_NONBLOCK) == 0); 81 ATF_REQUIRE((fcntl(fd[1], F_GETFL) & O_NONBLOCK) == 0);
82 } 82 }
83 83
84 /* 84#ifndef __OpenBSD__
85 * Adjusted for OpenBSD, not available 85 /* F_GETNOSIGPIPE not available */
86 * if (flags & O_NOSIGPIPE) { 86 if (flags & O_NOSIGPIPE) {
87 * ATF_REQUIRE(fcntl(fd[0], F_GETNOSIGPIPE) != 0); 87 ATF_REQUIRE(fcntl(fd[0], F_GETNOSIGPIPE) != 0);
88 * ATF_REQUIRE(fcntl(fd[1], F_GETNOSIGPIPE) != 0); 88 ATF_REQUIRE(fcntl(fd[1], F_GETNOSIGPIPE) != 0);
89 *} else { 89 } else {
90 * ATF_REQUIRE(fcntl(fd[0], F_GETNOSIGPIPE) == 0); 90 ATF_REQUIRE(fcntl(fd[0], F_GETNOSIGPIPE) == 0);
91 * ATF_REQUIRE(fcntl(fd[1], F_GETNOSIGPIPE) == 0); 91 ATF_REQUIRE(fcntl(fd[1], F_GETNOSIGPIPE) == 0);
92 *} 92 }
93 */ 93#endif
94 94
95 ATF_REQUIRE(close(fd[0]) != -1); 95 ATF_REQUIRE(close(fd[0]) != -1);
96 ATF_REQUIRE(close(fd[1]) != -1); 96 ATF_REQUIRE(close(fd[1]) != -1);
@@ -193,10 +193,10 @@ ATF_TP_ADD_TCS(tp)
193 ATF_TP_ADD_TC(tp, pipe2_consume); 193 ATF_TP_ADD_TC(tp, pipe2_consume);
194 ATF_TP_ADD_TC(tp, pipe2_nonblock); 194 ATF_TP_ADD_TC(tp, pipe2_nonblock);
195 ATF_TP_ADD_TC(tp, pipe2_cloexec); 195 ATF_TP_ADD_TC(tp, pipe2_cloexec);
196 /* 196#ifndef __OpenBSD__
197 * Adjusted for OpenBSD, not available 197 /* O_NOSIGPIPE not available */
198 * ATF_TP_ADD_TC(tp, pipe2_nosigpipe); 198 ATF_TP_ADD_TC(tp, pipe2_nosigpipe);
199 */ 199#endif
200 ATF_TP_ADD_TC(tp, pipe2_einval); 200 ATF_TP_ADD_TC(tp, pipe2_einval);
201 201
202 return atf_no_error(); 202 return atf_no_error();
diff --git a/src/regress/lib/libc/sys/t_poll.c b/src/regress/lib/libc/sys/t_poll.c
index bbb8dc2d14..d27fbf159f 100644
--- a/src/regress/lib/libc/sys/t_poll.c
+++ b/src/regress/lib/libc/sys/t_poll.c
@@ -1,5 +1,5 @@
1/* $OpenBSD: t_poll.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_poll.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_poll.c,v 1.3 2012/03/18 07:00:52 jruoho Exp $ */ 2/* $NetBSD: t_poll.c,v 1.4 2020/07/17 15:34:16 kamil Exp $ */
3 3
4/*- 4/*-
5 * Copyright (c) 2011 The NetBSD Foundation, Inc. 5 * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -85,8 +85,8 @@ child3(void)
85 (void)printf("child3 exit\n"); 85 (void)printf("child3 exit\n");
86} 86}
87 87
88ATF_TC(poll_3way); 88ATF_TC(3way);
89ATF_TC_HEAD(poll_3way, tc) 89ATF_TC_HEAD(3way, tc)
90{ 90{
91 atf_tc_set_md_var(tc, "timeout", "15"); 91 atf_tc_set_md_var(tc, "timeout", "15");
92 atf_tc_set_md_var(tc, "descr", 92 atf_tc_set_md_var(tc, "descr",
@@ -97,7 +97,7 @@ ATF_TC_HEAD(poll_3way, tc)
97 "both be awaken. (kern/17517)"); 97 "both be awaken. (kern/17517)");
98} 98}
99 99
100ATF_TC_BODY(poll_3way, tc) 100ATF_TC_BODY(3way, tc)
101{ 101{
102 int pf[2]; 102 int pf[2];
103 int status, i; 103 int status, i;
@@ -148,15 +148,15 @@ ATF_TC_BODY(poll_3way, tc)
148 (void)printf("parent terminated\n"); 148 (void)printf("parent terminated\n");
149} 149}
150 150
151ATF_TC(poll_basic); 151ATF_TC(basic);
152ATF_TC_HEAD(poll_basic, tc) 152ATF_TC_HEAD(basic, tc)
153{ 153{
154 atf_tc_set_md_var(tc, "timeout", "10"); 154 atf_tc_set_md_var(tc, "timeout", "10");
155 atf_tc_set_md_var(tc, "descr", 155 atf_tc_set_md_var(tc, "descr",
156 "Basis functionality test for poll(2)"); 156 "Basis functionality test for poll(2)");
157} 157}
158 158
159ATF_TC_BODY(poll_basic, tc) 159ATF_TC_BODY(basic, tc)
160{ 160{
161 int fds[2]; 161 int fds[2];
162 struct pollfd pfds[2]; 162 struct pollfd pfds[2];
@@ -215,13 +215,13 @@ ATF_TC_BODY(poll_basic, tc)
215 ATF_REQUIRE_EQ(close(fds[1]), 0); 215 ATF_REQUIRE_EQ(close(fds[1]), 0);
216} 216}
217 217
218ATF_TC(poll_err); 218ATF_TC(err);
219ATF_TC_HEAD(poll_err, tc) 219ATF_TC_HEAD(err, tc)
220{ 220{
221 atf_tc_set_md_var(tc, "descr", "Check errors from poll(2)"); 221 atf_tc_set_md_var(tc, "descr", "Check errors from poll(2)");
222} 222}
223 223
224ATF_TC_BODY(poll_err, tc) 224ATF_TC_BODY(err, tc)
225{ 225{
226 struct pollfd pfd; 226 struct pollfd pfd;
227 int fd = 0; 227 int fd = 0;
@@ -236,163 +236,12 @@ ATF_TC_BODY(poll_err, tc)
236 ATF_REQUIRE_ERRNO(EINVAL, poll(&pfd, 1, -2) == -1); 236 ATF_REQUIRE_ERRNO(EINVAL, poll(&pfd, 1, -2) == -1);
237} 237}
238 238
239ATF_TC(pollts_basic);
240ATF_TC_HEAD(pollts_basic, tc)
241{
242 atf_tc_set_md_var(tc, "timeout", "10");
243 atf_tc_set_md_var(tc, "descr",
244 "Basis functionality test for pollts(2)");
245}
246
247ATF_TC_BODY(pollts_basic, tc)
248{
249 int fds[2];
250 struct pollfd pfds[2];
251 struct timespec timeout;
252 int ret;
253
254 ATF_REQUIRE_EQ(pipe(fds), 0);
255
256 pfds[0].fd = fds[0];
257 pfds[0].events = POLLIN;
258 pfds[1].fd = fds[1];
259 pfds[1].events = POLLOUT;
260
261 /* Use a timeout of 1 second. */
262 timeout.tv_sec = 1;
263 timeout.tv_nsec = 0;
264
265 /*
266 * Check that we get a timeout waiting for data on the read end
267 * of our pipe.
268 */
269 pfds[0].revents = -1;
270 pfds[1].revents = -1;
271 ATF_REQUIRE_EQ_MSG(ret = pollts(&pfds[0], 1, &timeout, NULL), 0,
272 "got: %d", ret);
273 ATF_REQUIRE_EQ_MSG(pfds[0].revents, 0, "got: %d", pfds[0].revents);
274 ATF_REQUIRE_EQ_MSG(pfds[1].revents, -1, "got: %d", pfds[1].revents);
275
276 /* Check that the write end of the pipe as reported as ready. */
277 pfds[0].revents = -1;
278 pfds[1].revents = -1;
279 ATF_REQUIRE_EQ_MSG(ret = pollts(&pfds[1], 1, &timeout, NULL), 1,
280 "got: %d", ret);
281 ATF_REQUIRE_EQ_MSG(pfds[0].revents, -1, "got: %d", pfds[0].revents);
282 ATF_REQUIRE_EQ_MSG(pfds[1].revents, POLLOUT, "got: %d",\
283 pfds[1].revents);
284
285 /* Check that only the write end of the pipe as reported as ready. */
286 pfds[0].revents = -1;
287 pfds[1].revents = -1;
288 ATF_REQUIRE_EQ_MSG(ret = pollts(pfds, 2, &timeout, NULL), 1,
289 "got: %d", ret);
290 ATF_REQUIRE_EQ_MSG(pfds[0].revents, 0, "got: %d", pfds[0].revents);
291 ATF_REQUIRE_EQ_MSG(pfds[1].revents, POLLOUT, "got: %d",
292 pfds[1].revents);
293
294 /* Write data to our pipe. */
295 ATF_REQUIRE_EQ(write(fds[1], "", 1), 1);
296
297 /* Check that both ends of our pipe are reported as ready. */
298 pfds[0].revents = -1;
299 pfds[1].revents = -1;
300 ATF_REQUIRE_EQ_MSG(ret = pollts(pfds, 2, &timeout, NULL), 2,
301 "got: %d", ret);
302 ATF_REQUIRE_EQ_MSG(pfds[0].revents, POLLIN, "got: %d",
303 pfds[0].revents);
304 ATF_REQUIRE_EQ_MSG(pfds[1].revents, POLLOUT, "got: %d",
305 pfds[1].revents);
306
307 ATF_REQUIRE_EQ(close(fds[0]), 0);
308 ATF_REQUIRE_EQ(close(fds[1]), 0);
309}
310
311ATF_TC(pollts_err);
312ATF_TC_HEAD(pollts_err, tc)
313{
314 atf_tc_set_md_var(tc, "descr", "Check errors from pollts(2)");
315}
316
317ATF_TC_BODY(pollts_err, tc)
318{
319 struct timespec timeout;
320 struct pollfd pfd;
321 int fd = 0;
322
323 pfd.fd = fd;
324 pfd.events = POLLIN;
325
326 timeout.tv_sec = 1;
327 timeout.tv_nsec = 0;
328
329 errno = 0;
330 ATF_REQUIRE_ERRNO(EFAULT, pollts((void *)-1, 1, &timeout, NULL) == -1);
331
332 timeout.tv_sec = -1;
333 timeout.tv_nsec = -1;
334
335 errno = 0;
336 ATF_REQUIRE_ERRNO(EINVAL, pollts(&pfd, 1, &timeout, NULL) == -1);
337}
338
339ATF_TC(pollts_sigmask);
340ATF_TC_HEAD(pollts_sigmask, tc)
341{
342 atf_tc_set_md_var(tc, "timeout", "10");
343 atf_tc_set_md_var(tc, "descr",
344 "Check that pollts(2) restores the signal mask (PR kern/44986)");
345}
346
347ATF_TC_BODY(pollts_sigmask, tc)
348{
349 int fd;
350 struct pollfd pfd;
351 struct timespec timeout;
352 sigset_t mask;
353 int ret;
354
355 fd = open(_PATH_DEVNULL, O_RDONLY);
356 ATF_REQUIRE(fd >= 0);
357
358 pfd.fd = fd;
359 pfd.events = POLLIN;
360
361 /* Use a timeout of 1 second. */
362 timeout.tv_sec = 1;
363 timeout.tv_nsec = 0;
364
365 /* Unblock all signals. */
366 ATF_REQUIRE_EQ(sigfillset(&mask), 0);
367 ATF_REQUIRE_EQ(sigprocmask(SIG_UNBLOCK, &mask, NULL), 0);
368
369 /*
370 * Check that pollts(2) immediately returns. We block *all*
371 * signals during pollts(2).
372 */
373 ATF_REQUIRE_EQ_MSG(ret = pollts(&pfd, 1, &timeout, &mask), 1,
374 "got: %d", ret);
375
376 /* Check that signals are now longer blocked. */
377 ATF_REQUIRE_EQ(sigprocmask(SIG_SETMASK, NULL, &mask), 0);
378 ATF_REQUIRE_EQ_MSG(sigismember(&mask, SIGUSR1), 0,
379 "signal mask was changed.");
380
381 ATF_REQUIRE_EQ(close(fd), 0);
382}
383
384ATF_TP_ADD_TCS(tp) 239ATF_TP_ADD_TCS(tp)
385{ 240{
386 241
387 ATF_TP_ADD_TC(tp, poll_3way); 242 ATF_TP_ADD_TC(tp, 3way);
388 ATF_TP_ADD_TC(tp, poll_basic); 243 ATF_TP_ADD_TC(tp, basic);
389 ATF_TP_ADD_TC(tp, poll_err); 244 ATF_TP_ADD_TC(tp, err);
390 /*
391 * Adjusted for OpenBSD, not supported
392 * ATF_TP_ADD_TC(tp, pollts_basic);
393 * ATF_TP_ADD_TC(tp, pollts_err);
394 * ATF_TP_ADD_TC(tp, pollts_sigmask);
395 */
396 245
397 return atf_no_error(); 246 return atf_no_error();
398} 247}
diff --git a/src/regress/lib/libc/sys/t_ptrace.c b/src/regress/lib/libc/sys/t_ptrace.c
index e651dec0a1..a48616efb2 100644
--- a/src/regress/lib/libc/sys/t_ptrace.c
+++ b/src/regress/lib/libc/sys/t_ptrace.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_ptrace.c,v 1.3 2020/02/02 20:18:17 bluhm Exp $ */ 1/* $OpenBSD: t_ptrace.c,v 1.4 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_ptrace.c,v 1.4 2018/05/14 12:44:40 kamil Exp $ */ 2/* $NetBSD: t_ptrace.c,v 1.4 2018/05/14 12:44:40 kamil Exp $ */
3 3
4/*- 4/*-
@@ -171,7 +171,11 @@ ATF_TC_BODY(attach_chroot, tc)
171 rv = write(fds_toparent[1], &msg, sizeof(msg)); 171 rv = write(fds_toparent[1], &msg, sizeof(msg));
172 FORKEE_ASSERTX(rv == sizeof(msg)); 172 FORKEE_ASSERTX(rv == sizeof(msg));
173 173
174#ifdef __OpenBSD__
174 ATF_REQUIRE_ERRNO(EINVAL, 175 ATF_REQUIRE_ERRNO(EINVAL,
176#else
177 ATF_REQUIRE_ERRNO(EPERM,
178#endif
175 ptrace(PT_ATTACH, getppid(), NULL, 0) == -1); 179 ptrace(PT_ATTACH, getppid(), NULL, 0) == -1);
176 180
177 rv = read(fds_fromparent[0], &msg, sizeof(msg)); 181 rv = read(fds_fromparent[0], &msg, sizeof(msg));
diff --git a/src/regress/lib/libc/sys/t_revoke.c b/src/regress/lib/libc/sys/t_revoke.c
index ad54f814d1..7640c2d871 100644
--- a/src/regress/lib/libc/sys/t_revoke.c
+++ b/src/regress/lib/libc/sys/t_revoke.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_revoke.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_revoke.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_revoke.c,v 1.2 2017/01/13 21:15:57 christos Exp $ */ 2/* $NetBSD: t_revoke.c,v 1.2 2017/01/13 21:15:57 christos Exp $ */
3 3
4/*- 4/*-
@@ -118,8 +118,11 @@ ATF_TC_BODY(revoke_err, tc)
118 ATF_REQUIRE_ERRNO(ENAMETOOLONG, revoke(buf) == -1); 118 ATF_REQUIRE_ERRNO(ENAMETOOLONG, revoke(buf) == -1);
119 119
120 errno = 0; 120 errno = 0;
121 /* Adjusted for OpenBSD, initially EPERM */ 121#ifdef __OpenBSD__
122 ATF_REQUIRE_ERRNO(ENOTTY, revoke("/etc/passwd") == -1); 122 ATF_REQUIRE_ERRNO(ENOTTY, revoke("/etc/passwd") == -1);
123#else
124 ATF_REQUIRE_ERRNO(EPERM, revoke("/etc/passwd") == -1);
125#endif
123 126
124 errno = 0; 127 errno = 0;
125 ATF_REQUIRE_ERRNO(ENOENT, revoke("/etc/xxx/yyy") == -1); 128 ATF_REQUIRE_ERRNO(ENOENT, revoke("/etc/xxx/yyy") == -1);
@@ -184,15 +187,15 @@ ATF_TC_CLEANUP(revoke_perm, tc)
184ATF_TP_ADD_TCS(tp) 187ATF_TP_ADD_TCS(tp)
185{ 188{
186 189
187 /* 190#ifndef __OpenBSD__
188 * Adjusted for OpenBSD, revoke only on ttys supported 191 /* OpenBSD supports revoke only on ttys */
189 * ATF_TP_ADD_TC(tp, revoke_basic); 192 ATF_TP_ADD_TC(tp, revoke_basic);
190 */ 193#endif
191 ATF_TP_ADD_TC(tp, revoke_err); 194 ATF_TP_ADD_TC(tp, revoke_err);
192 /* 195#ifndef __OpenBSD__
193 * Adjusted for OpenBSD, revoke only on ttys supported 196 /* OpenBSD supports revoke only on ttys */
194 * ATF_TP_ADD_TC(tp, revoke_perm); 197 ATF_TP_ADD_TC(tp, revoke_perm);
195 */ 198#endif
196 199
197 return atf_no_error(); 200 return atf_no_error();
198} 201}
diff --git a/src/regress/lib/libc/sys/t_select.c b/src/regress/lib/libc/sys/t_select.c
index 94ff3d3410..b10fe87495 100644
--- a/src/regress/lib/libc/sys/t_select.c
+++ b/src/regress/lib/libc/sys/t_select.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_select.c,v 1.1.1.1 2019/11/19 19:57:04 bluhm Exp $ */ 1/* $OpenBSD: t_select.c,v 1.2 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_select.c,v 1.4 2017/01/13 21:18:33 christos Exp $ */ 2/* $NetBSD: t_select.c,v 1.4 2017/01/13 21:18:33 christos Exp $ */
3 3
4/*- 4/*-
@@ -76,10 +76,18 @@ prmask(const sigset_t *m, char *buf, size_t len)
76 buf[0] = '0'; 76 buf[0] = '0';
77 buf[1] = 'x'; 77 buf[1] = 'x';
78#define N(p, a) (((p) >> ((a) * 4)) & 0xf) 78#define N(p, a) (((p) >> ((a) * 4)) & 0xf)
79 /* Adjusted for OpenBSD, on NetBSD sigset_t is a struct */ 79#ifdef __OpenBSD__
80 /* On NetBSD sigset_t is a struct */
80 uint32_t p = (*m); 81 uint32_t p = (*m);
81 for (size_t k = sizeof(p); k > 0; k--) 82 for (size_t k = sizeof(p); k > 0; k--)
82 buf[j++] = xtoa(N(p, k - 1)); 83 buf[j++] = xtoa(N(p, k - 1));
84#else
85 for (size_t i = __arraycount(m->__bits); i > 0; i--) {
86 uint32_t p = m->__bits[i - 1];
87 for (size_t k = sizeof(p); k > 0; k--)
88 buf[j++] = xtoa(N(p, k - 1));
89 }
90#endif
83 buf[j] = '\0'; 91 buf[j] = '\0';
84 return buf; 92 return buf;
85} 93}
diff --git a/src/regress/lib/libc/sys/t_stat.c b/src/regress/lib/libc/sys/t_stat.c
index 73350c0e6a..5aadf39b99 100644
--- a/src/regress/lib/libc/sys/t_stat.c
+++ b/src/regress/lib/libc/sys/t_stat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_stat.c,v 1.2 2019/11/22 15:59:53 bluhm Exp $ */ 1/* $OpenBSD: t_stat.c,v 1.3 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_stat.c,v 1.6 2019/07/16 17:29:18 martin Exp $ */ 2/* $NetBSD: t_stat.c,v 1.6 2019/07/16 17:29:18 martin Exp $ */
3 3
4/*- 4/*-
@@ -68,7 +68,7 @@ ATF_TC_BODY(stat_chflags, tc)
68 (void)memset(&sa, 0, sizeof(struct stat)); 68 (void)memset(&sa, 0, sizeof(struct stat));
69 (void)memset(&sb, 0, sizeof(struct stat)); 69 (void)memset(&sb, 0, sizeof(struct stat));
70 70
71 fd = open(path, O_RDONLY | O_CREAT); 71 fd = open(path, O_RDONLY | O_CREAT, 0600);
72 72
73 ATF_REQUIRE(fd != -1); 73 ATF_REQUIRE(fd != -1);
74 ATF_REQUIRE(stat(path, &sa) == 0); 74 ATF_REQUIRE(stat(path, &sa) == 0);
@@ -258,7 +258,7 @@ ATF_TC_BODY(stat_perm, tc)
258 uid = getuid(); 258 uid = getuid();
259 gid = getgid(); 259 gid = getgid();
260 260
261 fd = open(path, O_RDONLY | O_CREAT); 261 fd = open(path, O_RDONLY | O_CREAT, 0600);
262 262
263 ATF_REQUIRE(fd != -1); 263 ATF_REQUIRE(fd != -1);
264 ATF_REQUIRE(fstat(fd, &sa) == 0); 264 ATF_REQUIRE(fstat(fd, &sa) == 0);
diff --git a/src/regress/lib/libc/sys/t_write.c b/src/regress/lib/libc/sys/t_write.c
index f05edb5bed..326032db71 100644
--- a/src/regress/lib/libc/sys/t_write.c
+++ b/src/regress/lib/libc/sys/t_write.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t_write.c,v 1.2 2019/11/22 15:59:53 bluhm Exp $ */ 1/* $OpenBSD: t_write.c,v 1.3 2020/11/09 23:18:51 bluhm Exp $ */
2/* $NetBSD: t_write.c,v 1.7 2019/07/16 17:29:18 martin Exp $ */ 2/* $NetBSD: t_write.c,v 1.7 2019/07/16 17:29:18 martin Exp $ */
3 3
4/*- 4/*-
@@ -74,7 +74,7 @@ ATF_TC_BODY(write_err, tc)
74 errno = 0; 74 errno = 0;
75 ATF_REQUIRE_ERRNO(EBADF, write(-1, wbuf, sizeof(wbuf)) == -1); 75 ATF_REQUIRE_ERRNO(EBADF, write(-1, wbuf, sizeof(wbuf)) == -1);
76 76
77 fd = open(path, O_RDWR | O_CREAT); 77 fd = open(path, O_RDWR | O_CREAT, 0600);
78 78
79 if (fd >= 0) { 79 if (fd >= 0) {
80 80
@@ -146,7 +146,7 @@ ATF_TC_BODY(write_pos, tc)
146 size_t i; 146 size_t i;
147 int fd; 147 int fd;
148 148
149 fd = open(path, O_RDWR | O_CREAT); 149 fd = open(path, O_RDWR | O_CREAT, 0600);
150 ATF_REQUIRE(fd >= 0); 150 ATF_REQUIRE(fd >= 0);
151 151
152 for (i = 0; i < n; i++) { 152 for (i = 0; i < n; i++) {