-
Notifications
You must be signed in to change notification settings - Fork 33
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
[WIP] Add dynamic scheduling operation mode #271
Open
mtreinish
wants to merge
13
commits into
main
Choose a base branch
from
dynamic-schedule
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Commits on Nov 24, 2019
-
Add dynamic scheduling operation mode
This commit adds an opt-in scheduler option for dynamic scheduling. Instead of partitioning the test list up-front based on historical timing data this commit lets each worker ask for the next test dynamically. This is built using python's multiprocess module to launch new workers instead of shelling out to call python via subprocess. This hopefully will provide a better worker balance since we will keep each worker occupied until there are no more tests to be run. Instead of trying to pack fill each work optimially up front. Additionally this should hopefully improve the pdb story for users who use pdb with tests. Since instead of spawning subprocesses calling python to invoke the subunit runner and reading the subunit stream from stdout and instead uses multiprocessing to fork workers and uses pipes to pass the subunit streams between workers.
Configuration menu - View commit details
-
Copy full SHA for 068c507 - Browse repository at this point
Copy the full SHA 068c507View commit details -
Co-Authored-By: Adam Spiers <github@adamspiers.org>
Configuration menu - View commit details
-
Copy full SHA for 59189e6 - Browse repository at this point
Copy the full SHA 59189e6View commit details -
This commit fixes the failing tests by catching a couple of missing things from the update. The biggest fix was that for the --no-discover case we still use a subprocess and because of that we need to tell output.ReturnCodeToSubunit to that the input is not dynamic (and therefore a Popen object) so it can handle that properly. The other major change is that the return code tests are updated so that the stdout and stderr from the subprocess calls are always decoded in the non-subunit test cases. This was done primarily for ease of debugging, but it also enabled the removal of several decode() calls when the output is parsed.
Configuration menu - View commit details
-
Copy full SHA for 4196953 - Browse repository at this point
Copy the full SHA 4196953View commit details -
Clean up test_return_code tests slightly
This is a refinement on the previous commit to reduce unecessary changes to the functional tests in the test_return_codes module. Mainly always decoding the output from the subprocess for testing broken things unexpectedly when a bytes object was expected.
Configuration menu - View commit details
-
Copy full SHA for e68b506 - Browse repository at this point
Copy the full SHA e68b506View commit details
Commits on Aug 9, 2020
-
Merge remote-tracking branch 'origin/master' into dynamic-schedule
Conflicts: stestr/commands/run.py stestr/output.py stestr/test_processor.py stestr/tests/test_return_codes.py
Configuration menu - View commit details
-
Copy full SHA for e47ad6e - Browse repository at this point
Copy the full SHA e47ad6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e8989ca - Browse repository at this point
Copy the full SHA e8989caView commit details
Commits on Aug 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 64d8a0b - Browse repository at this point
Copy the full SHA 64d8a0bView commit details
Commits on Apr 15, 2021
-
Configuration menu - View commit details
-
Copy full SHA for a474f3f - Browse repository at this point
Copy the full SHA a474f3fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fcb27a - Browse repository at this point
Copy the full SHA 4fcb27aView commit details
Commits on Aug 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 1fa2454 - Browse repository at this point
Copy the full SHA 1fa2454View commit details
Commits on Jul 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6055ca8 - Browse repository at this point
Copy the full SHA 6055ca8View commit details -
I originally developed this feature when we still supported older python versions in stestr. The dynamic scheduling feature depends on functionality added in Python 3.5. Since then the WIP feature branch sat stale for years since that time we've bumped the minimum version of Python supported to 3.7 so the runtime check for older python versions is no longer needed.
Configuration menu - View commit details
-
Copy full SHA for e23f8ed - Browse repository at this point
Copy the full SHA e23f8edView commit details
Commits on Jul 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f7900e7 - Browse repository at this point
Copy the full SHA f7900e7View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.