Skip to content

Commit 271d5a3

Browse files
author
Sonny Martin
committed
Add boolean constructor to options structure
1 parent 2d866c2 commit 271d5a3

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

src/goto-programs/validate_goto_model.h

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,14 @@ struct goto_model_validation_optionst
3131
{
3232
}
3333

34-
void disable_all_checks()
34+
goto_model_validation_optionst(bool options_value)
35+
: entry_point_exists{options_value},
36+
function_pointer_calls_removed{options_value},
37+
check_returns_removed{options_value},
38+
check_called_functions{options_value},
39+
check_last_instruction{options_value},
40+
check_sourcecode_location{options_value}
3541
{
36-
entry_point_exists = false;
37-
function_pointer_calls_removed = false;
38-
check_returns_removed = false;
39-
check_called_functions = false;
40-
check_last_instruction = false;
41-
check_sourcecode_location = false;
42-
}
43-
44-
void enable_all_checks()
45-
{
46-
entry_point_exists = true;
47-
function_pointer_calls_removed = true;
48-
check_returns_removed = true;
49-
check_called_functions = true;
50-
check_last_instruction = true;
51-
check_sourcecode_location = true;
5242
}
5343
};
5444

unit/goto-programs/goto_program_validate.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ SCENARIO("validate goto program")
115115

116116
THEN("fail!")
117117
{
118+
goto_model_validation_optionst validation_options{false};
118119
validation_options.entry_point_exists = true;
119120
REQUIRE_THROWS_AS(
120121
validate_goto_model(
@@ -130,6 +131,7 @@ SCENARIO("validate goto program")
130131
goto_convert(goto_model, null_message_handler);
131132
THEN("pass!")
132133
{
134+
goto_model_validation_optionst validation_options{false};
133135
validation_options.entry_point_exists = true;
134136
REQUIRE_NOTHROW(validate_goto_model(
135137
goto_model.goto_functions,
@@ -161,6 +163,7 @@ SCENARIO("validate goto program")
161163

162164
goto_convert(goto_model, null_message_handler);
163165

166+
goto_model_validation_optionst validation_options{false};
164167
validation_options.function_pointer_calls_removed = true;
165168
REQUIRE_THROWS_AS(
166169
validate_goto_model(
@@ -177,6 +180,7 @@ SCENARIO("validate goto program")
177180
{
178181
goto_convert(goto_model, null_message_handler);
179182

183+
goto_model_validation_optionst validation_options{false};
180184
validation_options.function_pointer_calls_removed = true;
181185
REQUIRE_NOTHROW(validate_goto_model(
182186
goto_model.goto_functions,
@@ -198,6 +202,7 @@ SCENARIO("validate goto program")
198202
auto it = function_map.find("f");
199203
it->second.type.return_type() = signedbv_typet{32};
200204

205+
goto_model_validation_optionst validation_options{false};
201206
validation_options.check_returns_removed = true;
202207
REQUIRE_THROWS_AS(
203208
validate_goto_model(
@@ -225,6 +230,7 @@ SCENARIO("validate goto program")
225230
auto &instructions = it->second.body.instructions;
226231
instructions.insert(instructions.begin(), instruction);
227232

233+
goto_model_validation_optionst validation_options{false};
228234
validation_options.check_returns_removed = true;
229235
REQUIRE_THROWS_AS(
230236
validate_goto_model(
@@ -263,6 +269,7 @@ SCENARIO("validate goto program")
263269
{
264270
goto_convert(goto_model, null_message_handler);
265271

272+
goto_model_validation_optionst validation_options{false};
266273
validation_options.check_returns_removed = true;
267274
REQUIRE_THROWS_AS(
268275
validate_goto_model(
@@ -279,6 +286,7 @@ SCENARIO("validate goto program")
279286
{
280287
goto_convert(goto_model, null_message_handler);
281288

289+
goto_model_validation_optionst validation_options{false};
282290
validation_options.check_returns_removed = true;
283291
REQUIRE_NOTHROW(validate_goto_model(
284292
goto_model.goto_functions,
@@ -299,6 +307,7 @@ SCENARIO("validate goto program")
299307
auto it = function_map.find("g");
300308
function_map.erase(it);
301309

310+
goto_model_validation_optionst validation_options{false};
302311
validation_options.check_called_functions = true;
303312
REQUIRE_THROWS_AS(
304313
validate_goto_model(
@@ -319,6 +328,7 @@ SCENARIO("validate goto program")
319328
auto it = function_map.find("f");
320329
function_map.erase(it); // f is no longer in function map
321330

331+
goto_model_validation_optionst validation_options{false};
322332
validation_options.check_called_functions = true;
323333
REQUIRE_THROWS_AS(
324334
validate_goto_model(
@@ -337,6 +347,7 @@ SCENARIO("validate goto program")
337347
{
338348
goto_convert(goto_model, null_message_handler);
339349

350+
goto_model_validation_optionst validation_options{false};
340351
validation_options.check_called_functions = true;
341352
REQUIRE_NOTHROW(validate_goto_model(
342353
goto_model.goto_functions,
@@ -356,6 +367,7 @@ SCENARIO("validate goto program")
356367
it->second.body.instructions.erase(
357368
std::prev(it->second.body.instructions.end()));
358369

370+
goto_model_validation_optionst validation_options{false};
359371
validation_options.check_last_instruction = true;
360372
REQUIRE_THROWS_AS(
361373
validate_goto_model(
@@ -372,6 +384,7 @@ SCENARIO("validate goto program")
372384
{
373385
goto_convert(goto_model, null_message_handler);
374386

387+
goto_model_validation_optionst validation_options{false};
375388
validation_options.check_last_instruction = true;
376389
REQUIRE_NOTHROW(validate_goto_model(
377390
goto_model.goto_functions,
@@ -392,6 +405,7 @@ SCENARIO("validate goto program")
392405
it->second.body.instructions.front().code.source_location();
393406
source_location.make_nil();
394407

408+
goto_model_validation_optionst validation_options{false};
395409
validation_options.check_sourcecode_location = true;
396410
REQUIRE_THROWS_AS(
397411
validate_goto_model(
@@ -414,6 +428,7 @@ SCENARIO("validate goto program")
414428
it->second.body.instructions.front().source_location;
415429
source_location.make_nil();
416430

431+
goto_model_validation_optionst validation_options{false};
417432
validation_options.check_sourcecode_location = true;
418433
REQUIRE_THROWS_AS(
419434
validate_goto_model(

0 commit comments

Comments
 (0)