Skip to content
Snippets Groups Projects
Commit 37ccd990 authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

fix tests

parent 071cd886
No related branches found
No related tags found
No related merge requests found
...@@ -30,6 +30,16 @@ class SystemIO final : public IO { ...@@ -30,6 +30,16 @@ class SystemIO final : public IO {
static const int kWaitTimeoutMs; static const int kWaitTimeoutMs;
#if defined(__linux__) || defined (__APPLE__)
// used to for epoll - assumed single epoll instance per class instance
const int kMaxEpollEvents = 10;
mutable int epoll_fd_ = -1;
Error AddToEpool(SocketDescriptor sd) const;
Error CreateEpoolIfNeeded(SocketDescriptor master_socket) const;
Error ProcessNewConnection(SocketDescriptor master_socket, std::vector<std::string>* new_connections,
ListSocketDescriptors* sockets_to_listen) const;
#endif
void ApplyNetworkOptions(SocketDescriptor socket_fd, Error* err) const; void ApplyNetworkOptions(SocketDescriptor socket_fd, Error* err) const;
//void CollectFileInformationRecursively(const std::string& path, std::vector<FileInfo>* files, IOErrors* err) const; //void CollectFileInformationRecursively(const std::string& path, std::vector<FileInfo>* files, IOErrors* err) const;
...@@ -71,19 +81,8 @@ class SystemIO final : public IO { ...@@ -71,19 +81,8 @@ class SystemIO final : public IO {
void GetSubDirectoriesRecursively(const std::string& path, SubDirList* subdirs, Error* err) const; void GetSubDirectoriesRecursively(const std::string& path, SubDirList* subdirs, Error* err) const;
Error CreateDirectoryWithParents(const std::string& root_path, const std::string& path) const; Error CreateDirectoryWithParents(const std::string& root_path, const std::string& path) const;
uint8_t* AllocateArray(uint64_t fsize, Error* err) const; uint8_t* AllocateArray(uint64_t fsize, Error* err) const;
#if defined(__linux__) || defined (__APPLE__)
// used to for epoll - assumed single epoll instance per class instance
const int kMaxEpollEvents = 10;
mutable int epoll_fd_ = -1;
Error AddToEpool(SocketDescriptor sd) const;
Error CreateEpoolIfNeeded(SocketDescriptor master_socket) const;
Error ProcessNewConnection(SocketDescriptor master_socket, std::vector<std::string>* new_connections,
ListSocketDescriptors* sockets_to_listen) const;
FileDescriptor OpenWithCreateFolders(const std::string& root_folder, const std::string& fname, FileDescriptor OpenWithCreateFolders(const std::string& root_folder, const std::string& fname,
bool create_directories, Error* err) const; bool create_directories, Error* err) const;
#endif
public: public:
~SystemIO(); ~SystemIO();
/* /*
......
...@@ -7,32 +7,12 @@ ...@@ -7,32 +7,12 @@
namespace asapo { namespace asapo {
Error RequestHandlerReceiveData::ReceiveMetaData(Request* request) const {
auto meta_size = request->GetMetaDataSize();
if (meta_size == 0) {
return nullptr;
}
Error err;
auto buf = std::unique_ptr<uint8_t[]> {new uint8_t[meta_size]};
io__->Receive(request->GetSocket(), (void*) buf.get(), meta_size, &err);
if (err) {
return err;
}
request->SetMetadata(std::string((char*)buf.get(), meta_size));
return nullptr;
}
bool RequestHandlerReceiveData::NeedReceiveData(const Request* request) const { bool RequestHandlerReceiveData::NeedReceiveData(const Request* request) const {
return request->GetDataSize() > 0 && return request->GetDataSize() > 0 &&
(request->GetCustomData()[asapo::kPosIngestMode] & asapo::kTransferData); (request->GetCustomData()[asapo::kPosIngestMode] & asapo::kTransferData);
} }
Error RequestHandlerReceiveData::ReceiveData(Request* request) const { Error RequestHandlerReceiveData::ProcessRequest(Request* request) const {
if (!NeedReceiveData(request)) { if (!NeedReceiveData(request)) {
return nullptr; return nullptr;
} }
...@@ -45,21 +25,6 @@ Error RequestHandlerReceiveData::ReceiveData(Request* request) const { ...@@ -45,21 +25,6 @@ Error RequestHandlerReceiveData::ReceiveData(Request* request) const {
return err; return err;
} }
Error RequestHandlerReceiveData::ReceiveRequestContent(Request* request) const {
auto err = ReceiveMetaData(request);
if (err) {
return err;
}
return ReceiveData(request);
}
Error RequestHandlerReceiveData::ProcessRequest(Request* request) const {
return ReceiveRequestContent(request);
}
RequestHandlerReceiveData::RequestHandlerReceiveData() : io__{GenerateDefaultIO()} , log__{GetDefaultReceiverLogger()} { RequestHandlerReceiveData::RequestHandlerReceiveData() : io__{GenerateDefaultIO()} , log__{GetDefaultReceiverLogger()} {
} }
......
...@@ -16,9 +16,6 @@ class RequestHandlerReceiveData final: public ReceiverRequestHandler { ...@@ -16,9 +16,6 @@ class RequestHandlerReceiveData final: public ReceiverRequestHandler {
std::unique_ptr<IO> io__; std::unique_ptr<IO> io__;
const AbstractLogger* log__; const AbstractLogger* log__;
private: private:
Error ReceiveData(Request* request)const;
Error ReceiveMetaData(Request* request) const;
Error ReceiveRequestContent(Request* request) const;
bool NeedReceiveData(const Request* request) const; bool NeedReceiveData(const Request* request) const;
}; };
......
...@@ -60,7 +60,6 @@ class ReceiveDataHandlerTests : public Test { ...@@ -60,7 +60,6 @@ class ReceiveDataHandlerTests : public Test {
uint64_t expected_slot_id{16}; uint64_t expected_slot_id{16};
std::string expected_origin_uri = "origin_uri"; std::string expected_origin_uri = "origin_uri";
std::string expected_metadata = "meta"; std::string expected_metadata = "meta";
uint64_t expected_metadata_size = expected_metadata.size();
asapo::Opcode expected_op_code = asapo::kOpcodeTransferData; asapo::Opcode expected_op_code = asapo::kOpcodeTransferData;
char expected_request_message[asapo::kMaxMessageSize] = "test_message"; char expected_request_message[asapo::kMaxMessageSize] = "test_message";
std::unique_ptr<Request> request; std::unique_ptr<Request> request;
...@@ -73,24 +72,18 @@ class ReceiveDataHandlerTests : public Test { ...@@ -73,24 +72,18 @@ class ReceiveDataHandlerTests : public Test {
void SetUp() override { void SetUp() override {
generic_request_header.data_size = data_size_; generic_request_header.data_size = data_size_;
generic_request_header.data_id = data_id_; generic_request_header.data_id = data_id_;
generic_request_header.meta_size = expected_metadata_size;
generic_request_header.op_code = expected_op_code; generic_request_header.op_code = expected_op_code;
generic_request_header.custom_data[asapo::kPosIngestMode] = asapo::kDefaultIngestMode; generic_request_header.custom_data[asapo::kPosIngestMode] = asapo::kDefaultIngestMode;
strcpy(generic_request_header.message, expected_request_message); strcpy(generic_request_header.message, expected_request_message);
request.reset(new Request{generic_request_header, socket_fd_, expected_origin_uri, nullptr}); request.reset(new Request{generic_request_header, socket_fd_, expected_origin_uri, nullptr});
handler.io__ = std::unique_ptr<asapo::IO> {&mock_io}; handler.io__ = std::unique_ptr<asapo::IO> {&mock_io};
handler.log__ = &mock_logger; handler.log__ = &mock_logger;
//ON_CALL(mock_io, Receive_t(socket_fd_, _, data_size_, _)).WillByDefault(
//DoAll(SetArgPointee<3>(nullptr),
// Return(0)
// ));
} }
void TearDown() override { void TearDown() override {
handler.io__.release(); handler.io__.release();
} }
void ExpectReceive(uint64_t expected_size, bool ok = true); void ExpectReceive(uint64_t expected_size, bool ok = true);
void ExpectReceiveData(bool ok = true); void ExpectReceiveData(bool ok = true);
void ExpectReceiveMetaData(bool ok = true);
}; };
ACTION_P(CopyStr, value) { ACTION_P(CopyStr, value) {
...@@ -112,9 +105,6 @@ void ReceiveDataHandlerTests::ExpectReceive(uint64_t expected_size, bool ok) { ...@@ -112,9 +105,6 @@ void ReceiveDataHandlerTests::ExpectReceive(uint64_t expected_size, bool ok) {
void ReceiveDataHandlerTests::ExpectReceiveData(bool ok) { void ReceiveDataHandlerTests::ExpectReceiveData(bool ok) {
ExpectReceive(data_size_, ok); ExpectReceive(data_size_, ok);
} }
void ReceiveDataHandlerTests::ExpectReceiveMetaData(bool ok) {
ExpectReceive(expected_metadata_size, ok);
}
TEST_F(ReceiveDataHandlerTests, CheckStatisticEntity) { TEST_F(ReceiveDataHandlerTests, CheckStatisticEntity) {
auto entity = handler.GetStatisticEntity(); auto entity = handler.GetStatisticEntity();
...@@ -124,7 +114,6 @@ TEST_F(ReceiveDataHandlerTests, CheckStatisticEntity) { ...@@ -124,7 +114,6 @@ TEST_F(ReceiveDataHandlerTests, CheckStatisticEntity) {
TEST_F(ReceiveDataHandlerTests, HandleDoesNotReceiveEmptyData) { TEST_F(ReceiveDataHandlerTests, HandleDoesNotReceiveEmptyData) {
generic_request_header.data_size = 0; generic_request_header.data_size = 0;
generic_request_header.meta_size = 0;
request.reset(new Request{generic_request_header, socket_fd_, "", nullptr}); request.reset(new Request{generic_request_header, socket_fd_, "", nullptr});
EXPECT_CALL(mock_io, Receive_t(_, _, _, _)).Times(0); EXPECT_CALL(mock_io, Receive_t(_, _, _, _)).Times(0);
...@@ -140,28 +129,18 @@ TEST_F(ReceiveDataHandlerTests, HandleDoesNotReceiveDataWhenMetadataOnlyWasSent) ...@@ -140,28 +129,18 @@ TEST_F(ReceiveDataHandlerTests, HandleDoesNotReceiveDataWhenMetadataOnlyWasSent)
generic_request_header.custom_data[asapo::kPosIngestMode] = asapo::kTransferMetaDataOnly; generic_request_header.custom_data[asapo::kPosIngestMode] = asapo::kTransferMetaDataOnly;
request.reset(new Request{generic_request_header, socket_fd_, "", nullptr}); request.reset(new Request{generic_request_header, socket_fd_, "", nullptr});
ExpectReceiveMetaData(true);
auto err = handler.ProcessRequest(request.get()); auto err = handler.ProcessRequest(request.get());
ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(err, Eq(nullptr));
} }
TEST_F(ReceiveDataHandlerTests, HandleReturnsErrorOnDataReceive) { TEST_F(ReceiveDataHandlerTests, HandleReturnsErrorOnDataReceive) {
ExpectReceiveMetaData(true);
ExpectReceiveData(false); ExpectReceiveData(false);
auto err = handler.ProcessRequest(request.get()); auto err = handler.ProcessRequest(request.get());
ASSERT_THAT(err, Eq(asapo::IOErrorTemplates::kReadError)); ASSERT_THAT(err, Eq(asapo::IOErrorTemplates::kReadError));
} }
TEST_F(ReceiveDataHandlerTests, HandleReturnsErrorOnMetaDataReceive) {
ExpectReceiveMetaData(false);
auto err = handler.ProcessRequest(request.get());
ASSERT_THAT(err, Eq(asapo::IOErrorTemplates::kReadError));
}
TEST_F(ReceiveDataHandlerTests, HandleReturnsOK) { TEST_F(ReceiveDataHandlerTests, HandleReturnsOK) {
ExpectReceiveMetaData(true);
ExpectReceiveData(true); ExpectReceiveData(true);
auto err = handler.ProcessRequest(request.get()); auto err = handler.ProcessRequest(request.get());
ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(err, Eq(nullptr));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment