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

Method TestGetFileInfo

cpp/src/arrow/filesystem/test_util.cc:652–698  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

650}
651
652void GenericFileSystemTest::TestGetFileInfo(FileSystem* fs) {
653 ASSERT_OK(fs->CreateDir("AB/CD/EF"));
654 CreateFile(fs, "AB/CD/ghi", "some data");
655 CreateFile(fs, "AB/CD/jkl", "some other data");
656
657 FileInfo info;
658 TimePoint first_dir_time, first_file_time;
659
660 ASSERT_OK_AND_ASSIGN(info, fs->GetFileInfo("AB"));
661 AssertFileInfo(info, "AB", FileType::Directory);
662 ASSERT_EQ(info.base_name(), "AB");
663 ASSERT_EQ(info.size(), kNoSize);
664 first_dir_time = info.mtime();
665 if (have_directory_mtimes()) {
666 ValidateTimePoint(first_dir_time);
667 }
668
669 ASSERT_OK_AND_ASSIGN(info, fs->GetFileInfo("AB/CD/EF"));
670 AssertFileInfo(info, "AB/CD/EF", FileType::Directory);
671 ASSERT_EQ(info.base_name(), "EF");
672 ASSERT_EQ(info.size(), kNoSize);
673 // AB/CD's creation can impact AB's modification time, however, AB/CD/EF's
674 // creation doesn't, so AB/CD/EF's mtime should be after AB's.
675 if (have_directory_mtimes()) {
676 AssertDurationBetween(info.mtime() - first_dir_time, 0.0, kTimeSlack);
677 }
678
679 ASSERT_OK_AND_ASSIGN(info, fs->GetFileInfo("AB/CD/ghi"));
680 AssertFileInfo(info, "AB/CD/ghi", FileType::File, 9);
681 ASSERT_EQ(info.base_name(), "ghi");
682 first_file_time = info.mtime();
683 // AB/CD/ghi's creation doesn't impact AB's modification time,
684 // so AB/CD/ghi's mtime should be after AB's.
685 if (have_directory_mtimes()) {
686 AssertDurationBetween(first_file_time - first_dir_time, 0.0, kTimeSlack);
687 }
688 ASSERT_OK_AND_ASSIGN(info, fs->GetFileInfo("AB/CD/jkl"));
689 AssertFileInfo(info, "AB/CD/jkl", FileType::File, 15);
690 // This file was created after the one above
691 AssertDurationBetween(info.mtime() - first_file_time, 0.0, kTimeSlack);
692
693 ASSERT_OK_AND_ASSIGN(info, fs->GetFileInfo("zz"));
694 AssertFileInfo(info, "zz", FileType::NotFound);
695 ASSERT_EQ(info.base_name(), "zz");
696 ASSERT_EQ(info.size(), kNoSize);
697 ASSERT_EQ(info.mtime(), kNoTime);
698}
699
700void GenericFileSystemTest::TestGetFileInfoAsync(FileSystem* fs) {
701 ASSERT_OK(fs->CreateDir("AB/CD"));

Callers

nothing calls this directly

Calls 10

CreateFileFunction · 0.85
AssertFileInfoFunction · 0.85
have_directory_mtimesFunction · 0.85
ValidateTimePointFunction · 0.85
AssertDurationBetweenFunction · 0.85
base_nameMethod · 0.80
ASSERT_OK_AND_ASSIGNFunction · 0.70
CreateDirMethod · 0.45
GetFileInfoMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected