File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,28 @@ gobopt='--set exp.privatization write+lock' ./scripts/update_suite.rb
2727* Add parameters to a regression test in the first line: ` // PARAM: --set dbg.debug true `
2828* Annotate lines inside the regression test with comments: ` arr[9] = 10; // WARN `
2929
30+ ## Incremental tests
31+ The incremental tests are regression tests that are first run with the option ` incremental.save ` and then again
32+ incrementally (activating the option ` incremental.load ` ) with some changes to the program or refinements in the
33+ configuration. The respective ` asserts ` and expected results are checked in both runs.
34+
35+ ### Running
36+ The incremental tests can be run with ` ./scripts/update_suite.rb -i ` .
37+
38+ ### Writing
39+ An incremental test case consists of three files with the same file name: the ` .c ` file with the initial program, a
40+ ` .json ` file for the initial configuration and a ` .patch ` file with the changes for the incremental run. Asserts and
41+ expected results are encoded in the program as for other regression tests.
42+
43+ The patch file can contain changes to multiple files. This allows for modifications of code, asserts or expected results
44+ in the program file as well as refinements in the configuration for the incremental run. A suitable patch can be created
45+ with:
46+ ```
47+ git diff --no-prefix relative/path/to/test.c relative/path/to/test.json > relative/path/to/test.patch
48+ ```
49+
50+ The comparison input and the metadata in the patch headers are not necessary and can be removed.
51+
3052## Domain tests
3153Property-based testing (a la QuickCheck) is used to test some domains (` Lattice.S ` implementations) for their lattice properties.
3254On integer domains the integer operations are also tested for being a valid abstraction of sets of integers.
You can’t perform that action at this time.
0 commit comments