diff --git a/common/cpp/include/asapo/common/data_structs.h b/common/cpp/include/asapo/common/data_structs.h index b864e310da8a0180d8bb5eab9543a7941a8703f6..1460af10bd07e7bf4abe0343988311e3cef53a95 100644 --- a/common/cpp/include/asapo/common/data_structs.h +++ b/common/cpp/include/asapo/common/data_structs.h @@ -22,6 +22,9 @@ std::chrono::system_clock::time_point TimePointfromNanosec(uint64_t nanoseconds_ std::string IsoDateFromEpochNanosecs(uint64_t time_from_epoch_nanosec); uint64_t NanosecsEpochFromISODate(std::string date_time); +std::string HostFromUri(const std::string& uri); + + bool TimeFromJson(const JsonStringParser& parser, const std::string& name, std::chrono::system_clock::time_point* val); class MessageMeta { diff --git a/common/cpp/include/asapo/common/networking.h b/common/cpp/include/asapo/common/networking.h index ca2c2f8e81fb6b788581e1d1cfe13cdbc816ca39..09009e49c59f33a42285d84bcd6be6007561bd34 100644 --- a/common/cpp/include/asapo/common/networking.h +++ b/common/cpp/include/asapo/common/networking.h @@ -18,7 +18,6 @@ enum class NetworkConnectionType : uint32_t { kFabric, // Fabric connection (Primarily used for InfiniBand verbs) }; - // do not forget to add new codes to the end! enum Opcode : uint8_t { kOpcodeUnknownOp = 1, @@ -34,6 +33,30 @@ enum Opcode : uint8_t { kOpcodeCount, }; +inline std::string OpcodeToString(uint8_t code) { + switch (code) { + case kOpcodeTransferData: + return "transfer data"; + case kOpcodeTransferDatasetData: + return "transfer dataset data"; + case kOpcodeStreamInfo: + return "stream info"; + case kOpcodeLastStream: + return "last stream"; + case kOpcodeGetBufferData: + return "get buffer data"; + case kOpcodeAuthorize: + return "authorize"; + case kOpcodeTransferMetaData: + return "transfer metadata"; + case kOpcodeDeleteStream: + return "delete stream"; + case kOpcodeGetMeta: + return "get meta"; + default: + return "unknown op"; + } +} enum NetworkErrorCode : uint16_t { kNetErrorNoError, @@ -69,40 +92,38 @@ struct GenericRequestHeader { /* Keep in mind that the message here is just strncpy'ed, you can change the message later */ GenericRequestHeader(Opcode i_op_code = kOpcodeUnknownOp, uint64_t i_data_id = 0, uint64_t i_data_size = 0, uint64_t i_meta_size = 0, const std::string& i_message = "", - const std::string& i_stream = ""): + const std::string& i_stream = "") : op_code{i_op_code}, data_id{i_data_id}, data_size{i_data_size}, meta_size{i_meta_size} { strncpy(message, i_message.c_str(), kMaxMessageSize); strncpy(stream, i_stream.c_str(), kMaxMessageSize); strncpy(api_version, "v0.0", kMaxVersionSize); } - Opcode op_code; - uint64_t data_id; - uint64_t data_size; - uint64_t meta_size; - CustomRequestData custom_data; - char message[kMaxMessageSize]; /* Can also be a binary message (e.g. MemoryRegionDetails) */ - char stream[kMaxMessageSize]; /* Must be a string (strcpy is used) */ - char api_version[kMaxVersionSize]; /* Must be a string (strcpy is used) */ + Opcode op_code; + uint64_t data_id; + uint64_t data_size; + uint64_t meta_size; + CustomRequestData custom_data; + char message[kMaxMessageSize]; /* Can also be a binary message (e.g. MemoryRegionDetails) */ + char stream[kMaxMessageSize]; /* Must be a string (strcpy is used) */ + char api_version[kMaxVersionSize]; /* Must be a string (strcpy is used) */ std::string Json() { std::string s = "{\"id\":" + std::to_string(data_id) + "," "\"buffer\":\"" + std::string(message) + "\"" + "," - "\"stream\":\"" + std::string(stream) + "\"" + "\"stream\":\"" + + std::string(stream) + "\"" + "}"; return s; }; }; - - struct GenericNetworkResponse { - Opcode op_code; - NetworkErrorCode error_code; - char message[kMaxMessageSize]; + Opcode op_code; + NetworkErrorCode error_code; + char message[kMaxMessageSize]; }; - -struct SendResponse : GenericNetworkResponse { +struct SendResponse : GenericNetworkResponse { }; } diff --git a/common/cpp/include/asapo/logger/logger.h b/common/cpp/include/asapo/logger/logger.h index 030c39184b4e43d8dbfa364ad3b6f3798fbb2495..75fdc958bad0930d3fee00e7a6597190c9df88ec 100644 --- a/common/cpp/include/asapo/logger/logger.h +++ b/common/cpp/include/asapo/logger/logger.h @@ -20,6 +20,7 @@ class LogMessageWithFields { public: LogMessageWithFields(std::string key, uint64_t val); LogMessageWithFields(std::string key, double val, int precision); + LogMessageWithFields(std::string val); LogMessageWithFields(std::string key, std::string val); LogMessageWithFields& Append(std::string key, uint64_t val); LogMessageWithFields& Append(std::string key, double val, int precision); diff --git a/common/cpp/src/data_structs/data_structs.cpp b/common/cpp/src/data_structs/data_structs.cpp index c55d6017629b2c3ba24dfa9b59303e70b411968b..ae9712325530084b0759929d58acf764a7307d44 100644 --- a/common/cpp/src/data_structs/data_structs.cpp +++ b/common/cpp/src/data_structs/data_structs.cpp @@ -234,4 +234,9 @@ uint64_t NanosecsEpochFromISODate(std::string date_time) { return ns > 0 ? ns : 1; } +std::string HostFromUri(const std::string& uri) { + return uri.substr(0, uri.find(':')); +} + + } diff --git a/common/cpp/src/logger/logger.cpp b/common/cpp/src/logger/logger.cpp index 7e09a5da12289bab67f0a27a455019059fb7132a..6cb0fbe7c14570d1edc59f3eca69a18cab640ce4 100644 --- a/common/cpp/src/logger/logger.cpp +++ b/common/cpp/src/logger/logger.cpp @@ -1,3 +1,6 @@ + +#include <asapo/logger/logger.h> + #include "spd_logger.h" namespace asapo { @@ -57,8 +60,12 @@ LogMessageWithFields::LogMessageWithFields(std::string key, double val, int prec log_string_ = EncloseQuotes(key) + ":" + string_format("%." + std::to_string(precision) + "f", val); } +LogMessageWithFields::LogMessageWithFields(std::string val) { + log_string_ = EncloseQuotes("message") + ":" + EncloseQuotes(escape_json(val)); +} + LogMessageWithFields::LogMessageWithFields(std::string key, std::string val) { - log_string_ = EncloseQuotes(key) + ":" + EncloseQuotes(val); + log_string_ = EncloseQuotes(key) + ":" + EncloseQuotes(escape_json(val)); } LogMessageWithFields& LogMessageWithFields::Append(std::string key, uint64_t val) { @@ -72,11 +79,12 @@ LogMessageWithFields& LogMessageWithFields::Append(std::string key, double val, } LogMessageWithFields& LogMessageWithFields::Append(std::string key, std::string val) { - log_string_ += "," + EncloseQuotes(key) + ":" + EncloseQuotes(val); + log_string_ += "," + EncloseQuotes(key) + ":" + EncloseQuotes(escape_json(val)); return *this; } std::string LogMessageWithFields::LogString() const { return log_string_; } + } diff --git a/common/cpp/src/logger/spd_logger.h b/common/cpp/src/logger/spd_logger.h index db0d6ee63c12eca8be3c3e9b37e15c63b63e7097..e623b27dfe5c9ee5b41ab99bbaab5e4f8241469f 100644 --- a/common/cpp/src/logger/spd_logger.h +++ b/common/cpp/src/logger/spd_logger.h @@ -34,6 +34,7 @@ class SpdLogger : public AbstractLogger { }; std::string EncloseMsg(std::string msg); +std::string escape_json(const std::string& s); } diff --git a/common/cpp/unittests/data_structs/test_data_structs.cpp b/common/cpp/unittests/data_structs/test_data_structs.cpp index d1a35ea664ca66a5cfb91510e4d4feaa31813378..a8bb9c468085b9126edaa19021bb240891b9158d 100644 --- a/common/cpp/unittests/data_structs/test_data_structs.cpp +++ b/common/cpp/unittests/data_structs/test_data_structs.cpp @@ -305,4 +305,23 @@ TEST(DeletaStreamOpt, EncodeDecode) { } + +struct TestUri { + std::string uri; + std::string host; +}; + + +auto testsUri = std::vector<TestUri> { + TestUri{"123.234.24.13:123", "123.234.24.13"}, + TestUri{"1.1.1.1", "1.1.1.1"}, +}; + +TEST(HostFromUri, HostFromUri) { + for (auto test : testsUri) { + auto res = asapo::HostFromUri(test.uri); + ASSERT_THAT(res, Eq(test.host)); + } +} + } diff --git a/receiver/CMakeLists.txt b/receiver/CMakeLists.txt index 5dd1bde163c50e9cdd81cd325526d39d847fdfaf..c0c8366e39a83c975767e9ebf9818a6f160f27ae 100644 --- a/receiver/CMakeLists.txt +++ b/receiver/CMakeLists.txt @@ -25,9 +25,9 @@ set(RECEIVER_CORE_FILES src/request_handler/request_handler_db_get_meta.cpp src/request_handler/request_factory.cpp src/request_handler/request_handler_db.cpp - src/file_processors/write_file_processor.cpp - src/file_processors/file_processor.cpp - src/file_processors/receive_file_processor.cpp + src/request_handler/file_processors/write_file_processor.cpp + src/request_handler/file_processors/file_processor.cpp + src/request_handler/file_processors/receive_file_processor.cpp src/metrics/receiver_prometheus_metrics.cpp src/metrics/receiver_mongoose_server.cpp ) @@ -109,9 +109,9 @@ set(TEST_SOURCE_FILES unittests/mock_receiver_config.cpp unittests/request_handler/test_requests_dispatcher.cpp unittests/test_datacache.cpp - unittests/file_processors/test_write_file_processor.cpp - unittests/file_processors/test_file_processor.cpp - unittests/file_processors/test_receive_file_processor.cpp + unittests/request_handler/file_processors/test_write_file_processor.cpp + unittests/request_handler/file_processors/test_file_processor.cpp + unittests/request_handler/file_processors/test_receive_file_processor.cpp ) # set(TEST_LIBRARIES "${TARGET_NAME};system_io") diff --git a/receiver/src/connection.cpp b/receiver/src/connection.cpp index ad8b30d09471d2af42ea5a6e8eda9b99731636e1..2770d0d89ef5bed286f27f3446164f47f19b5331 100644 --- a/receiver/src/connection.cpp +++ b/receiver/src/connection.cpp @@ -44,7 +44,7 @@ void Connection::Listen() const noexcept { } io__->CloseSocket(socket_fd_, nullptr); statistics__->SendIfNeeded(true); - log__->Info("disconnected from " + address_); + log__->Info(LogMessageWithFields("disconnected from ").Append("origin", HostFromUri(address_))); } diff --git a/receiver/src/data_cache.cpp b/receiver/src/data_cache.cpp index f6765f46fac8db9a24e5b76b9f8dae40dfffffa5..f2fa932569370559feaace38be2f179c5fa25eac 100644 --- a/receiver/src/data_cache.cpp +++ b/receiver/src/data_cache.cpp @@ -13,7 +13,7 @@ DataCache::DataCache(uint64_t cache_size, float keepunlocked_ratio) : cache_size try { cache_.reset(new uint8_t[cache_size]); } catch (std::exception& e) { - std::cout << "Cannot allocate data cache: " << e.what() << std::endl; + std::cout << "cannot allocate data cache: " << e.what() << std::endl; exit(1); } diff --git a/receiver/src/metrics/receiver_mongoose_server.cpp b/receiver/src/metrics/receiver_mongoose_server.cpp index fa601ed71667d22345edf649bae959e9464bc9e3..cce3b191873ca15b54cff465971a43fce469cb88 100644 --- a/receiver/src/metrics/receiver_mongoose_server.cpp +++ b/receiver/src/metrics/receiver_mongoose_server.cpp @@ -32,10 +32,11 @@ static void fn(struct mg_connection* c, int ev, void* ev_data, void* fn_data) { void asapo::ReceiverMongooseServer::ListenAndServe(std::string port, std::unique_ptr<ReceiverMetricsProvider> provider) { struct mg_mgr mgr; // Event manager + mg_log_set(0); mg_mgr_init(&mgr); // Initialise event manager auto uri = "0.0.0.0:" + port; if (mg_http_listen(&mgr, uri.c_str(), fn, (void*) provider.get()) == NULL) { - log__->Error("cannot listen on port " + port); + log__->Error("metrics server: cannot listen on port " + port); mg_mgr_free(&mgr); return; } diff --git a/receiver/src/receiver.cpp b/receiver/src/receiver.cpp index f28976609bd09ecd04ae959a191143040313b5ff..203eb13ac90ffdd6901071bfc847059fdedfec90 100644 --- a/receiver/src/receiver.cpp +++ b/receiver/src/receiver.cpp @@ -54,7 +54,7 @@ void Receiver::ProcessConnections(Error* err) { } void Receiver::StartNewConnectionInSeparateThread(int connection_socket_fd, const std::string& address) { - log__->Info("new connection from " + address); + log__->Info(LogMessageWithFields("new connection").Append("origin", HostFromUri(address))); auto thread = io__->NewThread("ConFd:" + std::to_string(connection_socket_fd), [connection_socket_fd, address, this] { auto connection = std::unique_ptr<Connection>(new Connection(connection_socket_fd, address, cache_, GetReceiverConfig()->tag)); diff --git a/receiver/src/receiver_logger.cpp b/receiver/src/receiver_logger.cpp index 1f297a68073f4d0863a9be0a1f0f69af149cafcd..85945ae94b4eada91432077a0372f7fc92c04cb8 100644 --- a/receiver/src/receiver_logger.cpp +++ b/receiver/src/receiver_logger.cpp @@ -1,11 +1,35 @@ #include "receiver_logger.h" -namespace asapo { +#include "request.h" +namespace asapo { AbstractLogger* GetDefaultReceiverLogger() { static Logger logger = asapo::CreateDefaultLoggerBin("receiver"); return logger.get(); } +LogMessageWithFields RequestLog(std::string message, const Request* request) { + LogMessageWithFields msg{std::move(message)}; + msg.Append("beamtime", request->GetBeamtimeId()) + .Append("dataSource", request->GetDataSource()) + .Append("stream", request->GetStream()) + .Append("origin", request->GetOriginHost()) + .Append("operation", OpcodeToString(request->GetOpCode())); + + switch (request->GetOpCode()) { + case Opcode::kOpcodeTransferData: + msg.Append("id", request->GetDataID()); + break; + case Opcode::kOpcodeTransferDatasetData: + msg.Append("id", request->GetDataID()); + msg.Append("substream", request->GetCustomData()[1]); + break; + default: + break; + } + + return msg; +} + } diff --git a/receiver/src/receiver_logger.h b/receiver/src/receiver_logger.h index 75ce25072555f98d10aca9195355cb50598e22ab..9df4e29433a25720da29eebc1d4f4eb531dabca4 100644 --- a/receiver/src/receiver_logger.h +++ b/receiver/src/receiver_logger.h @@ -5,8 +5,10 @@ namespace asapo { +class Request; AbstractLogger* GetDefaultReceiverLogger(); +LogMessageWithFields RequestLog(std::string message, const Request* request, std::string origin); } diff --git a/receiver/src/request.cpp b/receiver/src/request.cpp index f6aa6223bc30f08ca8b651ebb35cd7d4476d1fc0..07c9fb609db6f60e47381773fb679cc2440a91eb 100644 --- a/receiver/src/request.cpp +++ b/receiver/src/request.cpp @@ -10,6 +10,7 @@ Request::Request(const GenericRequestHeader& header, cache__{cache}, request_header_(header), socket_fd_{socket_fd}, origin_uri_{std::move(origin_uri)}, check_duplicate_request_handler_{db_check_handler} { + origin_host_ = HostFromUri(origin_uri_); } Error Request::PrepareDataBufferAndLockIfNeeded() { @@ -205,4 +206,8 @@ SourceType Request::GetSourceType() const { return source_type_; } +const std::string& Request::GetOriginHost() const { + return origin_host_; +} + } diff --git a/receiver/src/request.h b/receiver/src/request.h index 916a04358932d82dfe8de23386edead3ebf26eb4..83b930f04540bf471bc6c970e1ef129708a43f4c 100644 --- a/receiver/src/request.h +++ b/receiver/src/request.h @@ -19,7 +19,6 @@ #include "data_cache.h" #include "asapo/preprocessor/definitions.h" -#include "file_processors/file_processor.h" namespace asapo { @@ -50,6 +49,7 @@ class Request { VIRTUAL const char* GetMessage() const; const std::string& GetOriginUri() const; + const std::string& GetOriginHost() const; VIRTUAL const std::string& GetMetaData() const; VIRTUAL const std::string& GetBeamtimeId() const; VIRTUAL void SetBeamtimeId(std::string beamtime_id); @@ -88,6 +88,7 @@ class Request { void* data_ptr; RequestHandlerList handlers_; std::string origin_uri_; + std::string origin_host_; std::string beamtime_id_; std::string data_source_; std::string beamline_; diff --git a/receiver/src/file_processors/file_processor.cpp b/receiver/src/request_handler/file_processors/file_processor.cpp similarity index 94% rename from receiver/src/file_processors/file_processor.cpp rename to receiver/src/request_handler/file_processors/file_processor.cpp index 422f6dfe96937ab9e756bcc195806cdf65161ce9..52dd708c236de585ceddde0af0e17d6919425dae 100644 --- a/receiver/src/file_processors/file_processor.cpp +++ b/receiver/src/request_handler/file_processors/file_processor.cpp @@ -1,9 +1,8 @@ #include "file_processor.h" #include "asapo/io/io_factory.h" -#include "../receiver_logger.h" -#include "../receiver_config.h" -#include "../request.h" +#include "../../receiver_logger.h" +#include "../../request.h" namespace asapo { diff --git a/receiver/src/file_processors/file_processor.h b/receiver/src/request_handler/file_processors/file_processor.h similarity index 100% rename from receiver/src/file_processors/file_processor.h rename to receiver/src/request_handler/file_processors/file_processor.h diff --git a/receiver/src/file_processors/receive_file_processor.cpp b/receiver/src/request_handler/file_processors/receive_file_processor.cpp similarity index 89% rename from receiver/src/file_processors/receive_file_processor.cpp rename to receiver/src/request_handler/file_processors/receive_file_processor.cpp index 676c82a14e430c5ad02f1683d053eb48edad2828..3ff0d607e6c98e7d30d9f5dcc0e0e4cc12d0ae08 100644 --- a/receiver/src/file_processors/receive_file_processor.cpp +++ b/receiver/src/request_handler/file_processors/receive_file_processor.cpp @@ -1,10 +1,10 @@ #include "receive_file_processor.h" #include "asapo/io/io_factory.h" -#include "../receiver_error.h" #include "asapo/preprocessor/definitions.h" -#include "../request.h" -#include "../receiver_config.h" +#include "../../receiver_error.h" +#include "../../request.h" +#include "../../receiver_config.h" namespace asapo { diff --git a/receiver/src/file_processors/receive_file_processor.h b/receiver/src/request_handler/file_processors/receive_file_processor.h similarity index 100% rename from receiver/src/file_processors/receive_file_processor.h rename to receiver/src/request_handler/file_processors/receive_file_processor.h diff --git a/receiver/src/file_processors/write_file_processor.cpp b/receiver/src/request_handler/file_processors/write_file_processor.cpp similarity index 87% rename from receiver/src/file_processors/write_file_processor.cpp rename to receiver/src/request_handler/file_processors/write_file_processor.cpp index c995179237e550f6c64200884c691eb00264e7b4..3dcc5ae0076116e780f2d4ebc76e0bdaebfab68f 100644 --- a/receiver/src/file_processors/write_file_processor.cpp +++ b/receiver/src/request_handler/file_processors/write_file_processor.cpp @@ -1,10 +1,8 @@ #include "write_file_processor.h" -#include "asapo/io/io_factory.h" -#include "../receiver_error.h" #include "asapo/preprocessor/definitions.h" -#include "../request.h" -#include "../receiver_config.h" +#include "../../receiver_error.h" +#include "../../request.h" namespace asapo { diff --git a/receiver/src/file_processors/write_file_processor.h b/receiver/src/request_handler/file_processors/write_file_processor.h similarity index 100% rename from receiver/src/file_processors/write_file_processor.h rename to receiver/src/request_handler/file_processors/write_file_processor.h diff --git a/receiver/src/request_handler/request_factory.h b/receiver/src/request_handler/request_factory.h index edb2981cecda8b64743d868325ea09f774e43a19..c85af414fcfa0ca5701be278a41cb1d6df259edc 100644 --- a/receiver/src/request_handler/request_factory.h +++ b/receiver/src/request_handler/request_factory.h @@ -2,8 +2,8 @@ #define ASAPO_REQUEST_FACTORY_H #include "../request.h" -#include "../file_processors/write_file_processor.h" -#include "../file_processors/receive_file_processor.h" +#include "./file_processors/write_file_processor.h" +#include "./file_processors/receive_file_processor.h" #include "request_handler_db_stream_info.h" #include "request_handler_db_last_stream.h" #include "request_handler_db_delete_stream.h" diff --git a/receiver/src/request_handler/request_handler_file_process.h b/receiver/src/request_handler/request_handler_file_process.h index 84b26e3083a78c68716c6bdef2883fe4e09666b1..490eb18ac2dbe5b03c2929a5a9b93748a02b03b1 100644 --- a/receiver/src/request_handler/request_handler_file_process.h +++ b/receiver/src/request_handler/request_handler_file_process.h @@ -3,7 +3,7 @@ #include "request_handler.h" #include "asapo/logger/logger.h" -#include "../file_processors/file_processor.h" +#include "./file_processors/file_processor.h" #include "asapo/io/io.h" namespace asapo { diff --git a/receiver/unittests/receiver_mocking.h b/receiver/unittests/receiver_mocking.h index 74894756165b86e11e83b226cd020bce958752ff..35b5cffc4ece43a1589c78c75080cfa9c7ee86fd 100644 --- a/receiver/unittests/receiver_mocking.h +++ b/receiver/unittests/receiver_mocking.h @@ -7,7 +7,7 @@ #include "../src/statistics/receiver_statistics.h" #include "../src/request.h" #include "../src/data_cache.h" -#include "../src/file_processors/file_processor.h" +#include "../src/request_handler/file_processors/file_processor.h" namespace asapo { diff --git a/receiver/unittests/file_processors/test_file_processor.cpp b/receiver/unittests/request_handler/file_processors/test_file_processor.cpp similarity index 95% rename from receiver/unittests/file_processors/test_file_processor.cpp rename to receiver/unittests/request_handler/file_processors/test_file_processor.cpp index 992d9dd5d7e7fe1ca756730a5ff15c862be75b69..5f2ac6d6acea527875fdebbfa45b8cd0e166d0c9 100644 --- a/receiver/unittests/file_processors/test_file_processor.cpp +++ b/receiver/unittests/request_handler/file_processors/test_file_processor.cpp @@ -4,12 +4,12 @@ #include "asapo/unittests/MockIO.h" #include "asapo/unittests/MockLogger.h" -#include "../../src/file_processors/receive_file_processor.h" +#include "../../../src/request_handler/file_processors/receive_file_processor.h" #include "asapo/common/networking.h" #include "asapo/preprocessor/definitions.h" -#include "../mock_receiver_config.h" +#include "../../mock_receiver_config.h" -#include "../receiver_mocking.h" +#include "../../receiver_mocking.h" using ::testing::Test; using ::testing::Return; diff --git a/receiver/unittests/file_processors/test_receive_file_processor.cpp b/receiver/unittests/request_handler/file_processors/test_receive_file_processor.cpp similarity index 97% rename from receiver/unittests/file_processors/test_receive_file_processor.cpp rename to receiver/unittests/request_handler/file_processors/test_receive_file_processor.cpp index 66c7eec1bdc12fd1fe23f6a607b3f5f4279e7c3f..cea42b7e8e821c791ff523244c845495f2e28d67 100644 --- a/receiver/unittests/file_processors/test_receive_file_processor.cpp +++ b/receiver/unittests/request_handler/file_processors/test_receive_file_processor.cpp @@ -4,12 +4,12 @@ #include "asapo/unittests/MockIO.h" #include "asapo/unittests/MockLogger.h" -#include "../../src/file_processors/receive_file_processor.h" +#include "../../../src/request_handler/file_processors/receive_file_processor.h" #include "asapo/common/networking.h" #include "asapo/preprocessor/definitions.h" -#include "../mock_receiver_config.h" +#include "../../mock_receiver_config.h" -#include "../receiver_mocking.h" +#include "../../receiver_mocking.h" using ::testing::Test; using ::testing::Return; diff --git a/receiver/unittests/file_processors/test_write_file_processor.cpp b/receiver/unittests/request_handler/file_processors/test_write_file_processor.cpp similarity index 97% rename from receiver/unittests/file_processors/test_write_file_processor.cpp rename to receiver/unittests/request_handler/file_processors/test_write_file_processor.cpp index a4df078b7872ba9d347c84d4e0455ca10f71a3f8..a8be95300f31785aff4a1cfb7fb7d7cc144d41e3 100644 --- a/receiver/unittests/file_processors/test_write_file_processor.cpp +++ b/receiver/unittests/request_handler/file_processors/test_write_file_processor.cpp @@ -4,12 +4,12 @@ #include "asapo/unittests/MockIO.h" #include "asapo/unittests/MockLogger.h" -#include "../../src/file_processors/write_file_processor.h" +#include "../../../src/request_handler/file_processors/write_file_processor.h" #include "asapo/common/networking.h" #include "asapo/preprocessor/definitions.h" -#include "../mock_receiver_config.h" +#include "../../mock_receiver_config.h" -#include "../receiver_mocking.h" +#include "../../receiver_mocking.h" using ::testing::Test; using ::testing::Return; diff --git a/receiver/unittests/test_receiver.cpp b/receiver/unittests/test_receiver.cpp index 512eca149db0f0ffbe8cfd3bd0bb247c011cf742..ff2f8c00f80e636beeb5fe041aafe8bc1d8f91d5 100644 --- a/receiver/unittests/test_receiver.cpp +++ b/receiver/unittests/test_receiver.cpp @@ -39,6 +39,7 @@ class StartListenerFixture : public testing::Test { const asapo::SocketDescriptor expected_socket_descriptor = 20; const asapo::SocketDescriptor expected_socket_descriptor_client = 23; const std::string expected_address = "somehost:13579"; + const std::string expected_host = "somehost"; const uint64_t expected_file_id = 314322; const uint64_t expected_file_size = 784387; const FileDescriptor expected_fd = 12643; @@ -103,7 +104,7 @@ TEST_F(StartListenerFixture, Ok) { Return(nullptr) ); - EXPECT_CALL(mock_logger, Info(HasSubstr("new connection from " + expected_address))); + EXPECT_CALL(mock_logger, Info(AllOf(HasSubstr("new connection"), HasSubstr(expected_host)))); receiver.Listen(expected_address, &err, true);