From 4d4caf8e58a06a5b121170bd1b237004e9e86e5f Mon Sep 17 00:00:00 2001 From: Carsten Patzke <carsten.patzke@desy.de> Date: Wed, 8 Apr 2020 16:24:06 +0200 Subject: [PATCH] [RDS] Added request argument to SendResponse --- receiver/src/receiver_data_server/rds_net_server.h | 3 ++- .../receiver_data_server_request_handler.cpp | 2 +- receiver/src/receiver_data_server/tcp_server.cpp | 5 +++-- receiver/src/receiver_data_server/tcp_server.h | 3 ++- .../receiver_data_server/receiver_dataserver_mocking.h | 8 +++++--- .../receiver_data_server/test_request_handler.cpp | 1 + .../unittests/receiver_data_server/test_tcp_server.cpp | 5 +++-- 7 files changed, 17 insertions(+), 10 deletions(-) diff --git a/receiver/src/receiver_data_server/rds_net_server.h b/receiver/src/receiver_data_server/rds_net_server.h index 7498f7794..7465a5838 100644 --- a/receiver/src/receiver_data_server/rds_net_server.h +++ b/receiver/src/receiver_data_server/rds_net_server.h @@ -10,7 +10,8 @@ namespace asapo { class RdsNetServer { public: virtual GenericRequests GetNewRequests(Error* err) const noexcept = 0; - virtual Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept = 0; + virtual Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept = 0; virtual Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, diff --git a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp index c8668d763..c064a9772 100644 --- a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp +++ b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp @@ -19,7 +19,7 @@ Error ReceiverDataServerRequestHandler::SendResponse(const ReceiverDataServerReq GenericNetworkResponse response{}; response.op_code = kOpcodeGetBufferData; response.error_code = code; - return server_->SendResponse(request->source_id, &response); + return server_->SendResponse(request, request->source_id, &response); } Error ReceiverDataServerRequestHandler::SendResponseAndSlotData(const ReceiverDataServerRequest* request, diff --git a/receiver/src/receiver_data_server/tcp_server.cpp b/receiver/src/receiver_data_server/tcp_server.cpp index 36c72c4fd..6dd04c636 100644 --- a/receiver/src/receiver_data_server/tcp_server.cpp +++ b/receiver/src/receiver_data_server/tcp_server.cpp @@ -94,7 +94,8 @@ void TcpServer::HandleAfterError(uint64_t source_id) const noexcept { CloseSocket(source_id); } -Error TcpServer::SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept { +Error TcpServer::SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept { Error err; io__->Send(source_id, response, sizeof(*response), &err); if (err) { @@ -109,7 +110,7 @@ TcpServer::SendResponseAndSlotData(const ReceiverDataServerRequest* request, uin const CacheMeta* cache_slot) const noexcept { Error err; - err = SendResponse(source_id, response); + err = SendResponse(nullptr, source_id, response); if (err) { return err; } diff --git a/receiver/src/receiver_data_server/tcp_server.h b/receiver/src/receiver_data_server/tcp_server.h index 12d9aac11..c7caf5ecc 100644 --- a/receiver/src/receiver_data_server/tcp_server.h +++ b/receiver/src/receiver_data_server/tcp_server.h @@ -14,7 +14,8 @@ class TcpServer : public RdsNetServer { explicit TcpServer(std::string address); ~TcpServer() override; GenericRequests GetNewRequests(Error* err) const noexcept override ; - Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept override; + Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept override; Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept override; diff --git a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h index bfe19e409..dc8c1ef9e 100644 --- a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h +++ b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h @@ -27,10 +27,12 @@ class MockNetServer : public RdsNetServer { MOCK_CONST_METHOD1(GetNewRequests_t, std::vector<ReceiverDataServerRequest> (ErrorInterface** error)); - Error SendResponse(uint64_t source_id, const GenericNetworkResponse* response) const noexcept override { - return Error{SendResponse_t(source_id, response)}; + Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response) const noexcept override { + return Error{SendResponse_t(request, source_id, response)}; }; - MOCK_CONST_METHOD2(SendResponse_t, ErrorInterface * (uint64_t source_id, const GenericNetworkResponse* response)); + MOCK_CONST_METHOD3(SendResponse_t, ErrorInterface * (const ReceiverDataServerRequest* request, uint64_t source_id, + const GenericNetworkResponse* response)); Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, const GenericNetworkResponse* response, diff --git a/receiver/unittests/receiver_data_server/test_request_handler.cpp b/receiver/unittests/receiver_data_server/test_request_handler.cpp index 7334eb182..613aaf477 100644 --- a/receiver/unittests/receiver_data_server/test_request_handler.cpp +++ b/receiver/unittests/receiver_data_server/test_request_handler.cpp @@ -87,6 +87,7 @@ void RequestHandlerTests::MockGetSlotAndUnlockIt(bool return_without_error) { void RequestHandlerTests::MockSendResponse(asapo::NetworkErrorCode expected_response_code, bool return_without_error) { EXPECT_CALL(mock_net, SendResponse_t( + &request, expected_source_id, M_CheckResponse(asapo::kOpcodeGetBufferData, expected_response_code, "") )).WillOnce( diff --git a/receiver/unittests/receiver_data_server/test_tcp_server.cpp b/receiver/unittests/receiver_data_server/test_tcp_server.cpp index 1d9127a50..40b1a4a82 100644 --- a/receiver/unittests/receiver_data_server/test_tcp_server.cpp +++ b/receiver/unittests/receiver_data_server/test_tcp_server.cpp @@ -236,8 +236,9 @@ TEST_F(TCPServerTests, GetNewRequestsReadOk) { TEST_F(TCPServerTests, SendResponse) { asapo::GenericNetworkResponse tmp {}; + asapo::ReceiverDataServerRequest expectedRequest {{}, 30}; - EXPECT_CALL(mock_io, Send_t(1, &tmp, sizeof(asapo::GenericNetworkResponse), _)) + EXPECT_CALL(mock_io, Send_t(30, &tmp, sizeof(asapo::GenericNetworkResponse), _)) .WillOnce( DoAll( testing::SetArgPointee<3>(asapo::IOErrorTemplates::kUnknownIOError.Generate().release()), @@ -246,7 +247,7 @@ TEST_F(TCPServerTests, SendResponse) { EXPECT_CALL(mock_logger, Error(HasSubstr("cannot send"))); - auto err = tcp_server.SendResponse(1, &tmp); + auto err = tcp_server.SendResponse(&expectedRequest, 30, &tmp); ASSERT_THAT(err, Ne(nullptr)); } -- GitLab