Project

General

Profile

Feature #21811

Add a subconfiguration which contains ToySimulators that behave badly by design

Added by John Freeman 10 months ago. Updated 10 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
01/30/2019
Due date:
% Done:

100%

Estimated time:
Experiment:
-
Co-Assignees:
Duration:

Description

Back in the summer of 2016, a number of FHiCL parameters were added to the ToySimulator's ToyHardwareInterface which could instruct it to behave pathologically (e.g., throwing an exception after a given amount of time running). Given our group's commitment to testing, it seems like a good idea to take advantage of this feature. For this reason, I've added a subconfiguration in DAQInterface called "subconfig/component_special" which contains ToySimulators that behave badly in various ways. These include:

  • component_throws_exception: throws an exception, putting the boardreader into the "Error" state
  • component_dies_from_exit: boardreader dies because std::exit is called
  • component_dies_from_abort: boardreader dies because std::abort is called
  • component_hangs: getNext_() doesn't return because it encounters an infinite while loop
  • component_fragment_size_blows_up: the fragment size returned by the ToySimulator suddenly increases to 100 MB

These components have also been added to the known_boardreaders_list_example file. Note that the bad thing which happens occurs 30 seconds after running begins. If, e.g., I perform a run like this:

just_do_it.sh ./boot.txt 0 --config "subconfigs/component_push subconfigs/component_special subconfigs/dataloggers subconfigs/dispatchers subconfigs/eventbuilders subconfigs/metrics_disabled subconfigs/routingmaster_disabled" --comps "component01 component02 component_throws_exception" 

then of the three boardreaders in the run, after 30 seconds one of them will go into the Error state.

The advantage of having these components makes it easier to test how DAQInterface (and for that matter, artdaq) behaves not just when things go right, but when they go wrong.

Associated revisions

Revision a4bb98b5 (diff)
Added by John Freeman 10 months ago

JCF: in known_boardreaders_list_mu2edaq, add support for the pathological boardreaders described in Issue #21811

History

#1 Updated by John Freeman 10 months ago

For the record, the component_special subconfiguration was added in commit bf21bd04c6dfd71365f51832dbc97366fdcf25b5 on DAQInterface's develop branch.



Also available in: Atom PDF