-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Introduce execution.Controller
with a local
no-op implementation
#3204
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #3204 +/- ##
==========================================
- Coverage 73.19% 73.16% -0.03%
==========================================
Files 267 261 -6
Lines 20076 19910 -166
==========================================
- Hits 14694 14567 -127
+ Misses 4468 4413 -55
- Partials 914 930 +16
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
9a913cd
to
74dda8c
Compare
9f64a28
to
74dda8c
Compare
6254df9
to
fd81209
Compare
Applied PR review suggestion and rebased on top of the latest |
This doesn't change any existing k6 behavior (see how the tests were not touched), but it adds hooks for distributed execution later on.
fd81209
to
19a30e2
Compare
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.
🚀
🎉 |
What?
This is another sliver of the newly refactored #2816, a follow-up to #3191.
It adds the concept of an
execution.Controller
, a very lightweight API by which multiple k6 instances could synchronize the concurrent execution of different segments of the same test run. However, it doesn't actually add any distributed execution by itself, just alocal
implementation of it that doesn't do anything (because a single instance doesn't need to synchronize with itself... yet 😅)Why?
This is a backwards-compatible prerequisite for distributed execution.
As you can see, no tests have been changed beyond adding the extra parameter to
execution.NewScheduler()
. So this doesn't change any existing k6 behavior. However, it makes merging the distributed execution much easier because it reduces the likelihood of conflicts. For example, I recently had to resolve conflicts between #2816 and #3112. Even ignoring the code conflicts, logical conflicts are also easier to foresee when this is merged into the codebase, and it makes distributed execution a smaller and easier to review PR.Checklist
I have added tests for my changes.(not needed)make ci-like-lint
) and all checks pass.make tests
) and all tests pass.Related PR(s)/Issue(s)