artdaq  v3_12_02
GenericFragmentSimulator_t.cc
1 #define BOOST_TEST_MODULE GenericFragmentSimulator_t
2 #include <boost/test/unit_test.hpp>
3 
4 #include "artdaq-core/Data/Fragment.hh"
5 #include "artdaq-core/Data/detail/RawFragmentHeader.hh"
6 #include "artdaq-core/Plugins/FragmentGenerator.hh"
7 #include "artdaq-core/Plugins/makeFragmentGenerator.hh"
8 #include "fhiclcpp/ParameterSet.h"
9 
10 #include <cstddef>
11 
12 std::size_t const NUM_EVENTS = 2;
13 std::size_t const NUM_FRAGS_PER_EVENT = 5;
14 std::size_t const FRAGMENT_SIZE = 110;
15 
16 BOOST_AUTO_TEST_SUITE(GenericFragmentSimulator_t)
17 
18 BOOST_AUTO_TEST_CASE(Simple)
19 {
20  fhicl::ParameterSet sim_config;
21  sim_config.put("fragments_per_event", NUM_FRAGS_PER_EVENT);
22  sim_config.put("want_random_payload_size", false);
23  sim_config.put("payload_size", FRAGMENT_SIZE);
24  auto sim = artdaq::makeFragmentGenerator("GenericFragmentSimulator", sim_config);
25  artdaq::FragmentPtrs fragments;
26  std::size_t num_events_seen = 0;
27  while (fragments.clear(), num_events_seen < NUM_EVENTS && sim->getNext(fragments))
28  {
29  BOOST_REQUIRE_EQUAL(fragments.size(), NUM_FRAGS_PER_EVENT);
30  for (auto&& fragptr : fragments)
31  {
32  BOOST_CHECK(fragptr.get());
33  BOOST_CHECK_EQUAL(fragptr->sequenceID(), num_events_seen + 1);
34  BOOST_CHECK_EQUAL(fragptr->size(), FRAGMENT_SIZE + artdaq::detail::RawFragmentHeader::num_words());
35  BOOST_CHECK_EQUAL(fragptr->dataSize(), FRAGMENT_SIZE);
36  }
37  ++num_events_seen;
38  }
39  BOOST_REQUIRE_EQUAL(num_events_seen, NUM_EVENTS);
40 }
41 
42 BOOST_AUTO_TEST_SUITE_END()