1 #define BOOST_TEST_MODULE NoOp_policy_t
2 #include <boost/test/unit_test.hpp>
4 #include "artdaq-utilities/Plugins/MakeParameterSet.hh"
5 #include "artdaq/RoutingPolicies/makeRoutingManagerPolicy.hh"
6 #include "fhiclcpp/ParameterSet.h"
8 BOOST_AUTO_TEST_SUITE(NoOp_policy_t)
12 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case Simple BEGIN";
13 fhicl::ParameterSet ps = artdaq::make_pset(
"");
18 noop->AddReceiverToken(1, 1);
19 noop->AddReceiverToken(3, 1);
20 noop->AddReceiverToken(2, 1);
21 noop->AddReceiverToken(4, 1);
22 noop->AddReceiverToken(2, 1);
23 BOOST_REQUIRE_EQUAL(noop->GetReceiverCount(), 4);
24 auto secondTable = noop->GetCurrentTable();
25 BOOST_REQUIRE_EQUAL(secondTable.size(), 5);
26 BOOST_REQUIRE_EQUAL(secondTable[0].destination_rank, 1);
27 BOOST_REQUIRE_EQUAL(secondTable[1].destination_rank, 3);
28 BOOST_REQUIRE_EQUAL(secondTable[2].destination_rank, 2);
29 BOOST_REQUIRE_EQUAL(secondTable[3].destination_rank, 4);
30 BOOST_REQUIRE_EQUAL(secondTable[4].destination_rank, 2);
31 BOOST_REQUIRE_EQUAL(secondTable[0].sequence_id, 1);
32 BOOST_REQUIRE_EQUAL(secondTable[1].sequence_id, 2);
33 BOOST_REQUIRE_EQUAL(secondTable[2].sequence_id, 3);
34 BOOST_REQUIRE_EQUAL(secondTable[3].sequence_id, 4);
35 BOOST_REQUIRE_EQUAL(secondTable[4].sequence_id, 5);
37 noop->AddReceiverToken(1, 0);
39 auto thirdTable = noop->GetCurrentTable();
40 BOOST_REQUIRE_EQUAL(thirdTable.size(), 0);
41 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case Simple END";
46 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case DataFlowMode BEGIN";
47 fhicl::ParameterSet ps = artdaq::make_pset(
"routing_manager_mode: DataFlow");
52 noop->AddReceiverToken(1, 1);
53 noop->AddReceiverToken(3, 1);
54 noop->AddReceiverToken(2, 1);
55 noop->AddReceiverToken(3, 1);
56 noop->AddReceiverToken(2, 1);
57 BOOST_REQUIRE_EQUAL(noop->GetReceiverCount(), 3);
58 auto route = noop->GetRouteForSequenceID(1, 4);
59 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
60 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
63 route = noop->GetRouteForSequenceID(1, 5);
64 BOOST_REQUIRE_EQUAL(route.destination_rank, 3);
65 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
68 route = noop->GetRouteForSequenceID(1, 5);
69 BOOST_REQUIRE_EQUAL(route.destination_rank, 3);
70 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
72 route = noop->GetRouteForSequenceID(2, 4);
73 BOOST_REQUIRE_EQUAL(route.destination_rank, 2);
74 BOOST_REQUIRE_EQUAL(route.sequence_id, 2);
76 noop->AddReceiverToken(1, 1);
77 route = noop->GetRouteForSequenceID(2, 5);
78 BOOST_REQUIRE_EQUAL(route.destination_rank, 3);
79 BOOST_REQUIRE_EQUAL(route.sequence_id, 2);
82 route = noop->GetRouteForSequenceID(1, 6);
83 BOOST_REQUIRE_EQUAL(route.destination_rank, 2);
84 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
87 route = noop->GetRouteForSequenceID(10343, 4);
88 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
89 BOOST_REQUIRE_EQUAL(route.sequence_id, 10343);
90 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case DataFlowMode END";
95 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case RequestBasedEventBuilding BEGIN";
96 fhicl::ParameterSet ps = artdaq::make_pset(
"routing_manager_mode: RequestBasedEventBuilding routing_cache_size: 2");
101 noop->AddReceiverToken(1, 1);
102 noop->AddReceiverToken(3, 1);
103 noop->AddReceiverToken(2, 1);
104 noop->AddReceiverToken(3, 1);
105 noop->AddReceiverToken(2, 1);
106 BOOST_REQUIRE_EQUAL(noop->GetReceiverCount(), 3);
108 auto route = noop->GetRouteForSequenceID(1, 4);
109 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
110 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
113 route = noop->GetRouteForSequenceID(1, 5);
114 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
115 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
118 auto firstTable = noop->GetCurrentTable();
119 BOOST_REQUIRE_EQUAL(firstTable.size(), 1);
120 BOOST_REQUIRE_EQUAL(firstTable[0].destination_rank, 1);
123 route = noop->GetRouteForSequenceID(12343, 4);
124 BOOST_REQUIRE_EQUAL(route.destination_rank, 3);
125 BOOST_REQUIRE_EQUAL(route.sequence_id, 12343);
128 route = noop->GetRouteForSequenceID(4, 5);
129 BOOST_REQUIRE_EQUAL(route.destination_rank, 2);
130 BOOST_REQUIRE_EQUAL(route.sequence_id, 4);
133 route = noop->GetRouteForSequenceID(1, 6);
134 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
135 BOOST_REQUIRE_EQUAL(route.sequence_id, 1);
138 route = noop->GetRouteForSequenceID(10, 4);
139 BOOST_REQUIRE_EQUAL(route.destination_rank, 3);
140 BOOST_REQUIRE_EQUAL(route.sequence_id, 10);
141 route = noop->GetRouteForSequenceID(11, 4);
142 BOOST_REQUIRE_EQUAL(route.destination_rank, 2);
143 BOOST_REQUIRE_EQUAL(route.sequence_id, 11);
145 route = noop->GetRouteForSequenceID(50, 4);
146 BOOST_REQUIRE_EQUAL(route.destination_rank, -1);
148 noop->AddReceiverToken(1, 1);
149 route = noop->GetRouteForSequenceID(50, 4);
150 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
151 BOOST_REQUIRE_EQUAL(route.sequence_id, 50);
153 route = noop->GetRouteForSequenceID(50, 5);
154 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
155 BOOST_REQUIRE_EQUAL(route.sequence_id, 50);
158 auto secondTable = noop->GetCurrentTable();
159 BOOST_REQUIRE_EQUAL(secondTable.size(), 5);
160 BOOST_REQUIRE_EQUAL(secondTable[0].destination_rank, 2);
161 BOOST_REQUIRE_EQUAL(secondTable[0].sequence_id, 4);
162 BOOST_REQUIRE_EQUAL(secondTable[1].destination_rank, 3);
163 BOOST_REQUIRE_EQUAL(secondTable[1].sequence_id, 10);
164 BOOST_REQUIRE_EQUAL(secondTable[2].destination_rank, 2);
165 BOOST_REQUIRE_EQUAL(secondTable[2].sequence_id, 11);
166 BOOST_REQUIRE_EQUAL(secondTable[3].destination_rank, 1);
167 BOOST_REQUIRE_EQUAL(secondTable[3].sequence_id, 50);
168 BOOST_REQUIRE_EQUAL(secondTable[4].destination_rank, 3);
169 BOOST_REQUIRE_EQUAL(secondTable[4].sequence_id, 12343);
172 BOOST_REQUIRE_EQUAL(noop->GetCacheSize(), 2);
173 auto thirdTable = noop->GetCurrentTable();
174 BOOST_REQUIRE_EQUAL(thirdTable.size(), 0);
176 BOOST_REQUIRE(noop->CacheHasRoute(50));
177 BOOST_REQUIRE(!noop->CacheHasRoute(4));
178 route = noop->GetRouteForSequenceID(50, 6);
179 BOOST_REQUIRE_EQUAL(route.destination_rank, 1);
180 BOOST_REQUIRE_EQUAL(route.sequence_id, 50);
182 TLOG(TLVL_INFO) <<
"NoOp_policy_t Test Case RequestBasedEventBuilding END";
185 BOOST_AUTO_TEST_SUITE_END()
std::shared_ptr< RoutingManagerPolicy > makeRoutingManagerPolicy(std::string const &policy_plugin_spec, fhicl::ParameterSet const &ps)
Load a RoutingManagerPolicy plugin.