diff options
| author | Alexey Samsonov <vonosmas@gmail.com> | 2025-05-28 22:18:22 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-28 22:18:22 -0700 |
| commit | f22122aa7f3ef8e817b20bc3a42691cdbc760288 (patch) | |
| tree | aab51bfce9c2c9fdbebfc4d54b259a87ce83e8b1 /libc/test/src/sys/stat/chmod_test.cpp | |
| parent | 8f486254e4fb03e30c0140aa207b10140ccbdd32 (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.cpp | 15 |
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; } |
