16
16
#include " src/stdio/fread.h"
17
17
#include " src/stdio/fseek.h"
18
18
#include " src/stdio/fwrite.h"
19
+ #include " test/UnitTest/ErrnoSetterMatcher.h"
19
20
#include " test/UnitTest/Test.h"
20
21
21
22
#include " src/errno/libc_errno.h"
22
23
#include < stdio.h>
23
24
25
+ using __llvm_libc::testing::ErrnoSetterMatcher::EQ;
26
+ using __llvm_libc::testing::ErrnoSetterMatcher::NE;
27
+ using __llvm_libc::testing::ErrnoSetterMatcher::returns;
28
+
24
29
TEST (LlvmLibcFILETest, SimpleFileOperations) {
25
30
constexpr char FILENAME[] = " testdata/simple_operations.test" ;
26
31
::FILE *file = __llvm_libc::fopen (FILENAME, " w" );
@@ -31,9 +36,9 @@ TEST(LlvmLibcFILETest, SimpleFileOperations) {
31
36
32
37
// This is not a readable file.
33
38
char read_data[sizeof (CONTENT)];
34
- ASSERT_EQ (__llvm_libc::fread (read_data, 1 , sizeof (CONTENT), file), size_t (0 ));
39
+ ASSERT_THAT (__llvm_libc::fread (read_data, 1 , sizeof (CONTENT), file),
40
+ returns (EQ (size_t (0 ))).with_errno (NE (0 )));
35
41
ASSERT_NE (__llvm_libc::ferror (file), 0 );
36
- EXPECT_NE (libc_errno, 0 );
37
42
libc_errno = 0 ;
38
43
39
44
__llvm_libc::clearerr (file);
@@ -62,25 +67,25 @@ TEST(LlvmLibcFILETest, SimpleFileOperations) {
62
67
ASSERT_NE (__llvm_libc::feof (file), 0 );
63
68
64
69
// Should be an error to write.
65
- ASSERT_EQ (size_t (0 ), __llvm_libc::fwrite (CONTENT, 1 , sizeof (CONTENT), file));
70
+ ASSERT_THAT (__llvm_libc::fwrite (CONTENT, 1 , sizeof (CONTENT), file),
71
+ returns (EQ (size_t (0 ))).with_errno (NE (0 )));
66
72
ASSERT_NE (__llvm_libc::ferror (file), 0 );
67
- ASSERT_NE (libc_errno, 0 );
68
73
libc_errno = 0 ;
69
74
70
75
__llvm_libc::clearerr (file);
71
76
72
77
// Should be an error to puts.
73
- ASSERT_EQ (EOF, __llvm_libc::fputs (CONTENT, file));
78
+ ASSERT_THAT (__llvm_libc::fputs (CONTENT, file),
79
+ returns (EQ (EOF)).with_errno (NE (0 )));
74
80
ASSERT_NE (__llvm_libc::ferror (file), 0 );
75
- ASSERT_NE (libc_errno, 0 );
76
81
libc_errno = 0 ;
77
82
78
83
__llvm_libc::clearerr (file);
79
84
ASSERT_EQ (__llvm_libc::ferror (file), 0 );
80
85
81
86
libc_errno = 0 ;
82
- ASSERT_EQ (__llvm_libc::fwrite (" nothing" , 1 , 1 , file), size_t ( 0 ));
83
- ASSERT_NE (libc_errno, 0 );
87
+ ASSERT_THAT (__llvm_libc::fwrite (" nothing" , 1 , 1 , file),
88
+ returns ( EQ ( 0 )). with_errno ( NE ( 0 )) );
84
89
libc_errno = 0 ;
85
90
86
91
ASSERT_EQ (__llvm_libc::fclose (file), 0 );
@@ -97,8 +102,8 @@ TEST(LlvmLibcFILETest, SimpleFileOperations) {
97
102
98
103
// This is not a readable file.
99
104
libc_errno = 0 ;
100
- ASSERT_EQ (__llvm_libc::fread (data, 1 , 1 , file), size_t ( 0 ));
101
- ASSERT_NE (libc_errno, 0 );
105
+ ASSERT_THAT (__llvm_libc::fread (data, 1 , 1 , file),
106
+ returns ( EQ ( 0 )). with_errno ( NE ( 0 )) );
102
107
libc_errno = 0 ;
103
108
104
109
ASSERT_EQ (0 , __llvm_libc::fclose (file));
@@ -162,22 +167,22 @@ TEST(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
162
167
FILE *file = __llvm_libc::fopen (FILENAME, " w" );
163
168
ASSERT_FALSE (file == nullptr );
164
169
ASSERT_EQ (size_t (0 ), __llvm_libc::fwrite (WRITE_DATA, 0 , 1 , file));
165
- ASSERT_EQ (WRITE_NMEMB, __llvm_libc::fwrite (WRITE_DATA, sizeof (MyStruct),
166
- WRITE_NMEMB, file));
167
- EXPECT_EQ (libc_errno, 0 );
170
+ ASSERT_THAT (
171
+ __llvm_libc::fwrite (WRITE_DATA, sizeof (MyStruct), WRITE_NMEMB, file),
172
+ returns ( EQ (WRITE_NMEMB)). with_errno ( EQ ( 0 )) );
168
173
ASSERT_EQ (__llvm_libc::fclose (file), 0 );
169
174
170
175
file = __llvm_libc::fopen (FILENAME, " r" );
171
176
ASSERT_FALSE (file == nullptr );
172
177
MyStruct read_data[WRITE_NMEMB];
173
178
ASSERT_EQ (size_t (0 ), __llvm_libc::fread (read_data, 0 , 1 , file));
174
- ASSERT_EQ (WRITE_NMEMB,
175
- __llvm_libc::fread (read_data, sizeof (MyStruct), WRITE_NMEMB, file));
176
- EXPECT_EQ (libc_errno, 0 );
179
+ ASSERT_THAT (
180
+ __llvm_libc::fread (read_data, sizeof (MyStruct), WRITE_NMEMB, file),
181
+ returns ( EQ (WRITE_NMEMB)). with_errno ( EQ ( 0 )) );
177
182
// Trying to read more should fetch nothing.
178
- ASSERT_EQ ( size_t ( 0 ),
179
- __llvm_libc::fread (read_data, sizeof (MyStruct), WRITE_NMEMB, file));
180
- EXPECT_EQ (libc_errno, 0 );
183
+ ASSERT_THAT (
184
+ __llvm_libc::fread (read_data, sizeof (MyStruct), WRITE_NMEMB, file),
185
+ returns ( EQ ( 0 )). with_errno ( EQ ( 0 )) );
181
186
EXPECT_NE (__llvm_libc::feof (file), 0 );
182
187
EXPECT_EQ (__llvm_libc::ferror (file), 0 );
183
188
ASSERT_EQ (__llvm_libc::fclose (file), 0 );
0 commit comments