MCPcopy Create free account
hub / github.com/apache/arrow / TEST_F

Function TEST_F

cpp/src/arrow/util/io_util_test.cc:195–252  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193};
194
195TEST_F(TestFileDescriptor, Basics) {
196 int new_fd, new_fd2;
197
198 // Default initialization
199 FileDescriptor a;
200 ASSERT_EQ(a.fd(), -1);
201 ASSERT_TRUE(a.closed());
202 ASSERT_OK(a.Close());
203 ASSERT_OK(a.Close());
204
205 // Assignment
206 ASSERT_OK_AND_ASSIGN(new_fd, NewFileDescriptor());
207 AssertValidFileDescriptor(new_fd);
208 a = FileDescriptor(new_fd);
209 ASSERT_FALSE(a.closed());
210 ASSERT_GT(a.fd(), 2);
211 ASSERT_OK(a.Close());
212 AssertInvalidFileDescriptor(new_fd); // underlying fd was actually closed
213 ASSERT_TRUE(a.closed());
214 ASSERT_EQ(a.fd(), -1);
215 ASSERT_OK(a.Close());
216 ASSERT_TRUE(a.closed());
217
218 ASSERT_OK_AND_ASSIGN(new_fd, NewFileDescriptor());
219 ASSERT_OK_AND_ASSIGN(new_fd2, NewFileDescriptor());
220
221 // Move assignment
222 FileDescriptor b(new_fd);
223 FileDescriptor c(new_fd2);
224 AssertValidFileDescriptor(new_fd);
225 AssertValidFileDescriptor(new_fd2);
226 c = std::move(b);
227 ASSERT_TRUE(b.closed());
228 ASSERT_EQ(b.fd(), -1);
229 ASSERT_FALSE(c.closed());
230 ASSERT_EQ(c.fd(), new_fd);
231 AssertValidFileDescriptor(new_fd);
232 AssertInvalidFileDescriptor(new_fd2);
233
234 // Move constructor
235 FileDescriptor d(std::move(c));
236 ASSERT_TRUE(c.closed());
237 ASSERT_EQ(c.fd(), -1);
238 ASSERT_FALSE(d.closed());
239 ASSERT_EQ(d.fd(), new_fd);
240 AssertValidFileDescriptor(new_fd);
241
242 // Detaching
243 {
244 FileDescriptor e(d.Detach());
245 ASSERT_TRUE(d.closed());
246 ASSERT_EQ(d.fd(), -1);
247 ASSERT_FALSE(e.closed());
248 ASSERT_EQ(e.fd(), new_fd);
249 AssertValidFileDescriptor(new_fd);
250 }
251 AssertInvalidFileDescriptor(new_fd); // e was closed
252}

Callers

nothing calls this directly

Calls 15

FileDescriptorFunction · 0.85
CreatePipeFunction · 0.85
FileWriteFunction · 0.85
FileReadFunction · 0.85
WinErrorFromStatusFunction · 0.85
SleepABitFunction · 0.85
SendSignalFunction · 0.85
BusyWaitFunction · 0.85
AssertChildExitFunction · 0.85
SendSignalToThreadFunction · 0.85
SendMethod · 0.80

Tested by

no test coverage detected