[libc-commits] [libc] 1348ca4 - [libc] [NFC] Use matchers in tests

Alex Brachet via libc-commits libc-commits at lists.llvm.org
Sat Mar 7 19:57:06 PST 2020


Author: Alex Brachet
Date: 2020-03-07T22:56:03-05:00
New Revision: 1348ca404629e2e08dd7aec7c68a7121a63e8c37

URL: https://github.com/llvm/llvm-project/commit/1348ca404629e2e08dd7aec7c68a7121a63e8c37
DIFF: https://github.com/llvm/llvm-project/commit/1348ca404629e2e08dd7aec7c68a7121a63e8c37.diff

LOG: [libc] [NFC] Use matchers in tests

Summary:
Use `EXPECT_THAT` where possible in tests NFC intended.

Added a `void *` template instantiation of `StreamWrapper::operator<<`

Reviewers: sivachandra, PaulkaToast

Reviewed By: sivachandra

Subscribers: MaskRay, tschuett, libc-commits

Differential Revision: https://reviews.llvm.org/D75717

Added: 
    

Modified: 
    libc/test/src/signal/sigprocmask_test.cpp
    libc/test/src/sys/mman/linux/mmap_test.cpp
    libc/utils/testutils/StreamWrapper.cpp

Removed: 
    


################################################################################
diff  --git a/libc/test/src/signal/sigprocmask_test.cpp b/libc/test/src/signal/sigprocmask_test.cpp
index a0918d11c7f5..2f3b5cd516ea 100644
--- a/libc/test/src/signal/sigprocmask_test.cpp
+++ b/libc/test/src/signal/sigprocmask_test.cpp
@@ -14,6 +14,7 @@
 #include "src/signal/sigemptyset.h"
 #include "src/signal/sigprocmask.h"
 
+#include "utils/UnitTest/ErrnoSetterMatcher.h"
 #include "utils/UnitTest/Test.h"
 
 class SignalTest : public __llvm_libc::testing::Test {
@@ -27,28 +28,23 @@ class SignalTest : public __llvm_libc::testing::Test {
   }
 };
 
+using __llvm_libc::testing::ErrnoSetterMatcher::Fails;
+using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
+
 // This tests for invalid input.
 TEST_F(SignalTest, SigprocmaskInvalid) {
-  sigset_t valid;
-  // 17 and -4 are out of the range for sigprocmask's how paramater.
   llvmlibc_errno = 0;
-  EXPECT_EQ(__llvm_libc::sigprocmask(17, &valid, nullptr), -1);
-  EXPECT_EQ(llvmlibc_errno, EINVAL);
 
-  llvmlibc_errno = 0;
-  EXPECT_EQ(__llvm_libc::sigprocmask(-4, &valid, nullptr), -1);
-  EXPECT_EQ(llvmlibc_errno, EINVAL);
+  sigset_t valid;
+  // 17 and -4 are out of the range for sigprocmask's how paramater.
+  EXPECT_THAT(__llvm_libc::sigprocmask(17, &valid, nullptr), Fails(EINVAL));
+  EXPECT_THAT(__llvm_libc::sigprocmask(-4, &valid, nullptr), Fails(EINVAL));
 
   // This pointer is out of this processes address range.
   sigset_t *invalid = reinterpret_cast<sigset_t *>(-1);
-
-  llvmlibc_errno = 0;
-  EXPECT_EQ(__llvm_libc::sigprocmask(SIG_SETMASK, invalid, nullptr), -1);
-  EXPECT_EQ(llvmlibc_errno, EFAULT);
-
-  llvmlibc_errno = 0;
-  EXPECT_EQ(__llvm_libc::sigprocmask(-4, nullptr, invalid), -1);
-  EXPECT_EQ(llvmlibc_errno, EFAULT);
+  EXPECT_THAT(__llvm_libc::sigprocmask(SIG_SETMASK, invalid, nullptr),
+              Fails(EFAULT));
+  EXPECT_THAT(__llvm_libc::sigprocmask(-4, nullptr, invalid), Fails(EFAULT));
 }
 
 // This tests that when nothing is blocked, a process gets killed and alse tests

diff  --git a/libc/test/src/sys/mman/linux/mmap_test.cpp b/libc/test/src/sys/mman/linux/mmap_test.cpp
index 9cc3abc1b499..9bb15cd37cf6 100644
--- a/libc/test/src/sys/mman/linux/mmap_test.cpp
+++ b/libc/test/src/sys/mman/linux/mmap_test.cpp
@@ -11,8 +11,12 @@
 #include "src/errno/llvmlibc_errno.h"
 #include "src/sys/mman/mmap.h"
 #include "src/sys/mman/munmap.h"
+#include "utils/UnitTest/ErrnoSetterMatcher.h"
 #include "utils/UnitTest/Test.h"
 
+using __llvm_libc::testing::ErrnoSetterMatcher::Fails;
+using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
+
 TEST(MMapTest, NoError) {
   size_t alloc_size = 128;
   llvmlibc_errno = 0;
@@ -26,21 +30,14 @@ TEST(MMapTest, NoError) {
   // Since we used the MAP_ANONYMOUS flag, the contents of the newly
   // allocated memory should be initialized to zero.
   EXPECT_EQ(array[0], 0);
-
-  int ret_val = __llvm_libc::munmap(addr, alloc_size);
-  EXPECT_EQ(0, ret_val);
-  EXPECT_EQ(0, llvmlibc_errno);
+  EXPECT_THAT(__llvm_libc::munmap(addr, alloc_size), Succeeds());
 }
 
 TEST(MMapTest, Error_InvalidSize) {
   llvmlibc_errno = 0;
   void *addr = __llvm_libc::mmap(nullptr, 0, PROT_READ,
                                  MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
-  EXPECT_EQ(EINVAL, llvmlibc_errno);
-  EXPECT_EQ(addr, MAP_FAILED);
+  EXPECT_THAT(addr, Fails(EINVAL, MAP_FAILED));
 
-  llvmlibc_errno = 0;
-  int ret_val = __llvm_libc::munmap(0, 0);
-  EXPECT_EQ(-1, ret_val);
-  EXPECT_EQ(EINVAL, llvmlibc_errno);
+  EXPECT_THAT(__llvm_libc::munmap(0, 0), Fails(EINVAL));
 }

diff  --git a/libc/utils/testutils/StreamWrapper.cpp b/libc/utils/testutils/StreamWrapper.cpp
index 7909b6c8790d..142fb4b50d36 100644
--- a/libc/utils/testutils/StreamWrapper.cpp
+++ b/libc/utils/testutils/StreamWrapper.cpp
@@ -23,6 +23,7 @@ template <typename T> StreamWrapper &StreamWrapper::operator<<(T t) {
   return *this;
 }
 
+template StreamWrapper &StreamWrapper::operator<<<void *>(void *t);
 template StreamWrapper &StreamWrapper::operator<<<const char *>(const char *t);
 template StreamWrapper &StreamWrapper::operator<<<char *>(char *t);
 template StreamWrapper &StreamWrapper::operator<<<char>(char t);


        


More information about the libc-commits mailing list