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);
 	}
 }
 

Reply via email to