cprover
object_factory_parameters.cpp
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Object Factory
4 
5 Author: Diffblue Ltd
6 
7 \*******************************************************************/
8 
10 #include "string2int.h"
11 
12 #include <util/cmdline.h>
13 #include <util/options.h>
14 
16 {
17  if(options.is_set("max-nondet-array-length"))
18  {
20  options.get_unsigned_int_option("max-nondet-array-length");
21  }
22  if(options.is_set("max-nondet-tree-depth"))
23  {
25  options.get_unsigned_int_option("max-nondet-tree-depth");
26  }
27  if(options.is_set("min-null-tree-depth"))
28  {
30  options.get_unsigned_int_option("min-null-tree-depth");
31  }
32  if(options.is_set("max-nondet-string-length"))
33  {
35  options.get_unsigned_int_option("max-nondet-string-length");
36  }
37  if(options.is_set("string-printable"))
38  {
39  string_printable = options.get_bool_option("string-printable");
40  }
41  if(options.is_set("string-input-value"))
42  {
43  string_input_values = options.get_list_option("string-input-value");
44  }
45  if(options.is_set("min-nondet-string-length"))
46  {
48  options.get_unsigned_int_option("min-nondet-string-length");
49  }
50 }
51 
55 void parse_object_factory_options(const cmdlinet &cmdline, optionst &options)
56 {
57  if(cmdline.isset("max-nondet-array-length"))
58  {
59  options.set_option(
60  "max-nondet-array-length", cmdline.get_value("max-nondet-array-length"));
61  }
62  if(cmdline.isset("max-nondet-tree-depth"))
63  {
64  options.set_option(
65  "max-nondet-tree-depth", cmdline.get_value("max-nondet-tree-depth"));
66  }
67  if(cmdline.isset("min-null-tree-depth"))
68  {
69  options.set_option(
70  "min-null-tree-depth", cmdline.get_value("min-null-tree-depth"));
71  }
72  if(cmdline.isset("max-nondet-string-length"))
73  {
74  options.set_option(
75  "max-nondet-string-length",
76  cmdline.get_value("max-nondet-string-length"));
77  }
78  if(cmdline.isset("string-printable"))
79  {
80  options.set_option("string-printable", true);
81  }
82  if(cmdline.isset("string-non-empty"))
83  {
84  options.set_option("min-nondet-string-length", 1);
85  }
86  if(cmdline.isset("string-input-value"))
87  {
88  options.set_option(
89  "string-input-value", cmdline.get_values("string-input-value"));
90  }
91 }
parse_object_factory_options
void parse_object_factory_options(const cmdlinet &cmdline, optionst &options)
Parse the object factory parameters from a given command line.
Definition: object_factory_parameters.cpp:55
cmdlinet::isset
virtual bool isset(char option) const
Definition: cmdline.cpp:29
optionst
Definition: options.h:23
object_factory_parameterst::string_input_values
std::list< std::string > string_input_values
Force one of finitely many explicitly given input strings.
Definition: object_factory_parameters.h:79
options.h
Options.
optionst::set_option
void set_option(const std::string &option, const bool value)
Definition: options.cpp:28
object_factory_parameterst::max_nondet_tree_depth
size_t max_nondet_tree_depth
Maximum depth of pointer chains (that contain recursion) in the nondet generated input objects.
Definition: object_factory_parameters.h:61
string2int.h
object_factory_parameterst::string_printable
bool string_printable
Force string content to be ASCII printable characters when set to true.
Definition: object_factory_parameters.h:76
cmdlinet
Definition: cmdline.h:21
optionst::is_set
bool is_set(const std::string &option) const
N.B. opts.is_set("foo") does not imply opts.get_bool_option("foo")
Definition: options.cpp:62
cmdlinet::get_value
std::string get_value(char option) const
Definition: cmdline.cpp:47
object_factory_parameters.h
optionst::get_unsigned_int_option
unsigned int get_unsigned_int_option(const std::string &option) const
Definition: options.cpp:56
object_factory_parameterst::max_nondet_array_length
size_t max_nondet_array_length
Maximum value for the non-deterministically-chosen length of an array.
Definition: object_factory_parameters.h:37
object_factory_parameterst::min_null_tree_depth
size_t min_null_tree_depth
To force a certain depth of non-null objects.
Definition: object_factory_parameters.h:73
object_factory_parameterst::set
void set(const optionst &)
Assigns the parameters from given options.
Definition: object_factory_parameters.cpp:15
object_factory_parameterst::max_nondet_string_length
size_t max_nondet_string_length
Maximum value for the non-deterministically-chosen length of a string.
Definition: object_factory_parameters.h:44
object_factory_parameterst::min_nondet_string_length
size_t min_nondet_string_length
Minimum value for the non-deterministically-chosen length of a string.
Definition: object_factory_parameters.h:47
cmdline.h
optionst::get_bool_option
bool get_bool_option(const std::string &option) const
Definition: options.cpp:44
cmdlinet::get_values
const std::list< std::string > & get_values(const std::string &option) const
Definition: cmdline.cpp:108
optionst::get_list_option
const value_listt & get_list_option(const std::string &option) const
Definition: options.cpp:80