LCOV - code coverage report
Current view: top level - listrev/unittest - ListWrapper_test.cxx (source / functions) Coverage Total Hit
Test: code.result Lines: 100.0 % 101 101
Test Date: 2025-12-21 13:07:08 Functions: 100.0 % 18 18

            Line data    Source code
       1              : /**
       2              :  * @file ListWrapper_test.cxx ListWrapper class Unit Tests
       3              :  *
       4              :  * This is part of the DUNE DAQ Application Framework, copyright 2020.
       5              :  * Licensing/copyright details are in the COPYING file that you should have
       6              :  * received with this code.
       7              :  */
       8              : 
       9              : #include "../src/ListWrapper.hpp"
      10              : 
      11              : #include "serialization/Serialization.hpp"
      12              : 
      13              : #define BOOST_TEST_MODULE ListWrapper_test // NOLINT
      14              : 
      15              : #include "boost/test/unit_test.hpp"
      16              : 
      17              : #include <string>
      18              : #include <vector>
      19              : 
      20              : using namespace dunedaq::listrev;
      21              : 
      22              : BOOST_AUTO_TEST_SUITE(ListWrapper_test)
      23              : 
      24            2 : BOOST_AUTO_TEST_CASE(BasicTests)
      25              : {
      26            1 :   IntList intList;
      27            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), 0);
      28            1 :   ReversedList::Data reversedListData;
      29            1 :   BOOST_REQUIRE_EQUAL(reversedListData.original.list.size(), 0);
      30            1 :   BOOST_REQUIRE_EQUAL(reversedListData.reversed.list.size(), 0);
      31            1 :   ReversedList reversedList;
      32            1 :   BOOST_REQUIRE_EQUAL(reversedList.lists.size(), 0);
      33            1 :   CreateList createList;
      34            1 :   BOOST_REQUIRE_EQUAL(createList.list_size, 0);
      35            1 :   RequestList requestList;
      36            1 :   BOOST_REQUIRE_EQUAL(requestList.destination, "");
      37            1 : }
      38              : 
      39            2 : BOOST_AUTO_TEST_CASE(IntList_SerDes_MsgPack) {
      40            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<IntList>::value);
      41            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<IntList>(), "IntList");
      42              : 
      43            1 :   IntList intList;
      44            1 :   intList.list_id = 1;
      45            1 :   intList.generator_id = 2;
      46            1 :   intList.list = { 3, 4, 5, 6, 7 };
      47              : 
      48            1 :   IntList anotherList(8, 9, { 10, 11, 12 });
      49              :   
      50            1 :   auto bytes = dunedaq::serialization::serialize(intList, dunedaq::serialization::kMsgPack);
      51            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
      52            1 :   IntList intList_deserialized = dunedaq::serialization::deserialize<IntList>(bytes);
      53              : 
      54            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, intList_deserialized.list_id);
      55            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, intList_deserialized.generator_id);
      56            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), intList_deserialized.list.size());
      57            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], intList_deserialized.list[0]);
      58              : 
      59            1 :   auto more_bytes = dunedaq::serialization::serialize(anotherList, dunedaq::serialization::kMsgPack);
      60            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << more_bytes.size() << " bytes";
      61            1 :   intList_deserialized = dunedaq::serialization::deserialize<IntList>(more_bytes);
      62              : 
      63            1 :   BOOST_REQUIRE_EQUAL(anotherList.list_id, intList_deserialized.list_id);
      64            1 :   BOOST_REQUIRE_EQUAL(anotherList.generator_id, intList_deserialized.generator_id);
      65            1 :   BOOST_REQUIRE_EQUAL(anotherList.list.size(), intList_deserialized.list.size());
      66            1 :   BOOST_REQUIRE_EQUAL(anotherList.list[0], intList_deserialized.list[0]);
      67            1 : }
      68              : 
      69            2 : BOOST_AUTO_TEST_CASE(ReversedListData_SerDes_MsgPack)
      70              : {
      71            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<ReversedList::Data>::value);
      72            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<ReversedList::Data>(), "ReversedListData");
      73              : 
      74            1 :   IntList intList(1, 2, {3,4,5,6});
      75            1 :   IntList reversed(1, 3, { 6, 5, 4, 3 });
      76            1 :   ReversedList::Data data;
      77            1 :   data.original = intList;
      78            1 :   data.reversed = reversed;
      79              : 
      80            1 :   auto bytes = dunedaq::serialization::serialize(data, dunedaq::serialization::kMsgPack);
      81            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
      82            1 :   ReversedList::Data data_deserialized = dunedaq::serialization::deserialize<ReversedList::Data>(bytes);
      83              : 
      84            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, data_deserialized.original.list_id);
      85            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, data_deserialized.original.generator_id);
      86            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), data_deserialized.original.list.size());
      87            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], data_deserialized.original.list[0]);
      88              : 
      89            1 :   BOOST_REQUIRE_EQUAL(reversed.list_id, data_deserialized.reversed.list_id);
      90            1 :   BOOST_REQUIRE_EQUAL(reversed.generator_id, data_deserialized.reversed.generator_id);
      91            1 :   BOOST_REQUIRE_EQUAL(reversed.list.size(), data_deserialized.reversed.list.size());
      92            1 :   BOOST_REQUIRE_EQUAL(reversed.list[0], data_deserialized.reversed.list[0]);
      93            1 : }
      94              : 
      95            2 : BOOST_AUTO_TEST_CASE(ReversedList_SerDes_MsgPack)
      96              : {
      97            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<ReversedList>::value);
      98            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<ReversedList>(), "ReversedList");
      99              : 
     100            1 :   IntList intList(1, 2, { 3, 4, 5, 6 });
     101            1 :   IntList reversed(1, 3, { 6, 5, 4, 3 });
     102            1 :   ReversedList::Data data;
     103            1 :   data.original = intList;
     104            1 :   data.reversed = reversed;
     105            2 :   ReversedList reversedList(1, 3, { data });
     106              : 
     107            1 :   auto bytes = dunedaq::serialization::serialize(reversedList, dunedaq::serialization::kMsgPack);
     108            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     109            1 :   ReversedList reversedList_deserialized = dunedaq::serialization::deserialize<ReversedList>(bytes);
     110              : 
     111            1 :   BOOST_REQUIRE_EQUAL(reversedList.list_id, reversedList_deserialized.list_id);
     112            1 :   BOOST_REQUIRE_EQUAL(reversedList.reverser_id, reversedList_deserialized.reverser_id);
     113            1 :   BOOST_REQUIRE_EQUAL(reversedList.lists.size(), reversedList_deserialized.lists.size());
     114              : 
     115            1 :   auto data_deserialized = reversedList_deserialized.lists[0];
     116              : 
     117            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, data_deserialized.original.list_id);
     118            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, data_deserialized.original.generator_id);
     119            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), data_deserialized.original.list.size());
     120            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], data_deserialized.original.list[0]);
     121              : 
     122            1 :   BOOST_REQUIRE_EQUAL(reversed.list_id, data_deserialized.reversed.list_id);
     123            1 :   BOOST_REQUIRE_EQUAL(reversed.generator_id, data_deserialized.reversed.generator_id);
     124            1 :   BOOST_REQUIRE_EQUAL(reversed.list.size(), data_deserialized.reversed.list.size());
     125            1 :   BOOST_REQUIRE_EQUAL(reversed.list[0], data_deserialized.reversed.list[0]);
     126            2 : }
     127              : 
     128            2 : BOOST_AUTO_TEST_CASE(CreateList_SerDes_MsgPack)
     129              : {
     130            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<CreateList>::value);
     131            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<CreateList>(), "CreateList");
     132              : 
     133            1 :   CreateList create(2, 100);
     134              : 
     135            1 :   auto bytes = dunedaq::serialization::serialize(create, dunedaq::serialization::kMsgPack);
     136            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     137            1 :   CreateList create_deserialized = dunedaq::serialization::deserialize<CreateList>(bytes);
     138              : 
     139            1 :   BOOST_REQUIRE_EQUAL(create.list_id, create_deserialized.list_id);
     140            1 :   BOOST_REQUIRE_EQUAL(create.list_size, create_deserialized.list_size);
     141            1 : }
     142              : 
     143            2 : BOOST_AUTO_TEST_CASE(RequestList_SerDes_MsgPack)
     144              : {
     145            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<RequestList>::value);
     146            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<RequestList>(), "RequestList");
     147              : 
     148            1 :   RequestList request(1, "test");
     149              : 
     150            1 :   auto bytes = dunedaq::serialization::serialize(request, dunedaq::serialization::kMsgPack);
     151            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     152            1 :   RequestList request_deserialized = dunedaq::serialization::deserialize<RequestList>(bytes);
     153              : 
     154            1 :   BOOST_REQUIRE_EQUAL(request.list_id, request_deserialized.list_id);
     155            1 :   BOOST_REQUIRE_EQUAL(request.destination, request_deserialized.destination);
     156            1 : }
     157              : 
     158              : BOOST_AUTO_TEST_SUITE_END()
        

Generated by: LCOV version 2.0-1