Commit b7125bf
authored
Introduce Stability command (#3061)
### Changes
- Add the stability command and related options
```
Usage:
Dafny check-stability [<file>...] [options]
Arguments:
<file> input files
Options:
--iterations <n> Attempt to verify each proof n times with n random seeds. If random-seed
is used, each proof attempt will use a new random seed derived from this
one. If not, it will use a different seed between iterations. [default:
10]
--random-seed <seed> Turn on randomization of the input that Boogie passes to the SMT solver
and turn on randomization in the SMT solver itself. Certain Boogie
inputs are unstable in the sense that changes to the input that preserve
its meaning may cause the output to change. This option simulates
meaning-preserving changes to the input without requiring the user to
actually make those changes. The input changes are renaming variables
and reordering declarations in the input, and setting solver options
that have similar effects. [default: 0]
--format <configuration> Logs verification results using the given test result format. The
currently supported formats are `trx`, `csv`, and `text`. These are: the
XML-based format commonly used for test results for .NET languages, a
custom CSV schema, and a textual format meant for human consumption. You
can provide configuration using the same string format as when using the
--logger option for dotnet test, such as:
--format:trx;LogFileName=<...>.z
The `trx` and `csv` formats automatically choose an output file name by
default, and print the name of this file to the console. The `text`
format prints its output to the console by default, but can send output
to a file given the `LogFileName` option.
The `text` format also includes a more detailed breakdown of what
assertions appear in each assertion batch. When combined with
the isolate-assertions option, it will provide approximate time and
resource use costs for each assertion, allowing identification of
especially expensive assertions. []
--isolate-assertions Verify each assertion in isolation. [default: False]
```
### Testing
- Updated existing tests to use the new command and options. Note that
tests for --random-seed and --iterations were and are missing!
<!-- Is this a user-visible change? Remember to update RELEASE_NOTES.md
-->
<!-- Is this a bug fix? Remember to include a test in Test/git-issues/
-->
<!-- Is this a bug fix for an issue introduced in the latest release?
Mention this in the PR details and ensure a patch release is considered
-->
<!-- Does this PR need tests? Add them to `Test/` or to
`Source/*.Test/…` and run them with `dotnet test` -->
<!-- Are you moving a large amount of code? Read CONTRIBUTING.md to
learn how to do that while maintaining git history -->
<small>By submitting this pull request, I confirm that my contribution
is made under the terms of the [MIT
license](https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt).</small>1 parent 7e62528 commit b7125bf
File tree
6 files changed
+57
-5
lines changed- Source/DafnyDriver/Commands
- Test/logger
6 files changed
+57
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
| |||
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
0 commit comments