summaryrefslogtreecommitdiff
path: root/libc/test/src/sys/stat/chmod_test.cpp
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2025-05-28 22:18:22 -0700
committerGitHub <noreply@github.com>2025-05-28 22:18:22 -0700
commitf22122aa7f3ef8e817b20bc3a42691cdbc760288 (patch)
treeaab51bfce9c2c9fdbebfc4d54b259a87ce83e8b1 /libc/test/src/sys/stat/chmod_test.cpp
parent8f486254e4fb03e30c0140aa207b10140ccbdd32 (diff)
[libc] Migrate sys/ tests to ErrnoCheckingTest. (#141871)
See PR #132823 for a previous change to sys/epoll tests, and prior changes before that. ErrnoCheckingTest ensures that errno is properly reset at the beginning of the test case, and is validated at the end of it. This change removes many instances of manual errno manipulation.
Diffstat (limited to 'libc/test/src/sys/stat/chmod_test.cpp')
-rw-r--r--libc/test/src/sys/stat/chmod_test.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/libc/test/src/sys/stat/chmod_test.cpp b/libc/test/src/sys/stat/chmod_test.cpp
index 83ab0f45b6f0..fbdb1fb89568 100644
--- a/libc/test/src/sys/stat/chmod_test.cpp
+++ b/libc/test/src/sys/stat/chmod_test.cpp
@@ -6,21 +6,21 @@
//
//===----------------------------------------------------------------------===//
-#include "src/errno/libc_errno.h"
#include "src/fcntl/open.h"
#include "src/sys/stat/chmod.h"
#include "src/unistd/close.h"
#include "src/unistd/write.h"
+#include "test/UnitTest/ErrnoCheckingTest.h"
#include "test/UnitTest/ErrnoSetterMatcher.h"
#include "test/UnitTest/Test.h"
#include "hdr/fcntl_macros.h"
#include <sys/stat.h>
-TEST(LlvmLibcChmodTest, ChangeAndOpen) {
- using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
- using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds;
+using namespace LIBC_NAMESPACE::testing::ErrnoSetterMatcher;
+using LlvmLibcChmodTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
+TEST_F(LlvmLibcChmodTest, ChangeAndOpen) {
// The test file is initially writable. We open it for writing and ensure
// that it indeed can be opened for writing. Next, we close the file and
// make it readonly using chmod. We test that chmod actually succeeded by
@@ -28,7 +28,6 @@ TEST(LlvmLibcChmodTest, ChangeAndOpen) {
constexpr const char *TEST_FILE = "testdata/chmod.test";
const char WRITE_DATA[] = "test data";
constexpr ssize_t WRITE_SIZE = ssize_t(sizeof(WRITE_DATA));
- LIBC_NAMESPACE::libc_errno = 0;
int fd = LIBC_NAMESPACE::open(TEST_FILE, O_APPEND | O_WRONLY);
ASSERT_GT(fd, 0);
@@ -46,7 +45,6 @@ TEST(LlvmLibcChmodTest, ChangeAndOpen) {
// Opening for writing should fail.
EXPECT_EQ(LIBC_NAMESPACE::open(TEST_FILE, O_APPEND | O_WRONLY), -1);
ASSERT_ERRNO_FAILURE();
- LIBC_NAMESPACE::libc_errno = 0;
// But opening for reading should succeed.
fd = LIBC_NAMESPACE::open(TEST_FILE, O_APPEND | O_RDONLY);
EXPECT_GT(fd, 0);
@@ -56,10 +54,7 @@ TEST(LlvmLibcChmodTest, ChangeAndOpen) {
EXPECT_THAT(LIBC_NAMESPACE::chmod(TEST_FILE, S_IRWXU), Succeeds(0));
}
-TEST(LlvmLibcChmodTest, NonExistentFile) {
- LIBC_NAMESPACE::libc_errno = 0;
- using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails;
+TEST_F(LlvmLibcChmodTest, NonExistentFile) {
ASSERT_THAT(LIBC_NAMESPACE::chmod("non-existent-file", S_IRUSR),
Fails(ENOENT));
- LIBC_NAMESPACE::libc_errno = 0;
}