##// END OF EJS Templates
(Minor) Defines macro to simplify writing getters in the FuzzingTest class
Alexandre Leroux -
r1245:d934cb0e1773
parent child
Show More
@@ -20,12 +20,31
20
20
21 Q_LOGGING_CATEGORY(LOG_TestAmdaFuzzing, "TestAmdaFuzzing")
21 Q_LOGGING_CATEGORY(LOG_TestAmdaFuzzing, "TestAmdaFuzzing")
22
22
23 /**
24 * Macro used to generate a getter for a property in @sa FuzzingTest. The macro generates a static
25 * attribute that is initialized by searching in properties the property and use a default value if
26 * it's not present. Macro arguments are:
27 * - GETTER_NAME : name of the getter
28 * - PROPERTY_NAME: used to generate constants for property's name ({PROPERTY_NAME}_PROPERTY) and
29 * default value ({PROPERTY_NAME}_DEFAULT_VALUE)
30 * - TYPE : return type of the getter
31 */
32 // clang-format off
33 #define DECLARE_PROPERTY_GETTER(GETTER_NAME, PROPERTY_NAME, TYPE) \
34 TYPE GETTER_NAME() const \
35 { \
36 static auto result = m_Properties.value(PROPERTY_NAME##_PROPERTY, PROPERTY_NAME##_DEFAULT_VALUE).value<TYPE>(); \
37 return result; \
38 } \
39 // clang-format on
40
23 namespace {
41 namespace {
24
42
25 // /////// //
43 // /////// //
26 // Aliases //
44 // Aliases //
27 // /////// //
45 // /////// //
28
46
47 using IntPair = std::pair<int, int>;
29 using Weight = double;
48 using Weight = double;
30 using Weights = std::vector<Weight>;
49 using Weights = std::vector<Weight>;
31
50
@@ -224,37 +243,6 public:
224 }
243 }
225
244
226 private:
245 private:
227 int nbMaxOperations() const
228 {
229 static auto result
230 = m_Properties.value(NB_MAX_OPERATIONS_PROPERTY, NB_MAX_OPERATIONS_DEFAULT_VALUE)
231 .toInt();
232 return result;
233 }
234
235 int nbMaxSyncGroups() const
236 {
237 static auto result
238 = m_Properties.value(NB_MAX_SYNC_GROUPS_PROPERTY, NB_MAX_SYNC_GROUPS_DEFAULT_VALUE)
239 .toInt();
240 return result;
241 }
242
243 int nbMaxVariables() const
244 {
245 static auto result
246 = m_Properties.value(NB_MAX_VARIABLES_PROPERTY, NB_MAX_VARIABLES_DEFAULT_VALUE).toInt();
247 return result;
248 }
249
250 std::pair<int, int> operationDelays() const
251 {
252 static auto result
253 = m_Properties
254 .value(OPERATION_DELAY_BOUNDS_PROPERTY, OPERATION_DELAY_BOUNDS_DEFAULT_VALUE)
255 .value<std::pair<int, int> >();
256 return result;
257 }
258
246
259 WeightedOperationsPool operationsPool() const
247 WeightedOperationsPool operationsPool() const
260 {
248 {
@@ -272,14 +260,12 private:
272 return result;
260 return result;
273 }
261 }
274
262
275 std::pair<int, int> validationFrequencies() const
263 DECLARE_PROPERTY_GETTER(nbMaxOperations, NB_MAX_OPERATIONS, int)
276 {
264 DECLARE_PROPERTY_GETTER(nbMaxSyncGroups, NB_MAX_SYNC_GROUPS, int)
277 static auto result = m_Properties
265 DECLARE_PROPERTY_GETTER(nbMaxVariables, NB_MAX_VARIABLES, int)
278 .value(VALIDATION_FREQUENCY_BOUNDS_PROPERTY,
266 DECLARE_PROPERTY_GETTER(operationDelays, OPERATION_DELAY_BOUNDS, IntPair)
279 VALIDATION_FREQUENCY_BOUNDS_DEFAULT_VALUE)
267 DECLARE_PROPERTY_GETTER(validationFrequencies, VALIDATION_FREQUENCY_BOUNDS, IntPair)
280 .value<std::pair<int, int> >();
268 DECLARE_PROPERTY_GETTER(acquisitionTimeout, ACQUISITION_TIMEOUT, int)
281 return result;
282 }
283
269
284 VariableController &m_VariableController;
270 VariableController &m_VariableController;
285 Properties m_Properties;
271 Properties m_Properties;
General Comments 0
You need to be logged in to leave comments. Login now