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

Function TestBucket

cpp/src/arrow/filesystem/s3fs_narrative_test.cc:106–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104}
105
106void TestBucket(int argc, char** argv) {
107 ASSERT_OK_AND_ASSIGN(auto fs, MakeFileSystem());
108 std::vector<FileInfo> infos;
109 FileSelector select;
110 std::shared_ptr<io::InputStream> is;
111 std::shared_ptr<io::RandomAccessFile> file;
112 std::shared_ptr<Buffer> buf;
113 Status status;
114
115 // Check bucket exists and is empty
116 select.base_dir = "";
117 select.allow_not_found = false;
118 select.recursive = false;
119 ASSERT_OK_AND_ASSIGN(infos, fs->GetFileInfo(select));
120 ASSERT_EQ(infos.size(), 0) << "Bucket should be empty, perhaps use --clear?";
121
122 // Create directory structure
123 ASSERT_OK(fs->CreateDir("EmptyDir", /*recursive=*/false));
124 ASSERT_OK(fs->CreateDir("Dir1", /*recursive=*/false));
125 ASSERT_OK(fs->CreateDir("Dir1/Subdir", /*recursive=*/false));
126 ASSERT_RAISES_PRINT("CreateDir in nonexistent parent", IOError,
127 fs->CreateDir("Dir2/Subdir", /*recursive=*/false));
128 ASSERT_OK(fs->CreateDir("Dir2/Subdir", /*recursive=*/true));
129 ASSERT_OK(fs->CreateDir("Nested/1/2/3/4", /*recursive=*/true));
130 CreateFile(fs.get(), "File1", "first data");
131 CreateFile(fs.get(), "Dir1/File2", "second data");
132 CreateFile(fs.get(), "Dir2/Subdir/File3", "third data");
133 CreateFile(fs.get(), "Nested/1/2/3/4/File4", "fourth data");
134
135 // GetFileInfo(Selector)
136 select.base_dir = "";
137 ASSERT_OK_AND_ASSIGN(infos, fs->GetFileInfo(select));
138 ASSERT_EQ(infos.size(), 5);
139 SortInfos(&infos);
140 AssertFileInfo(infos[0], "Dir1", FileType::Directory);
141 AssertFileInfo(infos[1], "Dir2", FileType::Directory);
142 AssertFileInfo(infos[2], "EmptyDir", FileType::Directory);
143 AssertFileInfo(infos[3], "File1", FileType::File, 10);
144 AssertFileInfo(infos[4], "Nested", FileType::Directory);
145
146 select.base_dir = "zzzz";
147 ASSERT_RAISES_PRINT("GetFileInfo(Selector) with nonexisting base_dir", IOError,
148 fs->GetFileInfo(select));
149 select.allow_not_found = true;
150 ASSERT_OK_AND_ASSIGN(infos, fs->GetFileInfo(select));
151 ASSERT_EQ(infos.size(), 0);
152
153 select.base_dir = "Dir1";
154 select.allow_not_found = false;
155 ASSERT_OK_AND_ASSIGN(infos, fs->GetFileInfo(select));
156 ASSERT_EQ(infos.size(), 2);
157 SortInfos(&infos);
158 AssertFileInfo(infos[0], "Dir1/File2", FileType::File, 11);
159 AssertFileInfo(infos[1], "Dir1/Subdir", FileType::Directory);
160
161 select.base_dir = "Dir2";
162 select.recursive = true;
163 ASSERT_OK_AND_ASSIGN(infos, fs->GetFileInfo(select));

Callers 1

TestMainFunction · 0.85

Calls 15

CreateFileFunction · 0.85
SortInfosFunction · 0.85
AssertFileInfoFunction · 0.85
CheckDirectoryFunction · 0.85
AssertBufferEqualFunction · 0.85
ASSERT_OK_AND_ASSIGNFunction · 0.70
AssertFileContentsFunction · 0.70
GetFileInfoMethod · 0.45
sizeMethod · 0.45
CreateDirMethod · 0.45
getMethod · 0.45
OpenInputStreamMethod · 0.45

Tested by

no test coverage detected