##// END OF EJS Templates
Creates validator interface
Alexandre Leroux -
r1193:1e58f6535bdb
parent child
Show More
@@ -0,0 +1,26
1 #include "FuzzingValidators.h"
2
3 #include <functional>
4
5 Q_LOGGING_CATEGORY(LOG_FuzzingValidators, "FuzzingValidators")
6
7 namespace {
8
9 /**
10 * Default implementation of @sa IFuzzingValidator. This validator takes as parameter of its
11 * construction a function of validation which is called in the validate() method
12 */
13 class FuzzingValidator : public IFuzzingValidator {
14 public:
15 /// Signature of a validation function
16 using ValidationFunction = std::function<void(const VariableState &variableState)>;
17
18 explicit FuzzingValidator(ValidationFunction fun) : m_Fun(std::move(fun)) {}
19
20 void validate(const VariableState &variableState) const override { m_Fun(variableState); }
21
22 private:
23 ValidationFunction m_Fun;
24 };
25
26 } // namespace
@@ -0,0 +1,21
1 #ifndef SCIQLOP_FUZZINGVALIDATORS_H
2 #define SCIQLOP_FUZZINGVALIDATORS_H
3
4 #include <QLoggingCategory>
5
6 Q_DECLARE_LOGGING_CATEGORY(LOG_FuzzingValidators)
7
8 class VariableState;
9
10 /**
11 * Struct that represents a validator. A validator checks if the state of a variable is valid at the
12 * moment it is called during a fuzzing test
13 */
14 struct IFuzzingValidator {
15 virtual ~IFuzzingValidator() noexcept = default;
16
17 /// Validates the variable's state passed in parameter
18 virtual void validate(const VariableState &variableState) const = 0;
19 };
20
21 #endif // SCIQLOP_FUZZINGVALIDATORS_H
@@ -72,7 +72,9 tests_sources = [
72 'tests/FuzzingOperations.h',
72 'tests/FuzzingOperations.h',
73 'tests/FuzzingOperations.cpp',
73 'tests/FuzzingOperations.cpp',
74 'tests/FuzzingUtils.h',
74 'tests/FuzzingUtils.h',
75 'tests/FuzzingUtils.cpp'
75 'tests/FuzzingUtils.cpp',
76 'tests/FuzzingValidators.h',
77 'tests/FuzzingValidators.cpp'
76 ]
78 ]
77
79
78 foreach unit_test : tests
80 foreach unit_test : tests
General Comments 0
You need to be logged in to leave comments. Login now