1717#include " src/stdio/fread.h"
1818#include " src/stdio/fseek.h"
1919#include " src/stdio/fwrite.h"
20- #include " test/UnitTest/ErrnoCheckingTest.h"
2120#include " test/UnitTest/ErrnoSetterMatcher.h"
2221#include " test/UnitTest/Test.h"
2322
2423#include " hdr/stdio_macros.h"
24+ #include " src/__support/libc_errno.h"
2525
26- using LlvmLibcFILETest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;
2726using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::EQ;
2827using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::NE;
2928using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::returns;
3029
31- TEST_F (LlvmLibcFILETest, SimpleFileOperations) {
30+ TEST (LlvmLibcFILETest, SimpleFileOperations) {
3231 constexpr char FILENAME[] = " testdata/simple_operations.test" ;
3332 ::FILE *file = LIBC_NAMESPACE::fopen (FILENAME, " w" );
3433 ASSERT_FALSE (file == nullptr );
@@ -42,6 +41,7 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
4241 ASSERT_THAT (LIBC_NAMESPACE::fread (read_data, 1 , sizeof (CONTENT), file),
4342 returns (EQ (size_t (0 ))).with_errno (NE (0 )));
4443 ASSERT_NE (LIBC_NAMESPACE::ferror (file), 0 );
44+ libc_errno = 0 ;
4545
4646 LIBC_NAMESPACE::clearerr (file);
4747 ASSERT_EQ (LIBC_NAMESPACE::ferror (file), 0 );
@@ -72,19 +72,23 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
7272 ASSERT_THAT (LIBC_NAMESPACE::fwrite (CONTENT, 1 , sizeof (CONTENT), file),
7373 returns (EQ (size_t (0 ))).with_errno (NE (0 )));
7474 ASSERT_NE (LIBC_NAMESPACE::ferror (file), 0 );
75+ libc_errno = 0 ;
7576
7677 LIBC_NAMESPACE::clearerr (file);
7778
7879 // Should be an error to puts.
7980 ASSERT_THAT (LIBC_NAMESPACE::fputs (CONTENT, file),
8081 returns (EQ (EOF)).with_errno (NE (0 )));
8182 ASSERT_NE (LIBC_NAMESPACE::ferror (file), 0 );
83+ libc_errno = 0 ;
8284
8385 LIBC_NAMESPACE::clearerr (file);
8486 ASSERT_EQ (LIBC_NAMESPACE::ferror (file), 0 );
8587
88+ libc_errno = 0 ;
8689 ASSERT_THAT (LIBC_NAMESPACE::fwrite (" nothing" , 1 , 1 , file),
8790 returns (EQ (size_t (0 ))).with_errno (NE (0 )));
91+ libc_errno = 0 ;
8892
8993 ASSERT_EQ (LIBC_NAMESPACE::fclose (file), 0 );
9094
@@ -99,8 +103,10 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
99103 ASSERT_EQ (LIBC_NAMESPACE::ferror (file), 0 );
100104
101105 // This is not a readable file.
106+ libc_errno = 0 ;
102107 ASSERT_THAT (LIBC_NAMESPACE::fread (data, 1 , 1 , file),
103108 returns (EQ (0 )).with_errno (NE (0 )));
109+ libc_errno = 0 ;
104110
105111 ASSERT_EQ (0 , LIBC_NAMESPACE::fclose (file));
106112
@@ -115,18 +121,21 @@ TEST_F(LlvmLibcFILETest, SimpleFileOperations) {
115121
116122 // Check that the other functions correctly set libc_errno.
117123
124+ // libc_errno = 0;
118125 // ASSERT_NE(LIBC_NAMESPACE::fseek(file, 0, SEEK_SET), 0);
119126 // ASSERT_ERRNO_FAILURE();
120127
128+ // libc_errno = 0;
121129 // ASSERT_NE(LIBC_NAMESPACE::fclose(file), 0);
122130 // ASSERT_ERRNO_FAILURE();
123131
132+ // libc_errno = 0;
124133 // ASSERT_EQ(LIBC_NAMESPACE::fopen("INVALID FILE NAME", "r"),
125134 // static_cast<FILE *>(nullptr));
126135 // ASSERT_ERRNO_FAILURE();
127136}
128137
129- TEST_F (LlvmLibcFILETest, FFlush) {
138+ TEST (LlvmLibcFILETest, FFlush) {
130139 constexpr char FILENAME[] = " testdata/fflush.test" ;
131140 ::FILE *file = LIBC_NAMESPACE::fopen (FILENAME, " w+" );
132141 ASSERT_FALSE (file == nullptr );
@@ -147,7 +156,7 @@ TEST_F(LlvmLibcFILETest, FFlush) {
147156 ASSERT_EQ (LIBC_NAMESPACE::fclose (file), 0 );
148157}
149158
150- TEST_F (LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
159+ TEST (LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
151160 using MyStruct = struct {
152161 char c;
153162 unsigned long long i;
@@ -156,6 +165,7 @@ TEST_F(LlvmLibcFILETest, FOpenFWriteSizeGreaterThanOne) {
156165 constexpr size_t WRITE_NMEMB = sizeof (WRITE_DATA) / sizeof (MyStruct);
157166 constexpr char FILENAME[] = " testdata/fread_fwrite.test" ;
158167
168+ libc_errno = 0 ;
159169 FILE *file = LIBC_NAMESPACE::fopen (FILENAME, " w" );
160170 ASSERT_FALSE (file == nullptr );
161171 ASSERT_EQ (size_t (0 ), LIBC_NAMESPACE::fwrite (WRITE_DATA, 0 , 1 , file));
0 commit comments