parent
4e1c9e144c
commit
a86061356a
@ -0,0 +1,37 @@
|
|||||||
|
#include "webfuse/request_type.hpp"
|
||||||
|
|
||||||
|
namespace webfuse
|
||||||
|
{
|
||||||
|
|
||||||
|
request_type get_request_type(uint8_t value)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case static_cast<uint8_t>(request_type::access): return request_type::access;
|
||||||
|
case static_cast<uint8_t>(request_type::getattr): return request_type::getattr;
|
||||||
|
case static_cast<uint8_t>(request_type::readlink): return request_type::readlink;
|
||||||
|
case static_cast<uint8_t>(request_type::symlink): return request_type::symlink;
|
||||||
|
case static_cast<uint8_t>(request_type::link): return request_type::link;
|
||||||
|
case static_cast<uint8_t>(request_type::rename): return request_type::rename;
|
||||||
|
case static_cast<uint8_t>(request_type::chmod): return request_type::chmod;
|
||||||
|
case static_cast<uint8_t>(request_type::chown): return request_type::chown;
|
||||||
|
case static_cast<uint8_t>(request_type::truncate): return request_type::truncate;
|
||||||
|
case static_cast<uint8_t>(request_type::fsync): return request_type::fsync;
|
||||||
|
case static_cast<uint8_t>(request_type::open): return request_type::open;
|
||||||
|
case static_cast<uint8_t>(request_type::mknod): return request_type::mknod;
|
||||||
|
case static_cast<uint8_t>(request_type::create): return request_type::create;
|
||||||
|
case static_cast<uint8_t>(request_type::release): return request_type::release;
|
||||||
|
case static_cast<uint8_t>(request_type::unlink): return request_type::unlink;
|
||||||
|
case static_cast<uint8_t>(request_type::read): return request_type::read;
|
||||||
|
case static_cast<uint8_t>(request_type::write): return request_type::write;
|
||||||
|
case static_cast<uint8_t>(request_type::mkdir): return request_type::mkdir;
|
||||||
|
case static_cast<uint8_t>(request_type::readdir): return request_type::readdir;
|
||||||
|
case static_cast<uint8_t>(request_type::rmdir): return request_type::rmdir;
|
||||||
|
case static_cast<uint8_t>(request_type::statfs): return request_type::statfs;
|
||||||
|
case static_cast<uint8_t>(request_type::utimens): return request_type::utimens;
|
||||||
|
default:
|
||||||
|
return request_type::unknown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
#include "webfuse/response_type.hpp"
|
||||||
|
|
||||||
|
namespace webfuse
|
||||||
|
{
|
||||||
|
|
||||||
|
response_type get_response_type(request_type value)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case request_type::access: return response_type::access;
|
||||||
|
case request_type::getattr: return response_type::getattr;
|
||||||
|
case request_type::readlink: return response_type::readlink;
|
||||||
|
case request_type::symlink: return response_type::symlink;
|
||||||
|
case request_type::link: return response_type::link;
|
||||||
|
case request_type::rename: return response_type::rename;
|
||||||
|
case request_type::chmod: return response_type::chmod;
|
||||||
|
case request_type::chown: return response_type::chown;
|
||||||
|
case request_type::truncate: return response_type::truncate;
|
||||||
|
case request_type::fsync: return response_type::fsync;
|
||||||
|
case request_type::open: return response_type::open;
|
||||||
|
case request_type::mknod: return response_type::mknod;
|
||||||
|
case request_type::create: return response_type::create;
|
||||||
|
case request_type::release: return response_type::release;
|
||||||
|
case request_type::unlink: return response_type::unlink;
|
||||||
|
case request_type::read: return response_type::read;
|
||||||
|
case request_type::write: return response_type::write;
|
||||||
|
case request_type::mkdir: return response_type::mkdir;
|
||||||
|
case request_type::readdir: return response_type::readdir;
|
||||||
|
case request_type::rmdir: return response_type::rmdir;
|
||||||
|
case request_type::statfs: return response_type::statfs;
|
||||||
|
case request_type::utimens: return response_type::utimens;
|
||||||
|
default:
|
||||||
|
return response_type::unknown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
#include "webfuse/request_type.hpp"
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
using webfuse::request_type;
|
||||||
|
|
||||||
|
class request_type_test: public testing::TestWithParam<request_type> { };
|
||||||
|
|
||||||
|
TEST_P(request_type_test, conversion)
|
||||||
|
{
|
||||||
|
auto const expected = GetParam();
|
||||||
|
auto const actual = webfuse::get_request_type(static_cast<uint8_t>(expected));
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(request_type_values, request_type_test,
|
||||||
|
testing::Values(
|
||||||
|
request_type::access, request_type::getattr, request_type::readlink,
|
||||||
|
request_type::symlink, request_type::link, request_type::link,
|
||||||
|
request_type::rename, request_type::chmod, request_type::chown,
|
||||||
|
request_type::truncate, request_type::fsync, request_type::open,
|
||||||
|
request_type::mknod, request_type::create, request_type::release,
|
||||||
|
request_type::unlink, request_type::read, request_type::write,
|
||||||
|
request_type::mkdir, request_type::readdir, request_type::rmdir,
|
||||||
|
request_type::statfs, request_type::utimens, request_type::unknown)
|
||||||
|
);
|
||||||
|
|
||||||
|
TEST(request_type, unknown_values)
|
||||||
|
{
|
||||||
|
auto const expected = request_type::unknown;
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, webfuse::get_request_type(0x20));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_request_type(0x30));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_request_type(0x80));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_request_type(0x42));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_request_type(0xff));
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
#include "webfuse/response_type.hpp"
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
using webfuse::request_type;
|
||||||
|
|
||||||
|
class response_type_test: public testing::TestWithParam<request_type> { };
|
||||||
|
|
||||||
|
TEST_P(response_type_test, conversion)
|
||||||
|
{
|
||||||
|
auto const value = GetParam();
|
||||||
|
auto const actual = webfuse::get_response_type(value);
|
||||||
|
auto const expected = static_cast<webfuse::response_type>(static_cast<uint8_t>(value) | 0x80);
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(response_type_values, response_type_test,
|
||||||
|
testing::Values(
|
||||||
|
request_type::access, request_type::getattr, request_type::readlink,
|
||||||
|
request_type::symlink, request_type::link, request_type::link,
|
||||||
|
request_type::rename, request_type::chmod, request_type::chown,
|
||||||
|
request_type::truncate, request_type::fsync, request_type::open,
|
||||||
|
request_type::mknod, request_type::create, request_type::release,
|
||||||
|
request_type::unlink, request_type::read, request_type::write,
|
||||||
|
request_type::mkdir, request_type::readdir, request_type::rmdir,
|
||||||
|
request_type::statfs, request_type::utimens, request_type::unknown)
|
||||||
|
);
|
||||||
|
|
||||||
|
TEST(respones_type, unknown_values)
|
||||||
|
{
|
||||||
|
auto const expected = webfuse::response_type::unknown;
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, webfuse::get_response_type(static_cast<request_type>(0x20)));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_response_type(static_cast<request_type>(0x30)));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_response_type(static_cast<request_type>(80)));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_response_type(static_cast<request_type>(0x42)));
|
||||||
|
ASSERT_EQ(expected, webfuse::get_response_type(static_cast<request_type>(0xff)));
|
||||||
|
}
|
Loading…
Reference in new issue