LCOV - code coverage report
Current view: top level - listrev/unittest - ListWrapper_test.cxx (source / functions) Coverage Total Hit
Test: code.result Lines: 98.0 % 101 99
Test Date: 2026-10-11 15:05:20 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            0 :   RequestList requestList;
      36            0 :   BOOST_REQUIRE_EQUAL(requestList.destination, "");
      37            3 : }
      38              : 
      39            2 : BOOST_AUTO_TEST_CASE(IntList_SerDes_MsgPack)
      40              : {
      41            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<IntList>::value);
      42            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<IntList>(), "IntList");
      43              : 
      44            1 :   IntList intList;
      45            1 :   intList.list_id = 1;
      46            1 :   intList.generator_id = 2;
      47            1 :   intList.list = { 3, 4, 5, 6, 7 };
      48              : 
      49            1 :   IntList anotherList(8, 9, { 10, 11, 12 });
      50              : 
      51            1 :   auto bytes = dunedaq::serialization::serialize(intList, dunedaq::serialization::kMsgPack);
      52            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
      53            1 :   IntList intList_deserialized = dunedaq::serialization::deserialize<IntList>(bytes);
      54              : 
      55            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, intList_deserialized.list_id);
      56            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, intList_deserialized.generator_id);
      57            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), intList_deserialized.list.size());
      58            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], intList_deserialized.list[0]);
      59              : 
      60            1 :   auto more_bytes = dunedaq::serialization::serialize(anotherList, dunedaq::serialization::kMsgPack);
      61            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << more_bytes.size() << " bytes";
      62            1 :   intList_deserialized = dunedaq::serialization::deserialize<IntList>(more_bytes);
      63              : 
      64            1 :   BOOST_REQUIRE_EQUAL(anotherList.list_id, intList_deserialized.list_id);
      65            1 :   BOOST_REQUIRE_EQUAL(anotherList.generator_id, intList_deserialized.generator_id);
      66            1 :   BOOST_REQUIRE_EQUAL(anotherList.list.size(), intList_deserialized.list.size());
      67            1 :   BOOST_REQUIRE_EQUAL(anotherList.list[0], intList_deserialized.list[0]);
      68            1 : }
      69              : 
      70            2 : BOOST_AUTO_TEST_CASE(ReversedListData_SerDes_MsgPack)
      71              : {
      72            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<ReversedList::Data>::value);
      73            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<ReversedList::Data>(), "ReversedListData");
      74              : 
      75            1 :   IntList intList(1, 2, { 3, 4, 5, 6 });
      76            1 :   IntList reversed(1, 3, { 6, 5, 4, 3 });
      77            1 :   ReversedList::Data data;
      78            1 :   data.original = intList;
      79            1 :   data.reversed = reversed;
      80              : 
      81            1 :   auto bytes = dunedaq::serialization::serialize(data, dunedaq::serialization::kMsgPack);
      82            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
      83            1 :   ReversedList::Data data_deserialized = dunedaq::serialization::deserialize<ReversedList::Data>(bytes);
      84              : 
      85            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, data_deserialized.original.list_id);
      86            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, data_deserialized.original.generator_id);
      87            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), data_deserialized.original.list.size());
      88            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], data_deserialized.original.list[0]);
      89              : 
      90            1 :   BOOST_REQUIRE_EQUAL(reversed.list_id, data_deserialized.reversed.list_id);
      91            1 :   BOOST_REQUIRE_EQUAL(reversed.generator_id, data_deserialized.reversed.generator_id);
      92            1 :   BOOST_REQUIRE_EQUAL(reversed.list.size(), data_deserialized.reversed.list.size());
      93            1 :   BOOST_REQUIRE_EQUAL(reversed.list[0], data_deserialized.reversed.list[0]);
      94            1 : }
      95              : 
      96            2 : BOOST_AUTO_TEST_CASE(ReversedList_SerDes_MsgPack)
      97              : {
      98            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<ReversedList>::value);
      99            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<ReversedList>(), "ReversedList");
     100              : 
     101            1 :   IntList intList(1, 2, { 3, 4, 5, 6 });
     102            1 :   IntList reversed(1, 3, { 6, 5, 4, 3 });
     103            1 :   ReversedList::Data data;
     104            1 :   data.original = intList;
     105            1 :   data.reversed = reversed;
     106            2 :   ReversedList reversedList(1, 3, { data });
     107              : 
     108            1 :   auto bytes = dunedaq::serialization::serialize(reversedList, dunedaq::serialization::kMsgPack);
     109            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     110            1 :   ReversedList reversedList_deserialized = dunedaq::serialization::deserialize<ReversedList>(bytes);
     111              : 
     112            1 :   BOOST_REQUIRE_EQUAL(reversedList.list_id, reversedList_deserialized.list_id);
     113            1 :   BOOST_REQUIRE_EQUAL(reversedList.reverser_id, reversedList_deserialized.reverser_id);
     114            1 :   BOOST_REQUIRE_EQUAL(reversedList.lists.size(), reversedList_deserialized.lists.size());
     115              : 
     116            1 :   auto data_deserialized = reversedList_deserialized.lists[0];
     117              : 
     118            1 :   BOOST_REQUIRE_EQUAL(intList.list_id, data_deserialized.original.list_id);
     119            1 :   BOOST_REQUIRE_EQUAL(intList.generator_id, data_deserialized.original.generator_id);
     120            1 :   BOOST_REQUIRE_EQUAL(intList.list.size(), data_deserialized.original.list.size());
     121            1 :   BOOST_REQUIRE_EQUAL(intList.list[0], data_deserialized.original.list[0]);
     122              : 
     123            1 :   BOOST_REQUIRE_EQUAL(reversed.list_id, data_deserialized.reversed.list_id);
     124            1 :   BOOST_REQUIRE_EQUAL(reversed.generator_id, data_deserialized.reversed.generator_id);
     125            1 :   BOOST_REQUIRE_EQUAL(reversed.list.size(), data_deserialized.reversed.list.size());
     126            1 :   BOOST_REQUIRE_EQUAL(reversed.list[0], data_deserialized.reversed.list[0]);
     127            2 : }
     128              : 
     129            2 : BOOST_AUTO_TEST_CASE(CreateList_SerDes_MsgPack)
     130              : {
     131            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<CreateList>::value);
     132            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<CreateList>(), "CreateList");
     133              : 
     134            1 :   CreateList create(2, 100);
     135              : 
     136            1 :   auto bytes = dunedaq::serialization::serialize(create, dunedaq::serialization::kMsgPack);
     137            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     138            1 :   CreateList create_deserialized = dunedaq::serialization::deserialize<CreateList>(bytes);
     139              : 
     140            1 :   BOOST_REQUIRE_EQUAL(create.list_id, create_deserialized.list_id);
     141            1 :   BOOST_REQUIRE_EQUAL(create.list_size, create_deserialized.list_size);
     142            1 : }
     143              : 
     144            2 : BOOST_AUTO_TEST_CASE(RequestList_SerDes_MsgPack)
     145              : {
     146            1 :   BOOST_REQUIRE(dunedaq::serialization::is_serializable<RequestList>::value);
     147            1 :   BOOST_REQUIRE_EQUAL(dunedaq::datatype_to_string<RequestList>(), "RequestList");
     148              : 
     149            1 :   RequestList request(1, "test");
     150              : 
     151            1 :   auto bytes = dunedaq::serialization::serialize(request, dunedaq::serialization::kMsgPack);
     152            3 :   TLOG(TLVL_INFO) << "MsgPack message size: " << bytes.size() << " bytes";
     153            1 :   RequestList request_deserialized = dunedaq::serialization::deserialize<RequestList>(bytes);
     154              : 
     155            1 :   BOOST_REQUIRE_EQUAL(request.list_id, request_deserialized.list_id);
     156            1 :   BOOST_REQUIRE_EQUAL(request.destination, request_deserialized.destination);
     157            1 : }
     158              : 
     159              : BOOST_AUTO_TEST_SUITE_END()
        

Generated by: LCOV version 2.0-1