From 4fe307bac9af19b4e90de5040fcb551e955311f7 Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Thu, 28 Oct 2021 11:34:42 +0200
Subject: [PATCH] refactor after linter

---
 common/cpp/include/asapo/unittests/MockIO.h   |  2 +-
 common/cpp/src/database/encoding.cpp          |  9 +++----
 common/cpp/src/database/mongodb_client.cpp    |  4 +--
 common/cpp/src/json_parser/rapid_json.cpp     |  5 ++--
 common/cpp/src/request/request_pool.cpp       |  2 +-
 consumer/api/cpp/src/consumer_c_glue.cpp      | 24 ++++++++++-------
 consumer/api/python/asapo_wrappers.h          |  2 ++
 consumer/tools/folder_to_db/src/main.cpp      |  2 +-
 examples/consumer/getnext/getnext.cpp         |  4 +--
 examples/pipeline/in_to_out/in_to_out.cpp     |  2 +-
 .../dummy_data_producer.cpp                   | 26 +++++++++----------
 producer/api/cpp/src/producer_impl.cpp        |  2 +-
 .../cpp/src/receiver_discovery_service.cpp    |  4 ++-
 .../api/cpp/unittests/test_producer_impl.cpp  |  1 +
 .../src/eventmon_config.cpp                   |  4 +--
 .../receiver_data_server_request_handler.cpp  |  2 +-
 .../src/request_handler/request_factory.cpp   |  4 +--
 .../src/statistics/receiver_statistics.cpp    |  4 ++-
 receiver/src/statistics/statistics.cpp        |  3 ---
 receiver/src/statistics/statistics.h          |  6 ++---
 .../net_server/test_rds_fabric_server.cpp     |  3 ---
 receiver/unittests/receiver_mocking.h         |  1 +
 .../test_request_handler_db_check_request.cpp |  2 +-
 .../test_request_handler_db_meta_writer.cpp   |  2 +-
 .../test_request_handler_delete_stream.cpp    |  2 +-
 ..._request_handler_initial_authorization.cpp |  1 -
 .../test_requests_dispatcher.cpp              |  1 -
 .../consumer/consumer_api/consumer_api.c      |  1 -
 .../consumer/consumer_api/consumer_api.cpp    |  5 ++--
 tests/automatic/mongo_db/auto_id/auto_id.cpp  |  4 +--
 tests/automatic/producer/c_api/producer_api.c |  1 -
 .../producer/cpp_api/producer_api.cpp         |  1 -
 .../spd_logger/fluentd/spd_logger_fluentd.cpp |  3 ---
 .../client_serv/ip_tcp_network.cpp            |  4 +--
 .../client_serv_multicon/multicon.cpp         |  1 -
 35 files changed, 70 insertions(+), 74 deletions(-)

diff --git a/common/cpp/include/asapo/unittests/MockIO.h b/common/cpp/include/asapo/unittests/MockIO.h
index 9f32eadc4..14118f7b3 100644
--- a/common/cpp/include/asapo/unittests/MockIO.h
+++ b/common/cpp/include/asapo/unittests/MockIO.h
@@ -180,7 +180,7 @@ class MockIO : public IO {
         Close_t(fd, &error);
         if(err) {
             err->reset(error);
-        };
+        }
     }
     MOCK_CONST_METHOD2(Close_t, void(FileDescriptor fd, ErrorInterface** err));
 
diff --git a/common/cpp/src/database/encoding.cpp b/common/cpp/src/database/encoding.cpp
index 5e589436f..3a3b48432 100644
--- a/common/cpp/src/database/encoding.cpp
+++ b/common/cpp/src/database/encoding.cpp
@@ -86,13 +86,12 @@ std::string EncodeColName(const std::string& colname) {
 }
 
 std::string DecodeName(const std::string& name) {
-    char* decoded = new char[name.size() + 1];
-    auto res = decode(name.c_str(), decoded);
+    auto decoded = std::unique_ptr<char[]> {new char[name.size() + 1]};
+    auto res = decode(name.c_str(), decoded.get());
     if (res < 0) {
         return "";
     }
-    std::string str = std::string{decoded};
-    delete[] decoded;
+    std::string str = std::string{decoded.get()};
     return str;
 }
 
@@ -102,7 +101,7 @@ bool ShouldEscapeQuery(char c) {
         if (c == chars[i]) {
             return true;
         }
-    };
+    }
     return false;
 }
 
