artdaq  v2_02_03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
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/DAQrate/EventStore.hh"
8 #include "artdaq/DAQdata/GenericFragmentSimulator.hh"
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  artdaq::GenericFragmentSimulator sim(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()
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.