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

Function TestGlobFiles

cpp/src/arrow/filesystem/filesystem_test.cc:353–380  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

351}
352
353void TestGlobFiles(const std::string& base_dir) {
354 auto fs = std::make_shared<MockFileSystem>(TimePoint{});
355
356 auto check_entries = [](const std::vector<FileInfo>& infos,
357 std::vector<std::string> expected) -> void {
358 std::vector<std::string> actual(infos.size());
359 std::transform(infos.begin(), infos.end(), actual.begin(),
360 [](const FileInfo& file) { return file.path(); });
361 std::sort(actual.begin(), actual.end());
362 ASSERT_EQ(actual, expected);
363 };
364
365 ASSERT_OK(fs->CreateDir(base_dir + "A/CD"));
366 ASSERT_OK(fs->CreateDir(base_dir + "AB/CD"));
367 ASSERT_OK(fs->CreateDir(base_dir + "AB/CD/ab"));
368 CreateFile(fs.get(), base_dir + "A/CD/ab.txt", "data");
369 CreateFile(fs.get(), base_dir + "AB/CD/a.txt", "data");
370 CreateFile(fs.get(), base_dir + "AB/CD/abc.txt", "data");
371 CreateFile(fs.get(), base_dir + "AB/CD/ab/c.txt", "data");
372
373 FileInfoVector infos;
374 ASSERT_OK_AND_ASSIGN(infos, GlobFiles(fs, base_dir + "A*/CD/?b*.txt"));
375 ASSERT_EQ(infos.size(), 2);
376 check_entries(infos, {base_dir + "A/CD/ab.txt", base_dir + "AB/CD/abc.txt"});
377
378 ASSERT_OK_AND_ASSIGN(infos, GlobFiles(fs, base_dir + "A*/CD/?/b*.txt"));
379 ASSERT_EQ(infos.size(), 0);
380}
381
382TEST(InternalUtil, GlobFilesWithoutLeadingSlash) { TestGlobFiles(""); }
383

Callers 1

TESTFunction · 0.85

Calls 9

CreateFileFunction · 0.85
GlobFilesFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.70
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
pathMethod · 0.45
CreateDirMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected