diff --git a/plugins/amda/tests/FuzzingDefs.cpp b/plugins/amda/tests/FuzzingDefs.cpp index 90df1dd..5dfd1b7 100644 --- a/plugins/amda/tests/FuzzingDefs.cpp +++ b/plugins/amda/tests/FuzzingDefs.cpp @@ -2,3 +2,4 @@ const QString NB_MAX_OPERATIONS_PROPERTY = QStringLiteral("component"); const QString NB_MAX_VARIABLES_PROPERTY = QStringLiteral("nbMaxVariables"); +const QString AVAILABLE_OPERATIONS_PROPERTY = QStringLiteral("availableOperations"); diff --git a/plugins/amda/tests/FuzzingDefs.h b/plugins/amda/tests/FuzzingDefs.h index 5b40858..9a9d78f 100644 --- a/plugins/amda/tests/FuzzingDefs.h +++ b/plugins/amda/tests/FuzzingDefs.h @@ -18,4 +18,7 @@ extern const QString NB_MAX_OPERATIONS_PROPERTY; /// Max number of variables to manipulate through operations extern const QString NB_MAX_VARIABLES_PROPERTY; +/// Set of operations available for the test +extern const QString AVAILABLE_OPERATIONS_PROPERTY; + #endif // SCIQLOP_FUZZINGDEFS_H diff --git a/plugins/amda/tests/TestAmdaFuzzing.cpp b/plugins/amda/tests/TestAmdaFuzzing.cpp index bcbbad2..2f8de02 100644 --- a/plugins/amda/tests/TestAmdaFuzzing.cpp +++ b/plugins/amda/tests/TestAmdaFuzzing.cpp @@ -31,6 +31,18 @@ using VariablesPool = std::map >; // Defaults values used when the associated properties have not been set for the test const auto NB_MAX_OPERATIONS_DEFAULT_VALUE = 100; const auto NB_MAX_VARIABLES_DEFAULT_VALUE = 1; +const auto AVAILABLE_OPERATIONS_DEFAULT_VALUE + = QVariant::fromValue(OperationsTypes{FuzzingOperationType::CREATE}); +OperationsPool createOperationsPool(const OperationsTypes &types) +{ + OperationsPool result{}; + + std::transform(types.cbegin(), types.cend(), std::inserter(result, result.end()), + [](const auto &type) { return FuzzingOperationFactory::create(type); }); + + return result; +} + /** * Class to run random tests */ @@ -72,6 +84,14 @@ private: return result; } + OperationsPool operationsPool() const + { + static auto result = createOperationsPool( + m_Properties.value(AVAILABLE_OPERATIONS_PROPERTY, AVAILABLE_OPERATIONS_DEFAULT_VALUE) + .value()); + return result; + } + VariableController &m_VariableController; Properties m_Properties; VariablesPool m_VariablesPool;