test: add filesystem read error tests

This commit is contained in:
Marcus Holland-Moritz 2024-01-14 10:59:44 +01:00
parent 27ac296248
commit c322708a7b

View File

@ -37,6 +37,7 @@
#include "dwarfs/filesystem_v2.h"
#include "dwarfs/history.h"
#include "dwarfs/iovec_read_buf.h"
#include "dwarfs/logger.h"
#include "dwarfs/util.h"
#include "dwarfs_tool_main.h"
@ -2020,3 +2021,26 @@ TEST(mkdwarfs_test, recoverable_errors) {
::testing::HasSubstr("filesystem created with 2 errors"));
}
}
TEST(mkdwarfs_test, filesystem_read_error) {
mkdwarfs_tester t;
EXPECT_EQ(0, t.run("-i / -o -")) << t.err();
auto fs = t.fs_from_stdout();
auto iv = fs.find("/somedir");
ASSERT_TRUE(iv);
EXPECT_TRUE(iv->is_directory());
EXPECT_EQ(-1, fs.open(*iv));
{
char buf[1];
EXPECT_EQ(-EBADF, fs.read(iv->inode_num(), buf, sizeof(buf), 0));
}
{
iovec_read_buf buf;
EXPECT_EQ(-EBADF, fs.readv(iv->inode_num(), buf, 42, 0));
}
{
auto res = fs.readv(iv->inode_num(), 42, 0);
EXPECT_FALSE(res);
EXPECT_EQ(-EBADF, res.error());
}
}