Run the e2e tests in parallel#1670
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: srinivashegde86 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/hold need to verify how much time prow takes to run e2e. |
|
/hold |
| ```bash | ||
| go test -v -tags=e2e -count=1 ./test/conformance | ||
| go test -v -tags=e2e -count=1 ./test/e2e | ||
| go test -v -tags=e2e -count=1 -parallel=4 ./test/e2e |
There was a problem hiding this comment.
Running tests in parallel should be optional. I suggest you mention it in the docs, but avoid repeating it every time.
| local options="" | ||
| (( EMIT_METRICS )) && options="-emitmetrics" | ||
| report_go_test -v -tags=e2e -count=1 ./test/$1 -dockerrepo gcr.io/knative-tests/test-images/$1 ${options} | ||
| if [ "$1" = "e2e" ]; then |
There was a problem hiding this comment.
I confess I'm not comfortable with this hardcoded approach, unless it proves to be way simpler and faster than properly and transparently making the tests able to run in parallel...
There was a problem hiding this comment.
report_go_test can determine whether it's running e2e or not based on input parameters, right?
In general, We can have an effective mode (say via a test flag). When it's in effective mode, test infra will be smart enough to run certain things in parallel. When it's not, everything is run sequentially. By default, we run effective mode.
There was a problem hiding this comment.
Yes. The first param is e2e or conformance, and we can check that, as I have done here.
Running things in parallel can cause race conditions and add flakiness in the tests. This is not significantly faster(few minutes faster) than running them sequentially atleast for now as the tests other than autoscaler take max 1 min.
There was a problem hiding this comment.
report_go_test is test-type agnostic. Anyway, this would just move the hack to a different place (that's even worse, because the function is meant to be repo-agnostic).
| } | ||
|
|
||
| if parallel { | ||
| t.Parallel() |
There was a problem hiding this comment.
Yeah, one shouldn't need to figure out what tests can and what tests cannot run in parallel.
|
/test pull-knative-serving-integration-tests |
|
/retest |
|
@srinivashegde86: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
There is currently an issue with running tests in parallel: #1376 . Istio version 0.8 has a in bug in batching multiple route changes happening shortly one after another. The batching bug result in the route taking O(5 minutes) to take effect. This issue is fixed in 1.0. We should wait for 1.0 to release and use that before checking in this change. |
|
#1376 is fixed, should no longer be a blocker for running tests in parallel |
|
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: srinivashegde86 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
CLAs look good, thanks! |
|
@srinivashegde86: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
/cc @josephburnett I think it's not even possible as of today to have our tests run reliably in parallel, given we do global changes? Does #2144 make that possible? |
Part of knative/test-infra#20
The e2e tests take ~10 minutes to run. With this change, the e2e tests ~7 mintues.
Proposed Changes