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

Method TestGetFileInfo

cpp/src/arrow/filesystem/hdfs_test.cc:132–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130 }
131
132 void TestGetFileInfo(const std::string& base_dir) {
133 std::vector<FileInfo> infos;
134
135 ASSERT_OK(fs_->CreateDir(base_dir + "AB"));
136 ASSERT_OK(fs_->CreateDir(base_dir + "AB/CD"));
137 ASSERT_OK(fs_->CreateDir(base_dir + "AB/EF"));
138 ASSERT_OK(fs_->CreateDir(base_dir + "AB/EF/GH"));
139 ASSERT_OK(fs_->CreateDir(base_dir + "AB/EF/GH/IJ"));
140 CreateFile(fs_.get(), base_dir + "AB/data", "some data");
141
142 // With single path
143 FileInfo info;
144 ASSERT_OK_AND_ASSIGN(info, fs_->GetFileInfo(base_dir + "AB"));
145 AssertFileInfo(info, base_dir + "AB", FileType::Directory);
146 ASSERT_OK_AND_ASSIGN(info, fs_->GetFileInfo(base_dir + "AB/data"));
147 AssertFileInfo(info, base_dir + "AB/data", FileType::File, 9);
148
149 // With selector
150 FileSelector selector;
151 selector.base_dir = base_dir + "AB";
152 selector.recursive = false;
153
154 ASSERT_OK_AND_ASSIGN(infos, fs_->GetFileInfo(selector));
155 ASSERT_EQ(infos.size(), 3);
156 AssertFileInfo(infos[0], base_dir + "AB/CD", FileType::Directory);
157 AssertFileInfo(infos[1], base_dir + "AB/EF", FileType::Directory);
158 AssertFileInfo(infos[2], base_dir + "AB/data", FileType::File);
159
160 selector.recursive = true;
161 ASSERT_OK_AND_ASSIGN(infos, fs_->GetFileInfo(selector));
162 ASSERT_EQ(infos.size(), 5);
163 AssertFileInfo(infos[0], base_dir + "AB/CD", FileType::Directory);
164 AssertFileInfo(infos[1], base_dir + "AB/EF", FileType::Directory);
165 AssertFileInfo(infos[2], base_dir + "AB/EF/GH", FileType::Directory);
166 AssertFileInfo(infos[3], base_dir + "AB/EF/GH/IJ", FileType::Directory);
167 AssertFileInfo(infos[4], base_dir + "AB/data", FileType::File, 9);
168
169 selector.max_recursion = 0;
170 ASSERT_OK_AND_ASSIGN(infos, fs_->GetFileInfo(selector));
171 ASSERT_EQ(infos.size(), 3);
172 AssertFileInfo(infos[0], base_dir + "AB/CD", FileType::Directory);
173 AssertFileInfo(infos[1], base_dir + "AB/EF", FileType::Directory);
174 AssertFileInfo(infos[2], base_dir + "AB/data", FileType::File);
175
176 selector.max_recursion = 1;
177 ASSERT_OK_AND_ASSIGN(infos, fs_->GetFileInfo(selector));
178 ASSERT_EQ(infos.size(), 4);
179 AssertFileInfo(infos[0], base_dir + "AB/CD", FileType::Directory);
180 AssertFileInfo(infos[1], base_dir + "AB/EF", FileType::Directory);
181 AssertFileInfo(infos[2], base_dir + "AB/EF/GH", FileType::Directory);
182 AssertFileInfo(infos[3], base_dir + "AB/data", FileType::File);
183
184 selector.base_dir = base_dir + "XYZ";
185 selector.allow_not_found = true;
186 ASSERT_OK_AND_ASSIGN(infos, fs_->GetFileInfo(selector));
187 ASSERT_EQ(infos.size(), 0);
188
189 selector.allow_not_found = false;

Callers 1

TEST_FFunction · 0.45

Calls 10

CreateFileFunction · 0.85
AssertFileInfoFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.70
ErrnoFromStatusFunction · 0.70
CreateDirMethod · 0.45
getMethod · 0.45
GetFileInfoMethod · 0.45
sizeMethod · 0.45
statusMethod · 0.45
DeleteDirMethod · 0.45

Tested by

no test coverage detected