@@ -113,43 +113,46 @@ StringFile *new_string_file(char *buffer, size_t buflen, int bufmode,
113113 LIBC_NAMESPACE::File::mode_flags (mode));
114114}
115115
116- TEST (LlvmLibcFileTest, WriteOnly) {
117- const char data[] = " hello, file" ;
118- constexpr size_t FILE_BUFFER_SIZE = sizeof (data) * 3 / 2 ;
119- char file_buffer[FILE_BUFFER_SIZE];
120- StringFile *f =
121- new_string_file (file_buffer, FILE_BUFFER_SIZE, _IOFBF, false , " w" );
122-
123- ASSERT_EQ (sizeof (data), f->write (data, sizeof (data)).value );
124- EXPECT_EQ (f->get_pos (), size_t (0 )); // Data is buffered in the file stream
125- ASSERT_EQ (f->flush (), 0 );
126- EXPECT_EQ (f->get_pos (), sizeof (data)); // Data should now be available
127- EXPECT_STREQ (f->get_str (), data);
128-
129- f->reset ();
130- ASSERT_EQ (f->get_pos (), size_t (0 ));
131- ASSERT_EQ (sizeof (data), f->write (data, sizeof (data)).value );
132- EXPECT_EQ (f->get_pos (), size_t (0 )); // Data is buffered in the file stream
133- // The second write should trigger a buffer flush.
134- ASSERT_EQ (sizeof (data), f->write (data, sizeof (data)).value );
135- EXPECT_GE (f->get_pos (), size_t (0 ));
136- ASSERT_EQ (f->flush (), 0 );
137- EXPECT_EQ (f->get_pos (), 2 * sizeof (data));
138- MemoryView src1 (" hello, file\0 hello, file" , sizeof (data) * 2 ),
139- dst1 (f->get_str (), sizeof (data) * 2 );
140- EXPECT_MEM_EQ (src1, dst1);
141-
142- char read_data[sizeof (data)];
143- {
144- // This is not a readable file.
145- auto result = f->read (read_data, sizeof (data));
146- EXPECT_EQ (result.value , size_t (0 ));
147- EXPECT_TRUE (f->error ());
148- EXPECT_TRUE (result.has_error ());
149- }
150-
151- ASSERT_EQ (f->close (), 0 );
152- }
116+ // TODO: Investigate the precommit bots' failures of this test and re-enable it.
117+ // https://github.com/llvm/llvm-project/issues/128185.
118+ //
119+ // TEST(LlvmLibcFileTest, WriteOnly) {
120+ // const char data[] = "hello, file";
121+ // constexpr size_t FILE_BUFFER_SIZE = sizeof(data) * 3 / 2;
122+ // char file_buffer[FILE_BUFFER_SIZE];
123+ // StringFile *f =
124+ // new_string_file(file_buffer, FILE_BUFFER_SIZE, _IOFBF, false, "w");
125+
126+ // ASSERT_EQ(sizeof(data), f->write(data, sizeof(data)).value);
127+ // EXPECT_EQ(f->get_pos(), size_t(0)); // Data is buffered in the file stream
128+ // ASSERT_EQ(f->flush(), 0);
129+ // EXPECT_EQ(f->get_pos(), sizeof(data)); // Data should now be available
130+ // EXPECT_STREQ(f->get_str(), data);
131+
132+ // f->reset();
133+ // ASSERT_EQ(f->get_pos(), size_t(0));
134+ // ASSERT_EQ(sizeof(data), f->write(data, sizeof(data)).value);
135+ // EXPECT_EQ(f->get_pos(), size_t(0)); // Data is buffered in the file stream
136+ // // The second write should trigger a buffer flush.
137+ // ASSERT_EQ(sizeof(data), f->write(data, sizeof(data)).value);
138+ // EXPECT_GE(f->get_pos(), size_t(0));
139+ // ASSERT_EQ(f->flush(), 0);
140+ // EXPECT_EQ(f->get_pos(), 2 * sizeof(data));
141+ // MemoryView src1("hello, file\0hello, file", sizeof(data) * 2),
142+ // dst1(f->get_str(), sizeof(data) * 2);
143+ // EXPECT_MEM_EQ(src1, dst1);
144+
145+ // char read_data[sizeof(data)];
146+ // {
147+ // // This is not a readable file.
148+ // auto result = f->read(read_data, sizeof(data));
149+ // EXPECT_EQ(result.value, size_t(0));
150+ // EXPECT_TRUE(f->error());
151+ // EXPECT_TRUE(result.has_error());
152+ // }
153+
154+ // ASSERT_EQ(f->close(), 0);
155+ // }
153156
154157TEST (LlvmLibcFileTest, WriteLineBuffered) {
155158 const char data[] = " hello\n file" ;
0 commit comments