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/DAQdata/GenericFragmentSimulator.hh" 00008 00009 #include <cstddef> 00010 00011 std::size_t const NUM_EVENTS = 2; 00012 std::size_t const NUM_FRAGS_PER_EVENT = 5; 00013 std::size_t const FRAGMENT_SIZE = 110; 00014 00015 BOOST_AUTO_TEST_SUITE(GenericFragmentSimulator_t) 00016 00017 BOOST_AUTO_TEST_CASE(Simple) 00018 { 00019 fhicl::ParameterSet sim_config; 00020 sim_config.put("fragments_per_event", NUM_FRAGS_PER_EVENT); 00021 sim_config.put("want_random_payload_size", false); 00022 sim_config.put("payload_size", FRAGMENT_SIZE); 00023 artdaq::GenericFragmentSimulator sim(sim_config); 00024 artdaq::FragmentPtrs fragments; 00025 std::size_t num_events_seen = 0; 00026 while (fragments.clear() , num_events_seen < NUM_EVENTS && sim.getNext(fragments)) 00027 { 00028 BOOST_REQUIRE_EQUAL(fragments.size(), NUM_FRAGS_PER_EVENT); 00029 for (auto&& fragptr : fragments) 00030 { 00031 BOOST_CHECK(fragptr.get()); 00032 BOOST_CHECK_EQUAL(fragptr->sequenceID(), num_events_seen + 1); 00033 BOOST_CHECK_EQUAL(fragptr->size(), FRAGMENT_SIZE + artdaq::detail::RawFragmentHeader::num_words()); 00034 BOOST_CHECK_EQUAL(fragptr->dataSize(), FRAGMENT_SIZE); 00035 } 00036 ++num_events_seen; 00037 } 00038 BOOST_REQUIRE_EQUAL(num_events_seen, NUM_EVENTS); 00039 } 00040 00041 BOOST_AUTO_TEST_SUITE_END()