Line data Source code
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 2 : BOOST_AUTO_TEST_CASE(Simple)
19 : {
20 1 : fhicl::ParameterSet sim_config;
21 1 : sim_config.put("fragments_per_event", NUM_FRAGS_PER_EVENT);
22 3 : sim_config.put("want_random_payload_size", false);
23 2 : sim_config.put("payload_size", FRAGMENT_SIZE);
24 1 : auto sim = artdaq::makeFragmentGenerator("GenericFragmentSimulator", sim_config);
25 1 : artdaq::FragmentPtrs fragments;
26 1 : std::size_t num_events_seen = 0;
27 3 : while (fragments.clear(), num_events_seen < NUM_EVENTS && sim->getNext(fragments))
28 : {
29 2 : BOOST_REQUIRE_EQUAL(fragments.size(), NUM_FRAGS_PER_EVENT);
30 12 : for (auto&& fragptr : fragments)
31 : {
32 10 : BOOST_CHECK(fragptr.get());
33 10 : BOOST_CHECK_EQUAL(fragptr->sequenceID(), num_events_seen + 1);
34 10 : BOOST_CHECK_EQUAL(fragptr->size(), FRAGMENT_SIZE + artdaq::detail::RawFragmentHeader::num_words());
35 10 : BOOST_CHECK_EQUAL(fragptr->dataSize(), FRAGMENT_SIZE);
36 : }
37 2 : ++num_events_seen;
38 : }
39 1 : BOOST_REQUIRE_EQUAL(num_events_seen, NUM_EVENTS);
40 1 : }
41 :
42 : BOOST_AUTO_TEST_SUITE_END()
|