Changeset View
Changeset View
Standalone View
Standalone View
tests/sys/fs/fusefs/mockfs.cc
Show First 20 Lines • Show All 402 Lines • ▼ Show 20 Lines | MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, | ||||
m_daemon_id = NULL; | m_daemon_id = NULL; | ||||
m_kernel_minor_version = kernel_minor_version; | m_kernel_minor_version = kernel_minor_version; | ||||
m_maxreadahead = max_readahead; | m_maxreadahead = max_readahead; | ||||
m_maxwrite = MIN(max_write, max_max_write); | m_maxwrite = MIN(max_write, max_max_write); | ||||
m_nready = -1; | m_nready = -1; | ||||
m_pm = pm; | m_pm = pm; | ||||
m_time_gran = time_gran; | m_time_gran = time_gran; | ||||
m_quit = false; | m_quit = false; | ||||
m_last_unique = 0; | |||||
if (m_pm == KQ) | if (m_pm == KQ) | ||||
m_kq = kqueue(); | m_kq = kqueue(); | ||||
else | else | ||||
m_kq = -1; | m_kq = -1; | ||||
/* | /* | ||||
* Kyua sets pwd to a testcase-unique tempdir; no need to use | * Kyua sets pwd to a testcase-unique tempdir; no need to use | ||||
* mkdtemp | * mkdtemp | ||||
▲ Show 20 Lines • Show All 269 Lines • ▼ Show 20 Lines | void MockFS::audit_request(const mockfs_buf_in &in, ssize_t buflen) { | ||||
case FUSE_FALLOCATE: | case FUSE_FALLOCATE: | ||||
case FUSE_IOCTL: | case FUSE_IOCTL: | ||||
case FUSE_POLL: | case FUSE_POLL: | ||||
case FUSE_READDIRPLUS: | case FUSE_READDIRPLUS: | ||||
FAIL() << "Unsupported opcode?"; | FAIL() << "Unsupported opcode?"; | ||||
default: | default: | ||||
FAIL() << "Unknown opcode " << in.header.opcode; | FAIL() << "Unknown opcode " << in.header.opcode; | ||||
} | } | ||||
/* | |||||
* Check that the ticket's unique value is sequential. Technically it | |||||
* doesn't need to be sequential, merely unique. But the current | |||||
* fusefs driver _does_ make it sequential, and that's easy to check | |||||
* for. | |||||
*/ | |||||
if (in.header.unique != ++m_last_unique) | |||||
FAIL() << "Non-sequential unique value"; | |||||
} | } | ||||
void MockFS::init(uint32_t flags) { | void MockFS::init(uint32_t flags) { | ||||
ssize_t buflen; | ssize_t buflen; | ||||
std::unique_ptr<mockfs_buf_in> in(new mockfs_buf_in); | std::unique_ptr<mockfs_buf_in> in(new mockfs_buf_in); | ||||
std::unique_ptr<mockfs_buf_out> out(new mockfs_buf_out); | std::unique_ptr<mockfs_buf_out> out(new mockfs_buf_out); | ||||
▲ Show 20 Lines • Show All 287 Lines • Show Last 20 Lines |