artdaq_mfextensions  v1_05_05
throttle_t.cc
1 #include "mfextensions/Extensions/throttle.hh"
2 
3 #define BOOST_TEST_MODULE throttle_t
4 #include "cetlib/quiet_unit_test.hpp"
5 #include "cetlib_except/exception.h"
6 
7 #define TRACE_NAME "throttle_t"
8 #include "tracemf.h"
9 
10 BOOST_AUTO_TEST_SUITE(throttle_t)
11 
12 BOOST_AUTO_TEST_CASE(Throttle)
13 {
14  throttle t("test", 2, 1);
15 
16  struct timeval tv;
17  gettimeofday(&tv, nullptr);
18 
19  BOOST_REQUIRE(!t.reach_limit("test", tv));
20  BOOST_REQUIRE(!t.reach_limit("test", tv));
21  BOOST_REQUIRE(t.reach_limit("test", tv));
22  BOOST_REQUIRE(!t.reach_limit("quiz", tv));
23 
24  t.use(false);
25  BOOST_REQUIRE(!t.reach_limit("test", tv));
26 
27  t.use(true);
28  tv.tv_sec += 2;
29  BOOST_REQUIRE(!t.reach_limit("test", tv));
30 }
31 
32 BOOST_AUTO_TEST_SUITE_END()
Throttle messages based on name and time limits. Separate from MessageFacility limiting.
Definition: throttle.hh:17