artdaq  v3_02_00
GenericFragmentSimulator_t.cc
1 #define BOOST_TEST_MODULE GenericFragmentSimulator_t
2 #include <boost/test/auto_unit_test.hpp>
3 
4 #include "fhiclcpp/ParameterSet.h"
5 #include "artdaq-core/Data/Fragment.hh"
6 #include "artdaq-core/Data/detail/RawFragmentHeader.hh"
7 #include "artdaq/DAQdata/GenericFragmentSimulator.hh"
8 
9 #include <cstddef>
10 
11 std::size_t const NUM_EVENTS = 2;
12 std::size_t const NUM_FRAGS_PER_EVENT = 5;
13 std::size_t const FRAGMENT_SIZE = 110;
14 
15 BOOST_AUTO_TEST_SUITE(GenericFragmentSimulator_t)
16 
17  BOOST_AUTO_TEST_CASE(Simple)
18  {
19  fhicl::ParameterSet sim_config;
20  sim_config.put("fragments_per_event", NUM_FRAGS_PER_EVENT);
21  sim_config.put("want_random_payload_size", false);
22  sim_config.put("payload_size", FRAGMENT_SIZE);
23  artdaq::GenericFragmentSimulator sim(sim_config);
24  artdaq::FragmentPtrs fragments;
25  std::size_t num_events_seen = 0;
26  while (fragments.clear() , num_events_seen < NUM_EVENTS && sim.getNext(fragments))
27  {
28  BOOST_REQUIRE_EQUAL(fragments.size(), NUM_FRAGS_PER_EVENT);
29  for (auto&& fragptr : fragments)
30  {
31  BOOST_CHECK(fragptr.get());
32  BOOST_CHECK_EQUAL(fragptr->sequenceID(), num_events_seen + 1);
33  BOOST_CHECK_EQUAL(fragptr->size(), FRAGMENT_SIZE + artdaq::detail::RawFragmentHeader::num_words());
34  BOOST_CHECK_EQUAL(fragptr->dataSize(), FRAGMENT_SIZE);
35  }
36  ++num_events_seen;
37  }
38  BOOST_REQUIRE_EQUAL(num_events_seen, NUM_EVENTS);
39  }
40 
41 BOOST_AUTO_TEST_SUITE_END()
GenericFragmentSimulator creates simulated Generic events, with data distributed according to a &quot;hist...
bool getNext(Fragment::sequence_id_t sequence_id, Fragment::fragment_id_t fragment_id, FragmentPtr &frag_ptr)
Generate a Fragment according to the value of the content_selectior_t enum.