Module Name: src
Committed By: riastradh
Date: Sat Aug 5 12:11:05 UTC 2023
Modified Files:
src/tests/include: t_paths.c
Log Message:
tests/include/t_paths: Test all paths, nonfatally.
This way a single failure doesn't suppress failure reports for all
the other paths to test.
Omit some needless blank lines while here.
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/tests/include/t_paths.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/include/t_paths.c
diff -u src/tests/include/t_paths.c:1.18 src/tests/include/t_paths.c:1.19
--- src/tests/include/t_paths.c:1.18 Sat Aug 5 11:59:09 2023
+++ src/tests/include/t_paths.c Sat Aug 5 12:11:05 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: t_paths.c,v 1.18 2023/08/05 11:59:09 riastradh Exp $ */
+/* $NetBSD: t_paths.c,v 1.19 2023/08/05 12:11:05 riastradh Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: t_paths.c,v 1.18 2023/08/05 11:59:09 riastradh Exp $");
+__RCSID("$NetBSD: t_paths.c,v 1.19 2023/08/05 12:11:05 riastradh Exp $");
#include <sys/param.h>
#include <sys/stat.h>
@@ -135,39 +135,34 @@ ATF_TC_BODY(paths, tc)
uid = getuid();
for (i = 0; i < __arraycount(paths); i++) {
-
(void)fprintf(stderr, "testing '%s'\n", paths[i].path);
errno = 0;
fd = open(paths[i].path, O_RDONLY);
-
if (fd < 0) {
-
switch (errno) {
-
case ENODEV:
if ((paths[i].flags & PATH_OPT) == 0) {
-
- atf_tc_fail("Required path %s does "
- "not exist", paths[i].path);
+ atf_tc_fail_nonfatal("Required path %s"
+ " does not exist", paths[i].path);
+ continue;
}
break;
-
case EPERM: /* FALLTHROUGH */
case EACCES: /* FALLTHROUGH */
-
if ((paths[i].flags & PATH_ROOT) == 0) {
-
- atf_tc_fail("UID %u failed to open %s, "
- "error %d", (uint32_t)uid,
- paths[i].path, errno);
+ atf_tc_fail_nonfatal("UID %u"
+ " failed to open %s,"
+ " error %d (%s)",
+ (uint32_t)uid,
+ paths[i].path,
+ errno, strerror(errno));
+ continue;
}
-
/* FALLTHROUGH */
case EBUSY: /* FALLTHROUGH */
case ENXIO: /* FALLTHROUGH */
case ENOENT: /* FALLTHROUGH */
-
default:
continue;
}
@@ -175,35 +170,34 @@ ATF_TC_BODY(paths, tc)
(void)memset(&st, 0, sizeof(struct stat));
- ATF_REQUIRE(fstat(fd, &st) == 0);
+ if (fstat(fd, &st) == -1) {
+ atf_tc_fail_nonfatal("fstat %s failed, error %d (%s)",
+ paths[i].path, errno, strerror(errno));
+ ATF_CHECK(close(fd) == 0);
+ continue;
+ }
m = st.st_mode;
if ((paths[i].flags & PATH_DEV) != 0) {
-
ATF_CHECK(S_ISBLK(m) != 0 || S_ISCHR(m) != 0);
-
ATF_CHECK((paths[i].flags & PATH_DIR) == 0);
ATF_CHECK((paths[i].flags & PATH_FILE) == 0);
}
if ((paths[i].flags & PATH_DIR) != 0) {
-
ATF_CHECK(S_ISDIR(m) != 0);
-
ATF_CHECK((paths[i].flags & PATH_DEV) == 0);
ATF_CHECK((paths[i].flags & PATH_FILE) == 0);
}
if ((paths[i].flags & PATH_FILE) != 0) {
-
ATF_CHECK(S_ISREG(m) != 0);
-
ATF_CHECK((paths[i].flags & PATH_DEV) == 0);
ATF_CHECK((paths[i].flags & PATH_DIR) == 0);
}
- ATF_REQUIRE(close(fd) == 0);
+ ATF_CHECK(close(fd) == 0);
}
}