git: 749b3b2c0629 - main - path_test: adjust test for open(O_PATH | O_CREAT)

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 07 Jan 2025 02:46:37 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=749b3b2c0629f44f6b0044992dfb2ce5ac7e562b

commit 749b3b2c0629f44f6b0044992dfb2ce5ac7e562b
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-01-06 22:07:07 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-01-07 02:46:19 +0000

    path_test: adjust test for open(O_PATH | O_CREAT)
    
    Instead of failing, it must succeed now.
    
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D48332
---
 tests/sys/file/path_test.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tests/sys/file/path_test.c b/tests/sys/file/path_test.c
index 911c7c7075f0..b3b8b7cebd4d 100644
--- a/tests/sys/file/path_test.c
+++ b/tests/sys/file/path_test.c
@@ -684,10 +684,14 @@ ATF_TC_BODY(path_io, tc)
 	size_t page_size;
 	int error, fd, pathfd, sd[2];
 
-	/* It shouldn't be possible to create new files with O_PATH. */
+	/* It is allowed to create new files with O_PATH. */
 	snprintf(path, sizeof(path), "path_io.XXXXXX");
 	ATF_REQUIRE_MSG(mktemp(path) == path, FMT_ERR("mktemp"));
-	ATF_REQUIRE_ERRNO(ENOENT, open(path, O_PATH | O_CREAT, 0600) < 0);
+	pathfd = open(path, O_PATH | O_CREAT, 0600);
+	ATF_REQUIRE_MSG(pathfd >= 0, FMT_ERR("open(O_PATH|O_CREAT)"));
+	/* Ensure that this is indeed O_PATH fd */
+	ATF_REQUIRE_ERRNO(EBADF, write(pathfd, path, strlen(path)) == -1);
+	CHECKED_CLOSE(pathfd);
 
 	/* Create a non-empty file for use in the rest of the tests. */
 	mktfile(path, "path_io.XXXXXX");