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

Method TestGetFileInfoGenerator

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

Source from the content-addressed store, hash-verified

827}
828
829void GenericFileSystemTest::TestGetFileInfoGenerator(FileSystem* fs) {
830#if defined(ADDRESS_SANITIZER) || defined(ARROW_VALGRIND)
831 if (have_false_positive_memory_leak_with_generator()) {
832 GTEST_SKIP() << "Filesystem have false positive memory leak with generator";
833 }
834#endif
835
836 ASSERT_OK(fs->CreateDir("AB/CD"));
837 CreateFile(fs, "abc", "data");
838 CreateFile(fs, "AB/def", "some data");
839 CreateFile(fs, "AB/CD/ghi", "some other data");
840 CreateFile(fs, "AB/CD/jkl", "yet other data");
841
842 FileSelector s;
843 s.base_dir = "";
844 std::vector<FileInfo> infos;
845 std::vector<std::vector<FileInfo>> nested_infos;
846
847 // Non-recursive
848 auto gen = fs->GetFileInfoGenerator(s);
849 CollectFileInfoGenerator(std::move(gen), &infos);
850 SortInfos(&infos);
851 ASSERT_EQ(infos.size(), 2);
852 AssertFileInfo(infos[0], "AB", FileType::Directory);
853 AssertFileInfo(infos[1], "abc", FileType::File, 4);
854
855 // Recursive
856 s.base_dir = "AB";
857 s.recursive = true;
858 CollectFileInfoGenerator(fs->GetFileInfoGenerator(s), &infos);
859 SortInfos(&infos);
860 ASSERT_EQ(infos.size(), 4);
861 AssertFileInfo(infos[0], "AB/CD", FileType::Directory);
862 AssertFileInfo(infos[1], "AB/CD/ghi", FileType::File, 15);
863 AssertFileInfo(infos[2], "AB/CD/jkl", FileType::File, 14);
864 AssertFileInfo(infos[3], "AB/def", FileType::File, 9);
865
866 // Doesn't exist
867 s.base_dir = "XX";
868 auto fut = CollectAsyncGenerator(fs->GetFileInfoGenerator(s));
869 ASSERT_FINISHES_AND_RAISES(IOError, fut);
870 s.allow_not_found = true;
871 CollectFileInfoGenerator(fs->GetFileInfoGenerator(s), &infos);
872 ASSERT_EQ(infos.size(), 0);
873}
874
875void GenericFileSystemTest::TestGetFileInfoSelectorWithRecursion(FileSystem* fs) {
876 ASSERT_OK(fs->CreateDir("01/02/03/04"));

Callers

nothing calls this directly

Calls 9

CreateFileFunction · 0.85
CollectFileInfoGeneratorFunction · 0.85
SortInfosFunction · 0.85
AssertFileInfoFunction · 0.85
CollectAsyncGeneratorFunction · 0.85
CreateDirMethod · 0.45
GetFileInfoGeneratorMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected