ratis
ratis copied to clipboard
RATIS-1658. Prepare unit check for running some tests repeatedly
What changes were proposed in this pull request?
Allow running multiple iterations of tests in unit.sh simply by setting ITERATIONS environment variable.
Results (summary, output of failed tests) for all iterations are saved in separate subdirectories.
https://issues.apache.org/jira/browse/RATIS-1658
How was this patch tested?
Locally:
$ ITERATIONS=3 ./dev-support/checks/unit.sh -Dtest=TestLogAppenderWithGrpc
...
$ find target/unit -type f | sort
target/unit/iteration1/failures
target/unit/iteration1/output.log
target/unit/iteration1/summary.txt
target/unit/iteration2/failures
target/unit/iteration2/output.log
target/unit/iteration2/summary.txt
target/unit/iteration3/failures
target/unit/iteration3/output.log
target/unit/iteration3/summary.txt
target/unit/summary.txt
$ cat target/unit/summary.txt
Iteration 1 exit code: 0
Iteration 2 exit code: 0
Iteration 3 exit code: 0
Sample usage in CI: https://github.com/adoroszlai/incubator-ratis/blob/87eafcd2e19a49c1b251207955f19d5c9f3d0296/.github/workflows/post-commit.yml#L45-L47
Repeated run in CI: https://github.com/adoroszlai/incubator-ratis/runs/7666927698?check_suite_focus=true#step:6:5
Regular CI: https://github.com/adoroszlai/incubator-ratis/actions/runs/2794766233