00001 #define BOOST_TEST_MODULE ( GenericFragmentSimulator_t ) 00002 #include "boost/test/auto_unit_test.hpp" 00003 00004 #include "fhiclcpp/ParameterSet.h" 00005 #include "artdaq-core/Data/Fragment.hh" 00006 #include "artdaq-core/Data/detail/RawFragmentHeader.hh" 00007 #include "artdaq/DAQrate/EventStore.hh" 00008 #include "artdaq/DAQdata/GenericFragmentSimulator.hh" 00009 00010 #include <cstddef> 00011 00012 std::size_t const NUM_EVENTS = 2; 00013 std::size_t const NUM_FRAGS_PER_EVENT = 5; 00014 std::size_t const FRAGMENT_SIZE = 110; 00015 00016 BOOST_AUTO_TEST_SUITE(GenericFragmentSimulator_t) 00017 00018 BOOST_AUTO_TEST_CASE(Simple) 00019 { 00020 fhicl::ParameterSet sim_config; 00021 sim_config.put("fragments_per_event", NUM_FRAGS_PER_EVENT); 00022 sim_config.put("want_random_payload_size", false); 00023 sim_config.put("payload_size", FRAGMENT_SIZE); 00024 artdaq::GenericFragmentSimulator sim(sim_config); 00025 artdaq::FragmentPtrs fragments; 00026 std::size_t num_events_seen = 0; 00027 while (fragments.clear() , num_events_seen < NUM_EVENTS && sim.getNext(fragments)) 00028 { 00029 BOOST_REQUIRE_EQUAL(fragments.size(), NUM_FRAGS_PER_EVENT); 00030 for (auto&& fragptr : fragments) 00031 { 00032 BOOST_CHECK(fragptr.get()); 00033 BOOST_CHECK_EQUAL(fragptr->sequenceID(), num_events_seen + 1); 00034 BOOST_CHECK_EQUAL(fragptr->size(), FRAGMENT_SIZE + artdaq::detail::RawFragmentHeader::num_words()); 00035 BOOST_CHECK_EQUAL(fragptr->dataSize(), FRAGMENT_SIZE); 00036 } 00037 ++num_events_seen; 00038 } 00039 BOOST_REQUIRE_EQUAL(num_events_seen, NUM_EVENTS); 00040 } 00041 00042 BOOST_AUTO_TEST_SUITE_END()