diff --git a/common/cpp/src/database/mongodb_client.cpp b/common/cpp/src/database/mongodb_client.cpp
index f5e68433c..f9813a686 100644
--- a/common/cpp/src/database/mongodb_client.cpp
+++ b/common/cpp/src/database/mongodb_client.cpp
@@ -308,7 +308,7 @@ Error MongoDBClient::GetNextId(const std::string& stream, uint64_t* id) const {
         }
     }
     mongoc_find_and_modify_opts_set_flags(opts,
-                                          MONGOC_FIND_AND_MODIFY_UPSERT | MONGOC_FIND_AND_MODIFY_RETURN_NEW);
+                                          mongoc_find_and_modify_flags_t(MONGOC_FIND_AND_MODIFY_UPSERT | MONGOC_FIND_AND_MODIFY_RETURN_NEW));
     success = mongoc_collection_find_and_modify_with_opts (
                   collection, &query, opts, &reply, &error);
     Error err;
@@ -771,7 +771,7 @@ Error MongoDBClient::DeleteCollections(const std::string& prefix) const {
     bson_destroy(opts);
     bson_destroy(query);
     mongoc_database_destroy(database);
-    return nullptr;
+    return err;
 }
 
 Error MongoDBClient::DeleteCollection(const std::string& name) const {
diff --git a/common/cpp/src/json_parser/rapid_json.cpp b/common/cpp/src/json_parser/rapid_json.cpp
index d2a9afe15..03d9b6072 100644
--- a/common/cpp/src/json_parser/rapid_json.cpp
+++ b/common/cpp/src/json_parser/rapid_json.cpp
@@ -42,7 +42,7 @@ Error RapidJson::LazyInitialize() const noexcept {
 }
 
 asapo::Error RapidJson::CheckValueType(const std::string& name, ValueType type, const Value* val) const {
-    bool res = false;
+    bool res;
     switch (type) {
     case ValueType::kObject:
         res = val->IsObject();
@@ -106,7 +106,8 @@ Error RapidJson::GetUInt64(const std::string& name, uint64_t* val) const noexcep
     }
 
     Value* json_val;
-    if (Error err = GetValuePointer(name, ValueType::kUint64, &json_val)) {
+    err = GetValuePointer(name, ValueType::kUint64, &json_val);
+    if (err) {
         return err;
     }
     *val = json_val->GetUint64();
diff --git a/common/cpp/src/request/request_pool.cpp b/common/cpp/src/request/request_pool.cpp
index b0c6d3a80..d634ead54 100644
--- a/common/cpp/src/request/request_pool.cpp
+++ b/common/cpp/src/request/request_pool.cpp
@@ -144,7 +144,7 @@ void RequestPool::ThreadHandler(uint64_t id) {
         //after wait, we own the lock
         if (!quit_ && do_work) {
             ProcessRequest(request_handler, &thread_info);
-        };
+        }
     } while (!quit_);
 }
 
diff --git a/consumer/api/cpp/src/consumer_c_glue.cpp b/consumer/api/cpp/src/consumer_c_glue.cpp
index 83b83d2a1..392cd837d 100644
--- a/consumer/api/cpp/src/consumer_c_glue.cpp
+++ b/consumer/api/cpp/src/consumer_c_glue.cpp
@@ -422,9 +422,9 @@ extern "C" {
                                  AsapoMessageDataHandle* data,
                                  const char* stream,
                                  AsapoErrorHandle* error) {
-        dataGetterStart;
+        dataGetterStart
         auto err = consumer->handle->GetById(id, fi, data ? &d : nullptr, stream);
-        dataGetterStop;
+        dataGetterStop
 
         return process_error(error, std::move(err));
     }
@@ -438,9 +438,10 @@ extern "C" {
                                 AsapoMessageDataHandle* data,
                                 const char* stream,
                                 AsapoErrorHandle* error) {
-        dataGetterStart;
+        dataGetterStart
         auto err = consumer->handle->GetLast(fi, data ? &d : nullptr, stream);
-        dataGetterStop;
+        dataGetterStop
+
         return process_error(error, std::move(err));
     }
 
@@ -454,9 +455,10 @@ extern "C" {
                                         AsapoMessageDataHandle* data,
                                         const char* stream,
                                         AsapoErrorHandle* error) {
-        dataGetterStart;
+        dataGetterStart
         auto err = consumer->handle->GetLast(*group_id->handle, fi, data ? &d : nullptr, stream);
-        dataGetterStop;
+        dataGetterStop
+
         return process_error(error, std::move(err));
     }
 
@@ -470,9 +472,11 @@ extern "C" {
                                 AsapoMessageDataHandle* data,
                                 const char* stream,
                                 AsapoErrorHandle* error) {
-        dataGetterStart;
+        dataGetterStart
+
         auto err = consumer->handle->GetNext(*group_id->handle, fi, data ? &d : nullptr, stream);
-        dataGetterStop;
+        dataGetterStop
+
         return process_error(error, std::move(err));
     }
 
@@ -613,7 +617,7 @@ extern "C" {
 /// \param[in] asapo error
 /// \return handle to partial error data or NULL if error is wrong type
     AsapoPartialErrorDataHandle asapo_error_get_payload_from_partial_error(const AsapoErrorHandle error) {
-        if (error == nullptr && error->handle == nullptr) {
+        if (error == nullptr || error->handle == nullptr) {
             return nullptr;
         }
         auto payload = dynamic_cast<asapo::PartialErrorData*>(error->handle->GetCustomData());
@@ -642,7 +646,7 @@ extern "C" {
 /// \param[in] asapo error
 /// \return handle to partial error data or NULL if error is wrong type
     AsapoConsumerErrorDataHandle asapo_error_get_payload_from_consumer_error(const AsapoErrorHandle error) {
-        if (error == nullptr && error->handle == nullptr) {
+        if (error == nullptr || error->handle == nullptr) {
             return nullptr;
         }
         auto payload = dynamic_cast<asapo::ConsumerErrorData*>(error->handle->GetCustomData());
diff --git a/consumer/api/python/asapo_wrappers.h b/consumer/api/python/asapo_wrappers.h
index c59b8d8c7..f87eb91d0 100644
--- a/consumer/api/python/asapo_wrappers.h
+++ b/consumer/api/python/asapo_wrappers.h
@@ -1,6 +1,8 @@
 #ifndef ASAPO_ASAPO_WRAPPERS_H
 #define ASAPO_ASAPO_WRAPPERS_H
 
+#include <string>
+
 namespace asapo {
 
 inline std::string GetErrorString(asapo::Error* err) {
diff --git a/consumer/tools/folder_to_db/src/main.cpp b/consumer/tools/folder_to_db/src/main.cpp
index ef92b81db..aa21af1f8 100644
--- a/consumer/tools/folder_to_db/src/main.cpp
+++ b/consumer/tools/folder_to_db/src/main.cpp
@@ -34,7 +34,7 @@ void ProcessFlags(ConvertParameters* params, int argc, int* narg, char* argv[])
             }
         } catch (...) {
             Usage(argv[0]);
-        };
+        }
     } else {
         Usage(argv[0]);
     }
diff --git a/examples/consumer/getnext/getnext.cpp b/examples/consumer/getnext/getnext.cpp
index 898ba41e6..a5689ca1b 100644
--- a/examples/consumer/getnext/getnext.cpp
+++ b/examples/consumer/getnext/getnext.cpp
@@ -142,8 +142,8 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
             if (params.datasets) {
                 auto dataset = consumer->GetNextDataset(group_id, 0, "default", &err);
                 if (err == nullptr) {
-                    for (auto& fi : dataset.content) {
-                        (*nbuf)[i] += fi.buf_id == 0 ? 0 : 1;
+                    for (auto& ds_fi : dataset.content) {
+                        (*nbuf)[i] += ds_fi.buf_id == 0 ? 0 : 1;
                         (*nfiles_total)[i]++;
                     }
                 }
diff --git a/examples/pipeline/in_to_out/in_to_out.cpp b/examples/pipeline/in_to_out/in_to_out.cpp
index dbf5bb66a..f69f41656 100644
--- a/examples/pipeline/in_to_out/in_to_out.cpp
+++ b/examples/pipeline/in_to_out/in_to_out.cpp
@@ -151,7 +151,7 @@ std::vector<std::thread> StartConsumerThreads(const Args& args, const ProducerPt
         }
 
         while (true) {
-            auto err = ProcessNextEvent(args, consumer, producer);
+            err = ProcessNextEvent(args, consumer, producer);
             if (err) {
                 (*errors)[i] += ProcessError(err);
                 if (err == asapo::ConsumerErrorTemplates::kEndOfStream
diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp
index 8efc8b9c6..585d47375 100644
--- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp
+++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp
@@ -145,21 +145,21 @@ bool SendDummyData(asapo::Producer* producer, size_t number_of_byte, uint64_t it
 
 
     for (uint64_t i = 0; i < iterations; i++) {
-        auto buffer = CreateMemoryBuffer(number_of_byte);
         asapo::MessageHeader message_header{i + 1, number_of_byte, std::to_string(i + 1)};
         std::string meta = "{\"user_meta\":\"test" + std::to_string(i + 1) + "\"}";
-        if (!data_source.empty()) {
-            message_header.file_name = data_source + "/" + message_header.file_name;
-        }
-        message_header.file_name = message_folder + message_header.file_name;
-        message_header.user_metadata = std::move(meta);
         if (messages_in_set == 1) {
-            auto err = producer->Send(message_header,
-                                      std::move(buffer),
-                                      write_files ? asapo::kDefaultIngestMode :
-                                      asapo::kTransferData,
-                                      "default",
-                                      &ProcessAfterSend);
+            auto buffer = CreateMemoryBuffer(number_of_byte);
+            if (!data_source.empty()) {
+                message_header.file_name = data_source + "/" + message_header.file_name;
+            }
+            message_header.file_name = message_folder + message_header.file_name;
+            message_header.user_metadata = meta;
+            err = producer->Send(message_header,
+                                 std::move(buffer),
+                                 write_files ? asapo::kDefaultIngestMode :
+                                 asapo::kTransferData,
+                                 "default",
+                                 &ProcessAfterSend);
             if (err) {
                 std::cerr << "Cannot send file: " << err << std::endl;
                 return false;
@@ -176,7 +176,7 @@ bool SendDummyData(asapo::Producer* producer, size_t number_of_byte, uint64_t it
                 }
                 message_header.file_name = message_folder + message_header.file_name;
                 message_header.user_metadata = meta;
-                auto err =
+                err =
                     producer->Send(message_header,
                                    std::move(buffer),
                                    write_files ? asapo::kDefaultIngestMode :
diff --git a/producer/api/cpp/src/producer_impl.cpp b/producer/api/cpp/src/producer_impl.cpp
index 2c99c0147..a0b68f070 100644
--- a/producer/api/cpp/src/producer_impl.cpp
+++ b/producer/api/cpp/src/producer_impl.cpp
@@ -197,7 +197,7 @@ Error ProducerImpl::Send(const MessageHeader& message_header,
 }
 
 bool WantTransferData(uint64_t ingest_mode) {
-    return ingest_mode & IngestModeFlags::kTransferData;
+    return static_cast<bool>(ingest_mode & IngestModeFlags::kTransferData);
 }
 
 Error CheckData(uint64_t ingest_mode, const MessageHeader& message_header, const MessageData* data) {
diff --git a/producer/api/cpp/src/receiver_discovery_service.cpp b/producer/api/cpp/src/receiver_discovery_service.cpp
index e36d038a6..33af1acde 100644
--- a/producer/api/cpp/src/receiver_discovery_service.cpp
+++ b/producer/api/cpp/src/receiver_discovery_service.cpp
@@ -54,7 +54,9 @@ Error ReceiverDiscoveryService::UpdateFromEndpoint(ReceiversList* list, uint64_t
 
 void ReceiverDiscoveryService::LogUriList(const ReceiversList& uris) {
     std::string s;
-    s = std::accumulate(std::begin(uris), std::end(uris), s);
+    for (const auto& uri : uris) {
+        s += uri;
+    }
     log__->Debug("got receivers from " + endpoint_ + ":" + s);
 }
 
diff --git a/producer/api/cpp/unittests/test_producer_impl.cpp b/producer/api/cpp/unittests/test_producer_impl.cpp
index 1929bba56..8c0fda47f 100644
--- a/producer/api/cpp/unittests/test_producer_impl.cpp
+++ b/producer/api/cpp/unittests/test_producer_impl.cpp
@@ -588,6 +588,7 @@ TEST_F(ProducerImplTests, ReturnDataIfCanotAddToQueue) {
                 std::move(pool_err).release()));
 
     asapo::MessageHeader message_header{expected_id, 0, expected_name};
+    data = asapo::MessageData{new uint8_t[100]};
     auto err = producer.Send(message_header, std::move(data), expected_ingest_mode, expected_stream, nullptr);
 
     auto err_data = static_cast<asapo::OriginalData*>(err->GetCustomData());
diff --git a/producer/event_monitor_producer/src/eventmon_config.cpp b/producer/event_monitor_producer/src/eventmon_config.cpp
index d3d403950..37a1cb467 100644
--- a/producer/event_monitor_producer/src/eventmon_config.cpp
+++ b/producer/event_monitor_producer/src/eventmon_config.cpp
@@ -59,8 +59,8 @@ Error EventMonConfigFactory::ParseConfigFile(std::string file_name) {
     }
 
     if (config.dataset_mode == DatasetMode::kMultiSource) {
-        err = parser.Embedded("Dataset").GetUInt64("NSources", &config.dataset_multisource_nsources);
-        err = parser.Embedded("Dataset").GetUInt64("SourceId", &config.dataset_multisource_sourceid);
+        (err = parser.Embedded("Dataset").GetUInt64("NSources", &config.dataset_multisource_nsources)) ||
+        ((err = parser.Embedded("Dataset").GetUInt64("SourceId", &config.dataset_multisource_sourceid)));
     }
 
 
diff --git a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp
index 6de6edf6f..f2409de02 100644
--- a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp
+++ b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp
@@ -103,7 +103,7 @@ void ReceiverDataServerRequestHandler::HandleInvalidRequest(const ReceiverDataSe
         break;
     default:
         break;
-    };
+    }
 
 }
 
diff --git a/receiver/src/request_handler/request_factory.cpp b/receiver/src/request_handler/request_factory.cpp
index f16837e8f..e9c5fdd8d 100644
--- a/receiver/src/request_handler/request_factory.cpp
+++ b/receiver/src/request_handler/request_factory.cpp
@@ -5,11 +5,11 @@
 namespace asapo {
 
 bool NeedFileWriteHandler(const GenericRequestHeader& request_header) {
-    return request_header.custom_data[kPosIngestMode] & IngestModeFlags::kStoreInFilesystem;
+    return static_cast<bool>(request_header.custom_data[kPosIngestMode] & IngestModeFlags::kStoreInFilesystem);
 }
 
 bool NeedDbHandler(const GenericRequestHeader& request_header) {
-    return (request_header.custom_data[kPosIngestMode] & IngestModeFlags::kStoreInDatabase) ||
+    return static_cast<bool>(request_header.custom_data[kPosIngestMode] & IngestModeFlags::kStoreInDatabase) ||
            (request_header.custom_data[kPosIngestMode] == asapo::IngestModeFlags::kTransferMetaDataOnly);
 }
 
diff --git a/receiver/src/statistics/receiver_statistics.cpp b/receiver/src/statistics/receiver_statistics.cpp
index 1f54884d8..59e467517 100644
--- a/receiver/src/statistics/receiver_statistics.cpp
+++ b/receiver/src/statistics/receiver_statistics.cpp
@@ -7,7 +7,9 @@ using std::chrono::system_clock;
 
 
 ReceiverStatistics::ReceiverStatistics(unsigned int write_interval) : Statistics(write_interval) {
-    ResetStatistics();
+    for (size_t i = 0; i < kNStatisticEntities; i++) {
+        time_counters_[i] = std::chrono::nanoseconds{0};
+    }
 }
 
 StatisticsToSend ReceiverStatistics::PrepareStatisticsToSend() const noexcept {
diff --git a/receiver/src/statistics/statistics.cpp b/receiver/src/statistics/statistics.cpp
index f16c14436..14f710233 100644
--- a/receiver/src/statistics/statistics.cpp
+++ b/receiver/src/statistics/statistics.cpp
@@ -1,6 +1,5 @@
 #include "statistics.h"
 #include "statistics_sender_influx_db.h"
-#include "statistics_sender_fluentd.h"
 #include "../receiver_config.h"
 #include <algorithm>
 
@@ -59,8 +58,6 @@ void Statistics::IncreaseRequestCounter() noexcept {
 Statistics::Statistics(unsigned int write_frequency) :
     write_interval_{write_frequency} {
     statistics_sender_list__.emplace_back(std::unique_ptr<StatisticsSender> {new StatisticsSenderInfluxDb});
-//    statistics_sender_list__.emplace_back(new StatisticsSenderFluentd);
-    ResetStatistics();
 }
 
 
diff --git a/receiver/src/statistics/statistics.h b/receiver/src/statistics/statistics.h
index 73e191954..e9fcbd3a2 100644
--- a/receiver/src/statistics/statistics.h
+++ b/receiver/src/statistics/statistics.h
@@ -41,9 +41,9 @@ class Statistics {
   private:
     void Send() noexcept;
     uint64_t GetTotalElapsedMs() const noexcept;
-    uint64_t nrequests_;
-    std::chrono::system_clock::time_point last_timepoint_;
-    uint64_t volume_counter_;
+    uint64_t nrequests_{0};
+    std::chrono::system_clock::time_point last_timepoint_{std::chrono::system_clock::now()};
+    uint64_t volume_counter_{0};
     unsigned int write_interval_;
     std::vector<std::pair<std::string, std::string>> tags_;
     std::mutex mutex_;
diff --git a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
index d185a4f7a..6b7dd8c87 100644
--- a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
+++ b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
@@ -207,7 +207,6 @@ TEST_F(RdsFabricServerTests, SendResponse_Error_SendError) {
 TEST_F(RdsFabricServerTests, SendResponseAndSlotData_Ok) {
     InitServer();
 
-    GenericRequestHeader dummyHeader{};
     FabricRdsRequest request(GenericRequestHeader{}, 41, 87);
     GenericNetworkResponse response;
     CacheMeta cacheSlot;
@@ -225,7 +224,6 @@ TEST_F(RdsFabricServerTests, SendResponseAndSlotData_Ok) {
 TEST_F(RdsFabricServerTests, SendResponseAndSlotData_RdmaWrite_Error) {
     InitServer();
 
-    GenericRequestHeader dummyHeader{};
     FabricRdsRequest request(GenericRequestHeader{}, 41, 87);
     GenericNetworkResponse response;
     CacheMeta cacheSlot;
@@ -244,7 +242,6 @@ TEST_F(RdsFabricServerTests, SendResponseAndSlotData_RdmaWrite_Error) {
 TEST_F(RdsFabricServerTests, SendResponseAndSlotData_Send_Error) {
     InitServer();
 
-    GenericRequestHeader dummyHeader{};
     FabricRdsRequest request(GenericRequestHeader{}, 41, 87);
     GenericNetworkResponse response;
     CacheMeta cacheSlot;
diff --git a/receiver/unittests/receiver_mocking.h b/receiver/unittests/receiver_mocking.h
index 79e76f1f6..2ed2f3446 100644
--- a/receiver/unittests/receiver_mocking.h
+++ b/receiver/unittests/receiver_mocking.h
@@ -84,6 +84,7 @@ class MockRequest: public Request {
     MOCK_CONST_METHOD0(GetOnlinePath, const std::string & ());
     MOCK_CONST_METHOD0(GetOfflinePath, const std::string & ());
 
+    // not nice casting, but mocking GetCustomData directly does not compile on Windows.
     const CustomRequestData& GetCustomData() const override {
         return (CustomRequestData&) * GetCustomData_t();
     };
diff --git a/receiver/unittests/request_handler/test_request_handler_db_check_request.cpp b/receiver/unittests/request_handler/test_request_handler_db_check_request.cpp
index e12d5568f..b93ba8e3b 100644
--- a/receiver/unittests/request_handler/test_request_handler_db_check_request.cpp
+++ b/receiver/unittests/request_handler/test_request_handler_db_check_request.cpp
@@ -54,7 +54,7 @@ class DbCheckRequestHandlerTests : public Test {
     uint64_t expected_id = 15;
     uint64_t expected_dataset_id = 16;
     uint64_t expected_dataset_size = 2;
-    uint64_t expected_custom_data[asapo::kNCustomParams] {0, expected_dataset_id, expected_dataset_size};
+    CustomRequestData expected_custom_data{0, expected_dataset_id, expected_dataset_size};
     MessageMeta expected_message_meta;
     MockFunctions mock_functions;
     int n_run = 0;
diff --git a/receiver/unittests/request_handler/test_request_handler_db_meta_writer.cpp b/receiver/unittests/request_handler/test_request_handler_db_meta_writer.cpp
index cbf247caf..0c95b8a21 100644
--- a/receiver/unittests/request_handler/test_request_handler_db_meta_writer.cpp
+++ b/receiver/unittests/request_handler/test_request_handler_db_meta_writer.cpp
@@ -39,7 +39,7 @@ class DbMetaWriterHandlerTests : public Test {
     const uint8_t* expected_meta = reinterpret_cast<const uint8_t*>(meta_str.c_str());
     uint64_t expected_meta_size = meta_str.size();
     std::string expected_meta_name = "bt";
-    uint64_t expected_custom_data[asapo::kNCustomParams] {0, 0, 0};
+    CustomRequestData expected_custom_data{0, 0, 0};
     void SetUp() override {
         GenericRequestHeader request_header;
         request_header.data_id = 0;
diff --git a/receiver/unittests/request_handler/test_request_handler_delete_stream.cpp b/receiver/unittests/request_handler/test_request_handler_delete_stream.cpp
index 8c3d3d5b1..ff6590d21 100644
--- a/receiver/unittests/request_handler/test_request_handler_delete_stream.cpp
+++ b/receiver/unittests/request_handler/test_request_handler_delete_stream.cpp
@@ -33,7 +33,7 @@ class DbMetaDeleteStreamTests : public Test {
     std::string expected_beamtime_id = "beamtime_id";
     std::string expected_data_source = "source";
     std::string expected_stream = "stream";
-    uint64_t expected_custom_data[asapo::kNCustomParams] {0, 0, 0};
+    CustomRequestData expected_custom_data {0, 0, 0};
 
     void SetUp() override {
         GenericRequestHeader request_header;
diff --git a/receiver/unittests/request_handler/test_request_handler_initial_authorization.cpp b/receiver/unittests/request_handler/test_request_handler_initial_authorization.cpp
index f135251a5..2d90d6724 100644
--- a/receiver/unittests/request_handler/test_request_handler_initial_authorization.cpp
+++ b/receiver/unittests/request_handler/test_request_handler_initial_authorization.cpp
@@ -35,7 +35,6 @@ class InitialAuthorizationHandlerTests : public Test {
         ;
         EXPECT_CALL(mock_authorization_client,
                     Authorize_t(mock_request.get(), expected_auth_data)).WillOnce(Return(nullptr));
-        ;
     }
     void TearDown() override {
         handler.auth_client__.release();
diff --git a/receiver/unittests/request_handler/test_requests_dispatcher.cpp b/receiver/unittests/request_handler/test_requests_dispatcher.cpp
index f92d27cb1..05e96a8a8 100644
--- a/receiver/unittests/request_handler/test_requests_dispatcher.cpp
+++ b/receiver/unittests/request_handler/test_requests_dispatcher.cpp
@@ -129,7 +129,6 @@ class RequestsDispatcherTests : public Test {
     }
     void MockSendResponse(GenericNetworkResponse* response, bool error ) {
         EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("sending response"), HasSubstr(connected_uri))));
-        ;
         EXPECT_CALL(mock_io, Send_t(_, _, _, _)).WillOnce(
             DoAll(SetArgPointee<3>(error ? asapo::IOErrorTemplates::kConnectionRefused.Generate().release() : nullptr),
                   SaveArg1ToGenericNetworkResponse(response),
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.c b/tests/automatic/consumer/consumer_api/consumer_api.c
index d9996ddde..34f23dfe0 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.c
+++ b/tests/automatic/consumer/consumer_api/consumer_api.c
@@ -2,7 +2,6 @@
 #include "testing_c.h"
 
 #include <string.h>
-#include <stdio.h>
 #include <stdlib.h>
 
 void test_datasets(AsapoConsumerHandle consumer, AsapoStringHandle group_id) {
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.cpp b/tests/automatic/consumer/consumer_api/consumer_api.cpp
index 4e1f99ec0..64ce965b4 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.cpp
+++ b/tests/automatic/consumer/consumer_api/consumer_api.cpp
@@ -1,5 +1,4 @@
 #include <iostream>
-#include <vector>
 #include <thread>
 #include <algorithm>
 #include <asapo/asapo_consumer.h>
@@ -161,9 +160,9 @@ void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::str
     M_AssertTrue(streams[0].name == "default", "streams0.name");
     M_AssertTrue(streams[1].name == "stream1", "streams1.name");
     M_AssertTrue(streams[2].name == "stream2", "streams2.name");
-    M_AssertTrue(streams[1].finished == true, "stream1 finished");
+    M_AssertTrue(streams[1].finished, "stream1 finished");
     M_AssertTrue(streams[1].next_stream == "ns", "stream1 next stream");
-    M_AssertTrue(streams[2].finished == true, "stream2 finished");
+    M_AssertTrue(streams[2].finished, "stream2 finished");
     M_AssertTrue(streams[2].next_stream == "", "stream2 no next stream");
     M_AssertTrue(asapo::NanosecsEpochFromTimePoint(streams[0].timestamp_created) == 0, "streams0.timestamp");
     M_AssertTrue(asapo::NanosecsEpochFromTimePoint(streams[0].timestamp_lastentry) == 0, "streams0.timestamp lastentry");
diff --git a/tests/automatic/mongo_db/auto_id/auto_id.cpp b/tests/automatic/mongo_db/auto_id/auto_id.cpp
index 1aec1cfd0..ed966436e 100644
--- a/tests/automatic/mongo_db/auto_id/auto_id.cpp
+++ b/tests/automatic/mongo_db/auto_id/auto_id.cpp
@@ -51,7 +51,7 @@ Args GetArgs(int argc, char* argv[]) {
     return args;
 }
 
-void insert(const asapo::MongoDBClient& db, const std::string& name, asapo::MessageMeta fi, const Args& args) {
+void Insert(const asapo::MongoDBClient& db, const std::string& name, asapo::MessageMeta fi, const Args& args) {
     auto start = fi.id;
     for (int i = 0; i < args.n_messages_per_thread; i++) {
         switch (args.mode) {
@@ -89,7 +89,7 @@ int main(int argc, char* argv[]) {
         fi.source = "host:1234";
         fi.id = static_cast<uint64_t>(args.n_messages_per_thread * i);
         db.Connect("127.0.0.1", db_name);
-        insert(db, "stream", fi, args);
+        Insert(db, "stream", fi, args);
     };
 
     auto t1 = high_resolution_clock::now();
diff --git a/tests/automatic/producer/c_api/producer_api.c b/tests/automatic/producer/c_api/producer_api.c
index 5953414d0..317d647c8 100644
--- a/tests/automatic/producer/c_api/producer_api.c
+++ b/tests/automatic/producer/c_api/producer_api.c
@@ -2,7 +2,6 @@
 #include "testing_c.h"
 
 #include <string.h>
-#include <stdio.h>
 #include <stdlib.h>
 
 void callback(void* original_data, AsapoRequestCallbackPayloadHandle payload, AsapoErrorHandle error) {
diff --git a/tests/automatic/producer/cpp_api/producer_api.cpp b/tests/automatic/producer/cpp_api/producer_api.cpp
index d5e5982ab..aa573f0bd 100644
--- a/tests/automatic/producer/cpp_api/producer_api.cpp
+++ b/tests/automatic/producer/cpp_api/producer_api.cpp
@@ -1,5 +1,4 @@
 #include <iostream>
-#include <vector>
 #include <thread>
 #include <algorithm>
 #include <asapo/asapo_producer.h>
diff --git a/tests/automatic/spd_logger/fluentd/spd_logger_fluentd.cpp b/tests/automatic/spd_logger/fluentd/spd_logger_fluentd.cpp
index 42c19b5e9..c1e61fb19 100644
--- a/tests/automatic/spd_logger/fluentd/spd_logger_fluentd.cpp
+++ b/tests/automatic/spd_logger/fluentd/spd_logger_fluentd.cpp
@@ -1,6 +1,3 @@
-#include <thread>
-#include <vector>
-
 #include "asapo/logger/logger.h"
 
 using namespace asapo;
diff --git a/tests/automatic/system_io/ip_tcp_network/client_serv/ip_tcp_network.cpp b/tests/automatic/system_io/ip_tcp_network/client_serv/ip_tcp_network.cpp
index 0a6354c36..a7f1edfd2 100644
--- a/tests/automatic/system_io/ip_tcp_network/client_serv/ip_tcp_network.cpp
+++ b/tests/automatic/system_io/ip_tcp_network/client_serv/ip_tcp_network.cpp
@@ -140,7 +140,7 @@ void CheckNormal(int times, size_t size) {
 
         std::cout << "[CLIENT] buffer check" << std::endl;
         for (size_t ii = 0; ii < size; ii++) {
-            if (buffer[ii] != buffer2[i]) {
+            if (buffer[ii] != buffer2[ii]) {
                 Exit(207);
             }
         }
@@ -156,7 +156,7 @@ void CheckNormal(int times, size_t size) {
         }
         std::cout << "[CLIENT] buffer check after receive file" << std::endl;
         for (size_t ii = 0; ii < size; ii++) {
-            if (buffer[ii] != buffer2[i]) {
+            if (buffer[ii] != buffer2[ii]) {
                 Exit(211);
             }
         }
diff --git a/tests/automatic/system_io/ip_tcp_network/client_serv_multicon/multicon.cpp b/tests/automatic/system_io/ip_tcp_network/client_serv_multicon/multicon.cpp
index 7e914d025..4ee84fe88 100644
--- a/tests/automatic/system_io/ip_tcp_network/client_serv_multicon/multicon.cpp
+++ b/tests/automatic/system_io/ip_tcp_network/client_serv_multicon/multicon.cpp
@@ -1,6 +1,5 @@
 #include <iostream>
 #include "asapo/io/io_factory.h"
-#include <chrono>
 #include <thread>
 #include <future>
 #include <atomic>
-- 
GitLab