fix MemoryDevice::list & update filesystem tests
This commit is contained in:
parent
262a373483
commit
1e1fd53209
@ -4,6 +4,7 @@ assert(file.exists("config:"))
|
|||||||
debug.log("write text file")
|
debug.log("write text file")
|
||||||
assert(file.write("config:text.txt", "example, пример"))
|
assert(file.write("config:text.txt", "example, пример"))
|
||||||
assert(file.exists("config:text.txt"))
|
assert(file.exists("config:text.txt"))
|
||||||
|
assert(file.isfile("config:text.txt"))
|
||||||
|
|
||||||
debug.log("read text file")
|
debug.log("read text file")
|
||||||
assert(file.read("config:text.txt") == "example, пример")
|
assert(file.read("config:text.txt") == "example, пример")
|
||||||
@ -24,6 +25,17 @@ debug.log("create directories")
|
|||||||
file.mkdirs("config:dir/subdir/other")
|
file.mkdirs("config:dir/subdir/other")
|
||||||
assert(file.isdir("config:dir/subdir/other"))
|
assert(file.isdir("config:dir/subdir/other"))
|
||||||
|
|
||||||
|
debug.log("list directory")
|
||||||
|
file.write("config:dir/subdir/a.txt", "helloworld")
|
||||||
|
file.write("config:dir/subdir/b.txt", "gfgsfhs")
|
||||||
|
|
||||||
|
local entries = file.list("config:dir/subdir")
|
||||||
|
assert(#entries == 3)
|
||||||
|
table.sort(entries)
|
||||||
|
assert(entries[1] == "config:dir/subdir/a.txt")
|
||||||
|
assert(entries[2] == "config:dir/subdir/b.txt")
|
||||||
|
assert(entries[3] == "config:dir/subdir/other")
|
||||||
|
|
||||||
debug.log("remove tree")
|
debug.log("remove tree")
|
||||||
file.remove_tree("config:dir")
|
file.remove_tree("config:dir")
|
||||||
assert(not file.isdir("config:dir"))
|
assert(not file.isdir("config:dir"))
|
||||||
|
|||||||
@ -1,12 +1,15 @@
|
|||||||
app.create_memory_device("memtest")
|
app.create_memory_device("memtest")
|
||||||
|
local tmp = file.create_memory_device()
|
||||||
|
|
||||||
debug.log("check initial state")
|
debug.log("check initial state")
|
||||||
assert(file.exists("memtest:"))
|
assert(file.exists("memtest:"))
|
||||||
assert(file.is_writeable("memtest:"))
|
assert(file.is_writeable("memtest:"))
|
||||||
|
assert(file.is_writeable(tmp..":"))
|
||||||
|
|
||||||
debug.log("write text file")
|
debug.log("write text file")
|
||||||
assert(file.write("memtest:text.txt", "example, пример"))
|
assert(file.write("memtest:text.txt", "example, пример"))
|
||||||
assert(file.exists("memtest:text.txt"))
|
assert(file.exists("memtest:text.txt"))
|
||||||
|
assert(file.isfile("memtest:text.txt"))
|
||||||
|
|
||||||
debug.log("read text file")
|
debug.log("read text file")
|
||||||
assert(file.read("memtest:text.txt") == "example, пример")
|
assert(file.read("memtest:text.txt") == "example, пример")
|
||||||
@ -27,6 +30,17 @@ debug.log("create directories")
|
|||||||
file.mkdirs("memtest:dir/subdir/other")
|
file.mkdirs("memtest:dir/subdir/other")
|
||||||
assert(file.isdir("memtest:dir/subdir/other"))
|
assert(file.isdir("memtest:dir/subdir/other"))
|
||||||
|
|
||||||
|
debug.log("list directory")
|
||||||
|
file.write("memtest:dir/subdir/a.txt", "helloworld")
|
||||||
|
file.write("memtest:dir/subdir/b.txt", "gfgsfhs")
|
||||||
|
|
||||||
|
local entries = file.list("memtest:dir/subdir")
|
||||||
|
assert(#entries == 3)
|
||||||
|
table.sort(entries)
|
||||||
|
assert(entries[1] == "memtest:dir/subdir/a.txt")
|
||||||
|
assert(entries[2] == "memtest:dir/subdir/b.txt")
|
||||||
|
assert(entries[3] == "memtest:dir/subdir/other")
|
||||||
|
|
||||||
debug.log("remove tree")
|
debug.log("remove tree")
|
||||||
file.remove_tree("memtest:dir")
|
file.remove_tree("memtest:dir")
|
||||||
assert(not file.isdir("memtest:dir"))
|
assert(not file.isdir("memtest:dir"))
|
||||||
|
|||||||
@ -139,7 +139,8 @@ uint64_t io::MemoryDevice::removeAll(std::string_view path) {
|
|||||||
uint64_t count = 0;
|
uint64_t count = 0;
|
||||||
if (found->second.holds_alternative<Dir>()) {
|
if (found->second.holds_alternative<Dir>()) {
|
||||||
auto dir = found->second.get_if<Dir>();
|
auto dir = found->second.get_if<Dir>();
|
||||||
for (const auto& name : dir->content) {
|
auto files = dir->content;
|
||||||
|
for (const auto& name : files) {
|
||||||
io::path subPath = filePath / name;
|
io::path subPath = filePath / name;
|
||||||
count += removeAll(subPath.string());
|
count += removeAll(subPath.string());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user