• Home
  • Raw
  • Download

Lines Matching full:file

3 // found in the LICENSE file.
5 #include "base/files/file.h"
32 using base::File;
41 // Don't create a File at all. in TEST()
42 File file; in TEST() local
43 EXPECT_FALSE(file.IsValid()); in TEST()
44 EXPECT_EQ(base::File::FILE_ERROR_FAILED, file.error_details()); in TEST()
46 File file2(base::File::FILE_ERROR_TOO_MANY_OPENED); in TEST()
48 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, file2.error_details()); in TEST()
52 // Open a file that doesn't exist. in TEST()
53 File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_READ); in TEST() local
54 EXPECT_FALSE(file.IsValid()); in TEST()
55 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, file.error_details()); in TEST()
56 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, base::File::GetLastFileError()); in TEST()
60 // Open or create a file. in TEST()
61 File file(file_path, base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ); in TEST() local
62 EXPECT_TRUE(file.IsValid()); in TEST()
63 EXPECT_TRUE(file.created()); in TEST()
64 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
68 // Open an existing file. in TEST()
69 File file(file_path, base::File::FLAG_OPEN | base::File::FLAG_READ); in TEST() local
70 EXPECT_TRUE(file.IsValid()); in TEST()
71 EXPECT_FALSE(file.created()); in TEST()
72 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
74 // This time verify closing the file. in TEST()
75 file.Close(); in TEST()
76 EXPECT_FALSE(file.IsValid()); in TEST()
80 // Open an existing file through Initialize in TEST()
81 File file; in TEST() local
82 file.Initialize(file_path, base::File::FLAG_OPEN | base::File::FLAG_READ); in TEST()
83 EXPECT_TRUE(file.IsValid()); in TEST()
84 EXPECT_FALSE(file.created()); in TEST()
85 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
87 // This time verify closing the file. in TEST()
88 file.Close(); in TEST()
89 EXPECT_FALSE(file.IsValid()); in TEST()
93 // Create a file that exists. in TEST()
94 File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_READ); in TEST() local
95 EXPECT_FALSE(file.IsValid()); in TEST()
96 EXPECT_FALSE(file.created()); in TEST()
97 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, file.error_details()); in TEST()
98 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, base::File::GetLastFileError()); in TEST()
102 // Create or overwrite a file. in TEST()
103 File file(file_path, in TEST() local
104 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); in TEST()
105 EXPECT_TRUE(file.IsValid()); in TEST()
106 EXPECT_TRUE(file.created()); in TEST()
107 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
111 // Create a delete-on-close file. in TEST()
113 File file(file_path, in TEST() local
114 base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ | in TEST()
115 base::File::FLAG_DELETE_ON_CLOSE); in TEST()
116 EXPECT_TRUE(file.IsValid()); in TEST()
117 EXPECT_TRUE(file.created()); in TEST()
118 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
128 File file(file_path, in TEST() local
129 base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_DELETE_ON_CLOSE); in TEST()
130 std::swap(file, file); in TEST()
131 EXPECT_TRUE(file.IsValid()); in TEST()
140 File file(file_path, base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_ASYNC); in TEST() local
141 EXPECT_TRUE(file.IsValid()); in TEST()
142 EXPECT_TRUE(file.async()); in TEST()
146 File file(file_path, base::File::FLAG_OPEN_ALWAYS); in TEST() local
147 EXPECT_TRUE(file.IsValid()); in TEST()
148 EXPECT_FALSE(file.async()); in TEST()
157 // Create a file. in TEST()
158 File file(file_path, base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_READ | in TEST() local
159 base::File::FLAG_WIN_SHARE_DELETE); in TEST()
160 EXPECT_TRUE(file.IsValid()); in TEST()
161 EXPECT_TRUE(file.created()); in TEST()
162 EXPECT_EQ(base::File::FILE_OK, file.error_details()); in TEST()
164 // Open an existing file and mark it as delete on close. in TEST()
165 File same_file(file_path, in TEST()
166 base::File::FLAG_OPEN | base::File::FLAG_DELETE_ON_CLOSE | in TEST()
167 base::File::FLAG_READ); in TEST()
168 EXPECT_TRUE(file.IsValid()); in TEST()
170 EXPECT_EQ(base::File::FILE_OK, same_file.error_details()); in TEST()
172 // Close both handles and check that the file is gone. in TEST()
173 file.Close(); in TEST()
182 File file(file_path, in TEST() local
183 base::File::FLAG_CREATE | base::File::FLAG_READ | in TEST()
184 base::File::FLAG_WRITE); in TEST()
185 ASSERT_TRUE(file.IsValid()); in TEST()
190 // Write 0 bytes to the file. in TEST()
191 int bytes_written = file.Write(0, data_to_write, 0); in TEST()
195 bytes_written = file.Write(0, nullptr, 0); in TEST()
198 // Write "test" to the file. in TEST()
199 bytes_written = file.Write(0, data_to_write, kTestDataSize); in TEST()
204 int bytes_read = file.Read(kTestDataSize, data_read_1, kTestDataSize); in TEST()
207 // Read from somewhere in the middle of the file. in TEST()
209 bytes_read = file.Read(kPartialReadOffset, data_read_1, kTestDataSize); in TEST()
215 bytes_read = file.Read(0, data_read_1, 0); in TEST()
218 // Read the entire file. in TEST()
219 bytes_read = file.Read(0, data_read_1, kTestDataSize); in TEST()
225 bytes_read = file.ReadNoBestEffort(0, data_read_1, kTestDataSize); in TEST()
230 // Write past the end of the file. in TEST()
233 bytes_written = file.Write(kOffsetBeyondEndOfFile, in TEST()
237 // Make sure the file was extended. in TEST()
242 // Make sure the file was zero-padded. in TEST()
244 bytes_read = file.Read(0, data_read_2, static_cast<int>(file_size)); in TEST()
260 EXPECT_EQ(File::FILE_ERROR_ACCESS_DENIED, File::GetLastFileError()); in TEST()
266 File file(nonexistent_path, File::FLAG_OPEN | File::FLAG_READ); in TEST() local
267 File::Error last_error = File::GetLastFileError(); in TEST()
268 EXPECT_FALSE(file.IsValid()); in TEST()
269 EXPECT_EQ(File::FILE_ERROR_NOT_FOUND, file.error_details()); in TEST()
270 EXPECT_EQ(File::FILE_ERROR_NOT_FOUND, last_error); in TEST()
277 File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_APPEND); in TEST() local
278 ASSERT_TRUE(file.IsValid()); in TEST()
283 // Write 0 bytes to the file. in TEST()
284 int bytes_written = file.Write(0, data_to_write, 0); in TEST()
288 bytes_written = file.Write(0, nullptr, 0); in TEST()
291 // Write "test" to the file. in TEST()
292 bytes_written = file.Write(0, data_to_write, kTestDataSize); in TEST()
295 file.Close(); in TEST()
296 File file2(file_path, in TEST()
297 base::File::FLAG_OPEN | base::File::FLAG_READ | in TEST()
298 base::File::FLAG_APPEND); in TEST()
301 // Test passing the file around. in TEST()
302 file = std::move(file2); in TEST()
304 ASSERT_TRUE(file.IsValid()); in TEST()
309 // Append "78" to the file. in TEST()
310 bytes_written = file.Write(0, append_data_to_write, kAppendDataSize); in TEST()
313 // Read the entire file. in TEST()
315 int bytes_read = file.Read(0, data_read_1, in TEST()
329 File file(file_path, in TEST() local
330 base::File::FLAG_CREATE | base::File::FLAG_READ | in TEST()
331 base::File::FLAG_WRITE); in TEST()
332 ASSERT_TRUE(file.IsValid()); in TEST()
333 EXPECT_EQ(0, file.GetLength()); in TEST()
335 // Write "test" to the file. in TEST()
338 int bytes_written = file.Write(0, data_to_write, kTestDataSize); in TEST()
341 // Extend the file. in TEST()
344 EXPECT_TRUE(file.SetLength(kExtendedFileLength)); in TEST()
345 EXPECT_EQ(kExtendedFileLength, file.GetLength()); in TEST()
349 // Make sure the file was zero-padded. in TEST()
351 int bytes_read = file.Read(0, data_read, static_cast<int>(file_size)); in TEST()
358 // Truncate the file. in TEST()
360 EXPECT_TRUE(file.SetLength(kTruncatedFileLength)); in TEST()
361 EXPECT_EQ(kTruncatedFileLength, file.GetLength()); in TEST()
365 // Make sure the file was truncated. in TEST()
366 bytes_read = file.Read(0, data_read, kTestDataSize); in TEST()
372 // Expand the file past the 4 GB limit. in TEST()
374 EXPECT_TRUE(file.SetLength(kBigFileLength)); in TEST()
375 EXPECT_EQ(kBigFileLength, file.GetLength()); in TEST()
380 // Close the file and reopen with base::File::FLAG_CREATE_ALWAYS, and make in TEST()
381 // sure the file is empty (old file was overridden). in TEST()
382 file.Close(); in TEST()
383 file.Initialize(file_path, in TEST()
384 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); in TEST()
385 EXPECT_EQ(0, file.GetLength()); in TEST()
396 File file(temp_dir.GetPath().AppendASCII("touch_get_info_file"), local
397 base::File::FLAG_CREATE | base::File::FLAG_WRITE |
398 base::File::FLAG_WRITE_ATTRIBUTES);
399 ASSERT_TRUE(file.IsValid());
401 // Get info for a newly created file.
402 base::File::Info info;
403 EXPECT_TRUE(file.GetInfo(&info));
416 // Write "test" to the file.
419 int bytes_written = file.Write(0, data, kTestDataSize);
429 EXPECT_TRUE(file.SetTimes(new_last_accessed, new_last_modified));
431 // Make sure the file info was updated accordingly.
432 EXPECT_TRUE(file.GetInfo(&info));
454 // Test we can retrieve the file's creation time through File::GetInfo().
462 File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_READ | local
463 base::File::FLAG_WRITE);
464 EXPECT_TRUE(file.IsValid());
469 base::File::Info info;
470 EXPECT_TRUE(file.GetInfo(&info));
482 File file(file_path, local
483 base::File::FLAG_CREATE | base::File::FLAG_READ |
484 base::File::FLAG_WRITE);
485 EXPECT_TRUE(file.IsValid());
489 EXPECT_EQ(kDataSize, file.Write(0, kData, kDataSize));
491 EXPECT_EQ(0, file.Seek(base::File::FROM_BEGIN, 0));
495 EXPECT_EQ(first_chunk_size, file.ReadAtCurrentPos(buffer, first_chunk_size));
497 file.ReadAtCurrentPos(buffer + first_chunk_size,
507 File file(file_path, local
508 base::File::FLAG_CREATE | base::File::FLAG_READ |
509 base::File::FLAG_WRITE);
510 EXPECT_TRUE(file.IsValid());
516 EXPECT_EQ(first_chunk_size, file.WriteAtCurrentPos(kData, first_chunk_size));
518 file.WriteAtCurrentPos(kData + first_chunk_size,
522 EXPECT_EQ(kDataSize, file.Read(0, buffer, kDataSize));
530 File file(file_path, local
531 base::File::FLAG_CREATE | base::File::FLAG_READ |
532 base::File::FLAG_WRITE);
533 ASSERT_TRUE(file.IsValid());
536 EXPECT_EQ(kOffset, file.Seek(base::File::FROM_BEGIN, kOffset));
537 EXPECT_EQ(2 * kOffset, file.Seek(base::File::FROM_CURRENT, kOffset));
538 EXPECT_EQ(kOffset, file.Seek(base::File::FROM_CURRENT, -kOffset));
539 EXPECT_TRUE(file.SetLength(kOffset * 2));
540 EXPECT_EQ(kOffset, file.Seek(base::File::FROM_END, -kOffset));
546 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
547 File file(file_path,(base::File::FLAG_CREATE | local
548 base::File::FLAG_READ |
549 base::File::FLAG_WRITE));
550 ASSERT_TRUE(file.IsValid());
552 File file2(file.Duplicate());
559 ASSERT_EQ(0, file.Seek(base::File::FROM_CURRENT, 0));
560 ASSERT_EQ(0, file2.Seek(base::File::FROM_CURRENT, 0));
561 ASSERT_EQ(kDataLen, file.WriteAtCurrentPos(kData, kDataLen));
562 ASSERT_EQ(kDataLen, file.Seek(base::File::FROM_CURRENT, 0));
563 ASSERT_EQ(kDataLen, file2.Seek(base::File::FROM_CURRENT, 0));
564 file.Close();
573 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
574 File file(file_path,(base::File::FLAG_CREATE | local
575 base::File::FLAG_READ |
576 base::File::FLAG_WRITE |
577 base::File::FLAG_DELETE_ON_CLOSE));
578 ASSERT_TRUE(file.IsValid());
579 File file2(file.Duplicate());
581 file.Close();
590 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
592 File file(file_path, local
593 (base::File::FLAG_CREATE | base::File::FLAG_READ |
594 base::File::FLAG_WRITE | base::File::FLAG_DELETE_ON_CLOSE));
595 ASSERT_TRUE(file.IsValid());
597 EXPECT_EQ(perfetto::TracedValueToString(file),
611 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
612 File file(file_path, local
613 (base::File::FLAG_CREATE | base::File::FLAG_READ |
614 base::File::FLAG_WRITE | base::File::FLAG_DELETE_ON_CLOSE));
615 ASSERT_TRUE(file.IsValid());
617 const char kData[] = "this file is sparse.";
621 // If the file fails to write, it is probably we are running out of disk space
622 // and the file system doesn't support sparse file.
623 if (file.Write(kLargeFileOffset - kDataLen - 1, kData, kDataLen) < 0)
626 ASSERT_EQ(kDataLen, file.Write(kLargeFileOffset + 1, kData, kDataLen));
631 uint32_t flags = base::File::FLAG_OPEN | base::File::FLAG_READ;
632 flags = base::File::AddFlagsForPassingToUntrustedProcess(flags);
633 EXPECT_EQ(flags, base::File::FLAG_OPEN | base::File::FLAG_READ);
636 uint32_t flags = base::File::FLAG_OPEN | base::File::FLAG_WRITE;
637 flags = base::File::AddFlagsForPassingToUntrustedProcess(flags);
638 EXPECT_EQ(flags, base::File::FLAG_OPEN | base::File::FLAG_WRITE |
639 base::File::FLAG_WIN_NO_EXECUTE);
651 base::File dir(
659 base::File::Info info;
669 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
671 // Creating and closing a file with DELETE perms should do nothing special.
672 File file(file_path, local
673 (base::File::FLAG_CREATE | base::File::FLAG_READ |
674 base::File::FLAG_WRITE | base::File::FLAG_CAN_DELETE_ON_CLOSE));
675 ASSERT_TRUE(file.IsValid());
676 file.Close();
683 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
685 // Creating a file with DELETE and then marking for delete on close should
687 File file(file_path, local
688 (base::File::FLAG_CREATE | base::File::FLAG_READ |
689 base::File::FLAG_WRITE | base::File::FLAG_CAN_DELETE_ON_CLOSE));
690 ASSERT_TRUE(file.IsValid());
691 ASSERT_TRUE(file.DeleteOnClose(true));
692 file.Close();
699 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
701 // Creating a file with DELETE, marking it for delete, then clearing delete on
703 File file(file_path, local
704 (base::File::FLAG_CREATE | base::File::FLAG_READ |
705 base::File::FLAG_WRITE | base::File::FLAG_CAN_DELETE_ON_CLOSE));
706 ASSERT_TRUE(file.IsValid());
707 ASSERT_TRUE(file.DeleteOnClose(true));
708 ASSERT_TRUE(file.DeleteOnClose(false));
709 file.Close();
716 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
719 File file(file_path, local
720 (base::File::FLAG_CREATE | base::File::FLAG_READ |
721 base::File::FLAG_WRITE | base::File::FLAG_DELETE_ON_CLOSE |
722 base::File::FLAG_WIN_SHARE_DELETE |
723 base::File::FLAG_CAN_DELETE_ON_CLOSE));
724 ASSERT_TRUE(file.IsValid());
730 file.DeleteOnClose(false);
731 file.Close();
738 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
741 File file(file_path, local
742 (base::File::FLAG_CREATE | base::File::FLAG_READ |
743 base::File::FLAG_WRITE | base::File::FLAG_DELETE_ON_CLOSE |
744 base::File::FLAG_WIN_SHARE_DELETE |
745 base::File::FLAG_CAN_DELETE_ON_CLOSE));
746 ASSERT_TRUE(file.IsValid());
748 File file2(file_path,
749 (base::File::FLAG_OPEN | base::File::FLAG_READ |
750 base::File::FLAG_WRITE | base::File::FLAG_WIN_SHARE_DELETE |
751 base::File::FLAG_CAN_DELETE_ON_CLOSE));
757 file.Close();
764 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
766 // It should not be possible to mark a file for deletion when it was not
768 File file(file_path, (base::File::FLAG_CREATE | base::File::FLAG_READ | local
769 base::File::FLAG_WRITE));
770 ASSERT_TRUE(file.IsValid());
771 ASSERT_FALSE(file.DeleteOnClose(true));
772 file.Close();
779 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
783 File file(file_path, (base::File::FLAG_CREATE | base::File::FLAG_READ | local
784 base::File::FLAG_WRITE));
785 ASSERT_TRUE(file.IsValid());
786 File file2(
788 (base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE |
789 base::File::FLAG_DELETE_ON_CLOSE | base::File::FLAG_WIN_SHARE_DELETE));
792 file.Close();
799 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
801 // Mapping a file into memory blocks DeleteOnClose.
802 File file(file_path, local
803 (base::File::FLAG_CREATE | base::File::FLAG_READ |
804 base::File::FLAG_WRITE | base::File::FLAG_CAN_DELETE_ON_CLOSE));
805 ASSERT_TRUE(file.IsValid());
806 ASSERT_EQ(5, file.WriteAtCurrentPos("12345", 5));
810 ASSERT_TRUE(mapping.Initialize(file.Duplicate()));
813 EXPECT_FALSE(file.DeleteOnClose(true));
816 file.Close();
824 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
826 File file(file_path, base::File::FLAG_CREATE | base::File::FLAG_WRITE | local
827 base::File::FLAG_ASYNC);
828 File lying_file(file.TakePlatformFile(), false /* async */);
852 FilePath file_path = temp_dir.GetPath().AppendASCII("file");
854 File file(file_path,
855 base::File::FLAG_CREATE | base::File::FLAG_WIN_EXECUTE |
856 base::File::FLAG_READ | base::File::FLAG_WIN_NO_EXECUTE);