Skip to content

Commit

Permalink
Add instruction to regenerate the result.csv
Browse files Browse the repository at this point in the history
Signed-off-by: Tyler Gu <[email protected]>
  • Loading branch information
tylergu committed Feb 29, 2024
1 parent ca5af5b commit c14c700
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions demo/lab1.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,25 @@ We do not expect you to debug Acto if it crashes. Please raise a question on Pia

## 3. Inspecting Acto’s Test Results

### Regenerating the result.csv

Previously there was a required manual step to specify the regular expressions for the non-deterministic property paths. If not done correctly, Acto’s differential oracle would produce many false alarms.

Fortunately, Acto is splitted into multple phases, and they can be rerun independently. To rerun the differential oracle for the post processing steps, you just need to run the following command to remove the previous results and regenerate the new results:

```bash
git pull
rm -f testrun-{}/post_diff_test/compare-results-*
python3 -m acto.post_process.post_diff_test --config OPERATOR_CONFIG --num-workers 32 --testrun-dir TESTRUN_DIR --workdir {TESTRUN_DIR}/post_diff_test/ --checkonly
```

This command would take 5 mins to 30 mins to run.

Afterwards, you can run the result collection script to generate the result.csv again.

### Interpreting the Result

Acto will first generate a test plan using the operator's CRD and the semantic information. The test plan is serialized at `testrun-cass/testplan.json` (You don't need to manually inspect the `testplan.json`, it is just to give an overview of the tests going to be run). Note that Acto does not run the tests according to the order in the `testplan.json`, the tests are run in a random order at runtime.

Acto then constructs the number of Kubernetes clusters according to the `--num-workers` argument, and start to run tests. Tests are run in parallel in separate Kubernetes clusters. Under the `testrun-cass` directory, Acto creates directories `trial-XX-YYYY`. `XX` corresponds to the worker ID, i.e. `XX` ranges from `0` to `3` if there are 4 workers. `YYYY` starts from `0000`, and Acto increments `YYYY` every time it has to restart the cluster. This means every step inside the same `trial-xx-yyyy` directory runs in the same instance of Kubernetes cluster.
Expand Down

0 comments on commit c14c700

Please sign in to comment.