Solver Options
Murxla supports option fuzzing, that is, randomly configuring solver
options based on the options model of the solver.
This options model is advertised to Murxla via configuring a
murxla::SolverOption
for each option and adding it to the
solver manager via murxla::Solver::configure_options()
(for more details, see
how to configure solver options).
Murxla supports Boolean options (murxla::SolverOptionBool
),
numeric options (murxla::SolverOptionNum
) and
options with multiple string values (murxla::SolverOptionList
).
-
class SolverOption
Base class representing a solver option.
Subclassed by murxla::SolverOptionBool, murxla::SolverOptionList, murxla::SolverOptionNum< T >
Public Functions
-
virtual std::string pick_value(RNGenerator &rng) const = 0
Pick a random option value.
-
const std::string &get_name() const
Get the name of the option.
Private Members
-
std::string d_name
The name of the option.
-
virtual std::string pick_value(RNGenerator &rng) const = 0
-
class SolverOptionBool : public murxla::SolverOption
Public Functions
-
SolverOptionBool(const std::string &name, bool default_value)
Constructor for Boolean options.
-
virtual std::string pick_value(RNGenerator &rng) const override
Pick random Boolean value.
Private Members
-
bool d_default
The default Boolean value of the option.
-
SolverOptionBool(const std::string &name, bool default_value)
-
template<typename T>
class SolverOptionNum : public murxla::SolverOption
-
class SolverOptionList : public murxla::SolverOption