Change settings.modelChecker.targets to take an array instead of string

This commit is contained in:
Leonardo Alt
2021-04-19 17:53:03 +02:00
parent 6ef7e39e46
commit e3abde43f5
41 changed files with 180 additions and 62 deletions
+8 -6
View File
@@ -448,10 +448,13 @@ the JSON option ``settings.modelChecker.timeout=<time>``, where 0 means no timeo
Verification Targets
====================
The types of verification targets created by the SMTChecker can also be customized via
the CLI option ``--model-checker-target <targets>`` or the JSON option
``settings.modelChecker.targets=<targets>``, where ``<targets>`` is a no-space-comma-separated
list of one or more verification targets. The keywords that represent the targets are:
The types of verification targets created by the SMTChecker can also be
customized via the CLI option ``--model-checker-target <targets>`` or the JSON
option ``settings.modelChecker.targets=<targets>``.
In the CLI case, ``<targets>`` is a no-space-comma-separated list of one or
more verification targets, and an array of one or more targets as strings in
the JSON input.
The keywords that represent the targets are:
- Assertions: ``assert``.
- Arithmetic underflow: ``underflow``.
@@ -461,8 +464,7 @@ list of one or more verification targets. The keywords that represent the target
- Popping an empty array: ``popEmptyArray``.
- Out of bounds array/fixed bytes index access: ``outOfBounds``.
- Insufficient funds for a transfer: ``balance``.
- All of the above: ``all``.
- None of the above: ``none``.
- All of the above: ``default`` (CLI only).
A common subset of targets might be, for example:
``--model-checker-targets assert,overflow``.
+4 -4
View File
@@ -374,16 +374,16 @@ Input Description
"MyContract": [ "abi", "evm.bytecode.opcodes" ]
}
},
// The modelChecker object is experimental and subject to changes.
"modelChecker":
{
// Choose which model checker engine to use: all (default), bmc, chc, none.
"engine": "chc",
// Choose which targets should be checked: all (default), constantCondition,
// Choose which targets should be checked: constantCondition,
// underflow, overflow, divByZero, balance, assert, popEmptyArray, outOfBounds.
// If the option is not given all targets are checked by default.
// See the Formal Verification section for the targets description.
// Multiple targets can be selected at the same time, separated by a comma
// without spaces:
"targets": "underflow,overflow,assert",
"targets": ["underflow", "overflow", "assert"],
// Timeout for each SMT query in milliseconds.
// If this option is not given, the SMTChecker will use a deterministic
// resource limit by default.