@@ -115,44 +115,45 @@ StringFile *new_string_file(char *buffer, size_t buflen, int bufmode,
115115
116116// TODO: Investigate the precommit bots' failures of this test and re-enable it.
117117// 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- // }
118+ #if 0
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+ }
156+ #endif
156157
157158TEST (LlvmLibcFileTest, WriteLineBuffered) {
158159 const char data[] = " hello\n file" ;
0 commit comments