##// END OF EJS Templates
Creates validators for range and data
Creates validators for range and data

File last commit:

r1227:60a45a0d7167
r1227:60a45a0d7167
Show More
FuzzingValidators.h
33 lines | 974 B | text/x-c | CLexer
/ plugins / amda / tests / FuzzingValidators.h
Alexandre Leroux
Creates validator interface
r1226 #ifndef SCIQLOP_FUZZINGVALIDATORS_H
#define SCIQLOP_FUZZINGVALIDATORS_H
#include <QLoggingCategory>
Q_DECLARE_LOGGING_CATEGORY(LOG_FuzzingValidators)
class VariableState;
Alexandre Leroux
Creates validators for range and data
r1227 /// Types of validators that can be defined
enum class FuzzingValidatorType {
DATA, ///< Validates variable's data
RANGE ///< Validates variable's range
};
Alexandre Leroux
Creates validator interface
r1226 /**
* Struct that represents a validator. A validator checks if the state of a variable is valid at the
* moment it is called during a fuzzing test
*/
struct IFuzzingValidator {
virtual ~IFuzzingValidator() noexcept = default;
/// Validates the variable's state passed in parameter
virtual void validate(const VariableState &variableState) const = 0;
};
Alexandre Leroux
Creates validators for range and data
r1227 /// Factory of @sa IFuzzingValidator
struct FuzzingValidatorFactory {
/// Creates a validator according to the type passed in parameter
static std::unique_ptr<IFuzzingValidator> create(FuzzingValidatorType type);
};
Alexandre Leroux
Creates validator interface
r1226 #endif // SCIQLOP_FUZZINGVALIDATORS_H