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

Function TestGlobFiles

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

Source from the content-addressed store, hash-verified

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

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