vfs: trace, extract

This commit is contained in:
2018-11-23 18:49:44 +07:00
parent f1299a2a7e
commit 827c667b88
4 changed files with 112 additions and 2 deletions

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c72ff0ca4cd5c914d557f6e1c08c1f63f7d4da3339c15f1c2b5def5fe13d32d2
size 440
oid sha256:7f9dbd20a52c39630253723d3e5c0f478c8cd70de48048966c0ca5becaa97fe3
size 1423

View File

@@ -78,6 +78,49 @@ TEST_CASE("vfs"){
REQUIRE_FALSE(v.exists({"archive", "test2.txt"}));
REQUIRE_FALSE(v.exists({"archive", "folder/file2.txt"}));
{
vector<std::pair<str,bool>> result;
REQUIRE(v.extract(url("archive://"), std::back_inserter(result)));
REQUIRE(result == vector<std::pair<str, bool>>{
{"folder/", true},
{"folder/file.txt", false},
{"test.txt", false},
{"folder/subfolder/", true},
{"folder/subfolder/file.txt", false},
{"folder2/", true},
{"folder2/file.txt", false},
{"folder2/subfolder2/", true},
{"folder2/subfolder2/file.txt", false}
});
}
{
vector<std::pair<str,bool>> result;
REQUIRE(v.extract(url("archive://folder"), std::back_inserter(result)));
REQUIRE(result == vector<std::pair<str, bool>>{
{"folder/file.txt", false},
{"folder/subfolder/", true},
{"folder/subfolder/file.txt", false}
});
}
{
vector<std::pair<str,bool>> result;
REQUIRE(v.extract(url("archive://folder2/subfolder2"), std::back_inserter(result)));
REQUIRE(result == vector<std::pair<str, bool>>{
{"folder2/subfolder2/file.txt", false}
});
}
{
vector<std::pair<str,bool>> result, result2;
REQUIRE(v.extract(url("archive://folder"), std::back_inserter(result)));
REQUIRE(v.extract(url("archive://folder/"), std::back_inserter(result2)));
REQUIRE(result == result2);
}
{
vector<std::pair<str,bool>> result;
REQUIRE_FALSE(v.extract(url("archive://fold"), std::back_inserter(result)));
REQUIRE_FALSE(v.extract(url("archive://folder3"), std::back_inserter(result)));
REQUIRE_FALSE(v.extract(url("archive://test.txt"), std::back_inserter(result)));
}
{
auto f = v.open(url("archive://test.txt"));
REQUIRE(f);