8
8
9
9
#include < testing-utils/catch.hpp>
10
10
11
- #include < numeric>
12
11
#include < java_bytecode/java_bytecode_language.h>
13
12
#include < java_bytecode/java_types.h>
13
+ #include < numeric>
14
14
15
- #include < langapi/mode.h>
16
15
#include < langapi/language_util.h>
16
+ #include < langapi/mode.h>
17
17
18
- #include < solvers/strings/string_constraint_instantiation.h>
19
18
#include < solvers/sat/satcheck.h>
19
+ #include < solvers/strings/string_constraint_instantiation.h>
20
20
21
- #include < util/simplify_expr.h>
22
21
#include < util/config.h>
22
+ #include < util/simplify_expr.h>
23
23
24
24
// / \class Types used throughout the test. Currently it is impossible to
25
25
// / statically initialize this value, there is a PR to allow this
26
26
// / diffblue/cbmc/pull/1213
27
27
class tt
28
28
{
29
29
public:
30
- tt () {}
31
- typet char_type () const {return java_char_type ();}
32
- typet length_type () const {return java_int_type ();}
30
+ tt ()
31
+ {
32
+ }
33
+ typet char_type () const
34
+ {
35
+ return java_char_type ();
36
+ }
37
+ typet length_type () const
38
+ {
39
+ return java_int_type ();
40
+ }
33
41
array_typet array_type () const
34
42
{
35
43
return array_typet (char_type (), infinity_exprt (length_type ()));
@@ -60,7 +68,7 @@ constant_exprt from_integer(const mp_integer &i)
60
68
// / \return corresponding `string_exprt`
61
69
array_string_exprt make_string_exprt (const std::string &str)
62
70
{
63
- const constant_exprt length= from_integer (str.length (), t.length_type ());
71
+ const constant_exprt length = from_integer (str.length (), t.length_type ());
64
72
array_exprt content (array_typet (t.char_type (), length));
65
73
66
74
for (const char c : str)
@@ -92,7 +100,7 @@ std::set<exprt> full_index_set(const array_string_exprt &s)
92
100
{
93
101
const mp_integer n = numeric_cast_v<mp_integer>(s.length ());
94
102
std::set<exprt> ret;
95
- for (mp_integer i= 0 ; i< n; ++i)
103
+ for (mp_integer i = 0 ; i < n; ++i)
96
104
ret.insert (from_integer (i));
97
105
return ret;
98
106
}
@@ -115,7 +123,7 @@ std::set<std::pair<X, Y>> product(const std::set<X> xs, const std::set<Y> ys)
115
123
exprt combine_lemmas (const std::vector<exprt> &lemmas, const namespacet &ns)
116
124
{
117
125
// Conjunction of new lemmas
118
- exprt conj= conjunction (lemmas);
126
+ exprt conj = conjunction (lemmas);
119
127
// Simplify
120
128
simplify (conj, ns);
121
129
@@ -137,7 +145,7 @@ std::string create_info(std::vector<exprt> &lemmas, const namespacet &ns)
137
145
get_language_from_mode (ID_java)->from_expr (lemma, lemma_string, ns);
138
146
new_lemmas += lemma_string + " \n\n " ;
139
147
}
140
- return " Instantiated lemmas:\n " + new_lemmas;
148
+ return " Instantiated lemmas:\n " + new_lemmas;
141
149
}
142
150
143
151
// / Checks the satisfiability of the given expression.
@@ -148,16 +156,17 @@ decision_proceduret::resultt check_sat(const exprt &expr, const namespacet &ns)
148
156
{
149
157
satcheck_no_simplifiert sat_check;
150
158
bv_refinementt::infot info;
151
- info.ns = &ns;
152
- info.prop = &sat_check;
159
+ info.ns = &ns;
160
+ info.prop = &sat_check;
153
161
info.output_xml = false ;
154
162
bv_refinementt solver (info);
155
163
solver << expr;
156
164
return solver ();
157
165
}
158
166
159
167
// The [!mayfail] tag allows tests to fail while reporting the failure
160
- SCENARIO (" instantiate_not_contains" ,
168
+ SCENARIO (
169
+ " instantiate_not_contains" ,
161
170
" [!mayfail][core][solvers][refinement][string_constraint_instantiation]" )
162
171
{
163
172
// For printing expression
@@ -261,10 +270,10 @@ SCENARIO("instantiate_not_contains",
261
270
decision_proceduret::resultt result = check_sat (conj, empty_ns);
262
271
263
272
// Require SAT
264
- if (result== decision_proceduret::resultt::D_ERROR)
273
+ if (result == decision_proceduret::resultt::D_ERROR)
265
274
INFO (" Got an error" );
266
275
267
- REQUIRE (result== decision_proceduret::resultt::D_SATISFIABLE);
276
+ REQUIRE (result == decision_proceduret::resultt::D_SATISFIABLE);
268
277
}
269
278
}
270
279
}
@@ -311,10 +320,10 @@ SCENARIO("instantiate_not_contains",
311
320
decision_proceduret::resultt result = check_sat (conj, empty_ns);
312
321
313
322
// Require SAT
314
- if (result== decision_proceduret::resultt::D_ERROR)
323
+ if (result == decision_proceduret::resultt::D_ERROR)
315
324
INFO (" Got an error" );
316
325
317
- REQUIRE (result== decision_proceduret::resultt::D_SATISFIABLE);
326
+ REQUIRE (result == decision_proceduret::resultt::D_SATISFIABLE);
318
327
}
319
328
}
320
329
}
@@ -362,10 +371,10 @@ SCENARIO("instantiate_not_contains",
362
371
decision_proceduret::resultt result = check_sat (conj, empty_ns);
363
372
364
373
// Require UNSAT
365
- if (result== decision_proceduret::resultt::D_ERROR)
374
+ if (result == decision_proceduret::resultt::D_ERROR)
366
375
INFO (" Got an error" );
367
376
368
- REQUIRE (result== decision_proceduret::resultt::D_UNSATISFIABLE);
377
+ REQUIRE (result == decision_proceduret::resultt::D_UNSATISFIABLE);
369
378
}
370
379
}
371
380
}
@@ -414,10 +423,10 @@ SCENARIO("instantiate_not_contains",
414
423
decision_proceduret::resultt result = check_sat (conj, empty_ns);
415
424
416
425
// Require UNSAT
417
- if (result== decision_proceduret::resultt::D_ERROR)
426
+ if (result == decision_proceduret::resultt::D_ERROR)
418
427
INFO (" Got an error" );
419
428
420
- REQUIRE (result== decision_proceduret::resultt::D_UNSATISFIABLE);
429
+ REQUIRE (result == decision_proceduret::resultt::D_UNSATISFIABLE);
421
430
}
422
431
}
423
432
}
@@ -465,10 +474,10 @@ SCENARIO("instantiate_not_contains",
465
474
decision_proceduret::resultt result = check_sat (conj, empty_ns);
466
475
467
476
// Require UNSAT
468
- if (result== decision_proceduret::resultt::D_ERROR)
477
+ if (result == decision_proceduret::resultt::D_ERROR)
469
478
INFO (" Got an error" );
470
479
471
- REQUIRE (result== decision_proceduret::resultt::D_UNSATISFIABLE);
480
+ REQUIRE (result == decision_proceduret::resultt::D_UNSATISFIABLE);
472
481
}
473
482
}
474
483
}
@@ -517,10 +526,10 @@ SCENARIO("instantiate_not_contains",
517
526
decision_proceduret::resultt result = check_sat (conj, empty_ns);
518
527
519
528
// Require UNSAT
520
- if (result== decision_proceduret::resultt::D_ERROR)
529
+ if (result == decision_proceduret::resultt::D_ERROR)
521
530
INFO (" Got an error" );
522
531
523
- REQUIRE (result== decision_proceduret::resultt::D_SATISFIABLE);
532
+ REQUIRE (result == decision_proceduret::resultt::D_SATISFIABLE);
524
533
}
525
534
}
526
535
}
0 commit comments