Skip to content

Commit ca11166

Browse files
author
Sonny Martin
committed
Add options structure to unit tests
1 parent 6cc09c9 commit ca11166

8 files changed

+51
-20
lines changed

unit/goto-programs/goto_model_function_type_consistency.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Diffblue Ltd.
1111
#include <util/arith_tools.h>
1212

1313
#include <goto-programs/goto_model.h>
14+
#include <goto-programs/validate_goto_model.h>
1415

1516
SCENARIO(
1617
"Validation of consistent program/table pair (function type)",
@@ -34,14 +35,16 @@ SCENARIO(
3435
goto_model.goto_functions.function_map[function_symbol.name].type =
3536
fun_type1;
3637

38+
goto_model_validation_optionst validation_options{false};
39+
3740
WHEN("Symbol table has the right type")
3841
{
3942
function_symbol.type = fun_type1;
4043
goto_model.symbol_table.insert(function_symbol);
4144

4245
THEN("The consistency check succeeds")
4346
{
44-
goto_model.validate(validation_modet::INVARIANT);
47+
goto_model.validate(validation_modet::INVARIANT, validation_options);
4548

4649
REQUIRE(true);
4750
}
@@ -55,7 +58,7 @@ SCENARIO(
5558
THEN("The consistency check fails")
5659
{
5760
REQUIRE_THROWS_AS(
58-
goto_model.validate(validation_modet::EXCEPTION),
61+
goto_model.validate(validation_modet::EXCEPTION, validation_options),
5962
incorrect_goto_program_exceptiont);
6063
}
6164
}

unit/goto-programs/goto_program_assume.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Diffblue Ltd.
1111
#include <util/arith_tools.h>
1212

1313
#include <goto-programs/goto_function.h>
14+
#include <goto-programs/validate_goto_model.h>
1415

1516
SCENARIO(
1617
"Validation of well-formed assert/assume codes",
@@ -40,11 +41,14 @@ SCENARIO(
4041
namespacet ns(symbol_table);
4142
instructions.back() = goto_programt::make_assertion(x_le_10);
4243

44+
goto_model_validation_optionst validation_options;
45+
4346
WHEN("Instruction has no targets")
4447
{
4548
THEN("The consistency check succeeds")
4649
{
47-
goto_function.body.validate(ns, validation_modet::INVARIANT);
50+
goto_function.body.validate(
51+
ns, validation_modet::INVARIANT, validation_options);
4852
REQUIRE(true);
4953
}
5054
}
@@ -55,7 +59,7 @@ SCENARIO(
5559
THEN("The consistency check fails")
5660
{
5761
REQUIRE_THROWS_AS(
58-
goto_function.body.validate(ns, validation_modet::EXCEPTION),
62+
goto_function.body.validate(ns, validation_modet::EXCEPTION, validation_options),
5963
incorrect_goto_program_exceptiont);
6064
}
6165
}

unit/goto-programs/goto_program_dead.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Diffblue Ltd.
1111
#include <util/arith_tools.h>
1212

1313
#include <goto-programs/goto_function.h>
14+
#include <goto-programs/validate_goto_model.h>
1415

1516
SCENARIO(
1617
"Validation of well-formed symbol removing codes",
@@ -36,14 +37,17 @@ SCENARIO(
3637
instructions.emplace_back(goto_programt::make_dead(var_a));
3738
symbol_table.insert(fun_symbol);
3839

40+
goto_model_validation_optionst validation_options;
41+
3942
WHEN("Removing known symbol")
4043
{
4144
symbol_table.insert(var_symbol);
4245
const namespacet ns(symbol_table);
4346

4447
THEN("The consistency check succeeds")
4548
{
46-
goto_function.body.validate(ns, validation_modet::INVARIANT);
49+
goto_function.body.validate(
50+
ns, validation_modet::INVARIANT, validation_options);
4751
REQUIRE(true);
4852
}
4953
}
@@ -55,7 +59,7 @@ SCENARIO(
5559
THEN("The consistency check fails")
5660
{
5761
REQUIRE_THROWS_AS(
58-
goto_function.body.validate(ns, validation_modet::EXCEPTION),
62+
goto_function.body.validate(ns, validation_modet::EXCEPTION, validation_options),
5963
incorrect_goto_program_exceptiont);
6064
}
6165
}

unit/goto-programs/goto_program_declaration.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Author: Diffblue Ltd.
99
#include <testing-utils/use_catch.h>
1010

1111
#include <goto-programs/goto_function.h>
12+
#include <goto-programs/validate_goto_model.h>
1213

1314
#include <util/arith_tools.h>
1415

@@ -36,14 +37,17 @@ SCENARIO(
3637
instructions.emplace_back(goto_programt::make_decl(var_a));
3738
symbol_table.insert(fun_symbol);
3839

40+
goto_model_validation_optionst validation_options;
41+
3942
WHEN("Declaring known symbol")
4043
{
4144
symbol_table.insert(var_symbol);
4245
const namespacet ns(symbol_table);
4346

4447
THEN("The consistency check succeeds")
4548
{
46-
goto_function.body.validate(ns, validation_modet::INVARIANT);
49+
goto_function.body.validate(
50+
ns, validation_modet::INVARIANT, validation_options);
4751
REQUIRE(true);
4852
}
4953
}
@@ -55,7 +59,7 @@ SCENARIO(
5559
THEN("The consistency check fails")
5660
{
5761
REQUIRE_THROWS_AS(
58-
goto_function.body.validate(ns, validation_modet::EXCEPTION),
62+
goto_function.body.validate(ns, validation_modet::EXCEPTION, validation_options),
5963
incorrect_goto_program_exceptiont);
6064
}
6165
}

unit/goto-programs/goto_program_function_call.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Diffblue Ltd.
1111
#include <util/arith_tools.h>
1212

1313
#include <goto-programs/goto_function.h>
14+
#include <goto-programs/validate_goto_model.h>
1415

1516
SCENARIO(
1617
"Validation of well-formed function call codes",
@@ -50,6 +51,8 @@ SCENARIO(
5051
symbol_table.insert(fun_symbol);
5152
namespacet ns(symbol_table);
5253

54+
goto_model_validation_optionst validation_options;
55+
5356
WHEN("Return type matches")
5457
{
5558
code_function_callt function_call(var_a, fun_foo, {});
@@ -58,7 +61,8 @@ SCENARIO(
5861

5962
THEN("The consistency check succeeds")
6063
{
61-
goto_function.body.validate(ns, validation_modet::INVARIANT);
64+
goto_function.body.validate(
65+
ns, validation_modet::INVARIANT, validation_options);
6266
REQUIRE(true);
6367
}
6468
}
@@ -71,7 +75,7 @@ SCENARIO(
7175
THEN("The consistency check fails")
7276
{
7377
REQUIRE_THROWS_AS(
74-
goto_function.body.validate(ns, validation_modet::EXCEPTION),
78+
goto_function.body.validate(ns, validation_modet::EXCEPTION, validation_options),
7579
incorrect_goto_program_exceptiont);
7680
}
7781
}

unit/goto-programs/goto_program_goto_target.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ Author: Diffblue Ltd.
88

99
#include <testing-utils/use_catch.h>
1010

11-
#include <util/arith_tools.h>
12-
1311
#include <goto-programs/goto_function.h>
12+
#include <goto-programs/validate_goto_model.h>
13+
14+
#include <util/arith_tools.h>
1415

1516
SCENARIO(
1617
"Validation of well-formed goto codes",
@@ -43,12 +44,15 @@ SCENARIO(
4344
symbol_table.insert(fun_symbol);
4445
namespacet ns(symbol_table);
4546

47+
goto_model_validation_optionst validation_options;
48+
4649
WHEN("Target is a target")
4750
{
4851
instructions.front().target_number = 1;
4952
THEN("The consistency check succeeds")
5053
{
51-
goto_function.body.validate(ns, validation_modet::INVARIANT);
54+
goto_function.body.validate(
55+
ns, validation_modet::INVARIANT, validation_options);
5256
REQUIRE(true);
5357
}
5458
}
@@ -58,7 +62,7 @@ SCENARIO(
5862
THEN("The consistency check fails")
5963
{
6064
REQUIRE_THROWS_AS(
61-
goto_function.body.validate(ns, validation_modet::EXCEPTION),
65+
goto_function.body.validate(ns, validation_modet::EXCEPTION, validation_options),
6266
incorrect_goto_program_exceptiont);
6367
}
6468
}

unit/goto-programs/goto_program_symbol_type_table_consistency.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ Author: Diffblue Ltd.
1010

1111
#include <util/arith_tools.h>
1212

13-
#include <goto-programs/goto_function.h>
14-
13+
#include <goto-programs/goto_function.h>
14+
#include <goto-programs/validate_goto_model.h>
15+
1516
SCENARIO(
1617
"Validation of consistent program/table pair (type-wise)",
1718
"[core][goto-programs][validate]")
@@ -36,6 +37,8 @@ SCENARIO(
3637
auto &instructions = goto_function.body.instructions;
3738
instructions.emplace_back(goto_programt::make_assertion(x_le_10));
3839

40+
goto_model_validation_optionst validation_options;
41+
3942
symbol_table.insert(function_symbol);
4043
WHEN("Symbol table has the right symbol type")
4144
{
@@ -45,7 +48,8 @@ SCENARIO(
4548

4649
THEN("The consistency check succeeds")
4750
{
48-
goto_function.validate(ns, validation_modet::INVARIANT);
51+
goto_function.validate(
52+
ns, validation_modet::INVARIANT, validation_options);
4953

5054
REQUIRE(true);
5155
}
@@ -60,7 +64,7 @@ SCENARIO(
6064
THEN("The consistency check fails")
6165
{
6266
REQUIRE_THROWS_AS(
63-
goto_function.validate(ns, validation_modet::EXCEPTION),
67+
goto_function.validate(ns, validation_modet::EXCEPTION, validation_options),
6468
incorrect_goto_program_exceptiont);
6569
}
6670
}

unit/goto-programs/goto_program_table_consistency.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Diffblue Ltd.
1111
#include <util/arith_tools.h>
1212

1313
#include <goto-programs/goto_function.h>
14+
#include <goto-programs/validate_goto_model.h>
1415

1516
SCENARIO(
1617
"Validation of consistent program/table pair",
@@ -35,6 +36,8 @@ SCENARIO(
3536
auto &instructions = goto_function.body.instructions;
3637
instructions.emplace_back(goto_programt::make_assertion(x_le_10));
3738

39+
goto_model_validation_optionst validation_options;
40+
3841
symbol_table.insert(function_symbol);
3942
WHEN("Symbol table has the right symbol")
4043
{
@@ -43,7 +46,8 @@ SCENARIO(
4346
const namespacet ns(symbol_table);
4447
THEN("The consistency check succeeds")
4548
{
46-
goto_function.validate(ns, validation_modet::INVARIANT);
49+
goto_function.validate(
50+
ns, validation_modet::INVARIANT, validation_options);
4751
REQUIRE(true);
4852
}
4953
}
@@ -53,7 +57,7 @@ SCENARIO(
5357
THEN("The consistency check fails")
5458
{
5559
REQUIRE_THROWS_AS(
56-
goto_function.validate(ns, validation_modet::EXCEPTION),
60+
goto_function.validate(ns, validation_modet::EXCEPTION, validation_options),
5761
incorrect_goto_program_exceptiont);
5862
}
5963
}

0 commit comments

Comments
 (0)