New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optionally split regression tests into test groups #207
Conversation
To prevent timing out on Travis, this commit adds the option to split the regression tests into groups and run each group in a separate job. The group of a test is determined by computing a checksum of its name.
test/regress/run_regression
Outdated
@@ -49,6 +49,16 @@ cvc4=$1 | |||
benchmark_orig=$2 | |||
benchmark="$benchmark_orig" | |||
|
|||
if [ ! -z "$TEST_GROUP" ]; then |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if we should go with this suggestion or to use the existing explicit mechanism of breaking up the regressions into groups. regress0, regress1, etc. This keeps the labeling obvious at the expense of needing to maintain it. This suggested system of sharding gives up a lot of control in exchange for easily breaking into N random shards in the future. It is not obvious to me which is better.
I definitely hear your concerns about giving up control. Also, the proposed solution is not a very elegant one. To an extent, however, the regressX folders and |
@mpreiner counted the test cases in each regressX directory:
(just copying it here because it might be relevant to the discussion) |
So nothing really stops us from going back and cleaning these up and having cleaner regress groups with regress0 being tied to make check. We can also additionally have optional sharding. This is largely about preferences and making a benefits vs. time call. I suggest we talk about this at next week's meeting as it is a good candidate for folks expressing preferences. |
Uncomment ulimit line in this to detect long tests: https://github.com/CVC4/CVC4/blob/master/test/regress/run_regression I think the requirement was 1 sec in debug mode (on Dejan's machine? ) for it to be in regress0, but with increasing number of tests maybe that is not sufficient :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After the meeting, I'm convinced this is a reasonable way forward.
Let's update the docs for test/regress/run_regression to describe the effects of the flags.
test/regress/run_regression
Outdated
@@ -49,6 +49,16 @@ cvc4=$1 | |||
benchmark_orig=$2 | |||
benchmark="$benchmark_orig" | |||
|
|||
if [ ! -z "$TEST_GROUP" ]; then |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
To prevent timing out on Travis, this commit adds the option to split
the regression tests into groups and run each group in a separate job.
The group of a test is determined by computing a checksum of its name.