feat: watch slims parallel-testing clones as they boot - #43
Open
enumcase wants to merge 1 commit into
Open
Conversation
xcodebuild parallel testing creates a stock clone per worker in its own device set and deletes them per run; disable overrides do not survive simctl clone, so there is no device to pre-slim. watch polls the device sets and applies a no-reboot slim to each simulator once it boots, then leaves it alone, reusing EnableSlimNoReboot from MobAI-App#42. Answers the ephemeral-clone case raised in MobAI-App#41.
enumcase
force-pushed
the
feat/watch-parallel-testing-clones
branch
from
September 8, 2026 10:10
8d3b68b to
816d783
Compare
enumcase
marked this pull request as ready for review
September 8, 2026 10:10
Author
|
@Interlap01 Hello! Sorry for sudden PR, but I guess it aligns well with your recent changes at #42 I've been trying to experiment with parallel tests on iOS and trying parallel simulators too. Thank you for enabling cool things with #42 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds
simslim watch: it polls the device sets and slims each simulator no-reboot the moment it boots, then leaves it alone. This is the hook forxcodebuildparallel-testing clones.xcodebuildparallel testing creates a fresh clone per worker in its own device set, runs the tests, and deletes the clones when the run ends. The clones are created stock, and disable overrides do not survivesimctl clone(this is whyrepair-cloneexists), so there is no device to slim ahead of time.watchcatches each clone once it boots and applies the no-reboot slim from #42. A clone slimmed a few seconds into a multi-minute run keeps its freed memory for the rest of the run.This is the automated answer to the ephemeral-clone case in #41, where slimming ahead of time was not possible.
Usage
Takes the same
--profile/--except/--keepselection ason. Scans the default andtestingsets plus any passed with--set, on a--interval(default 3s). Runs until Ctrl-C.Behavior
Validation
Local, iOS 26.1, on a real
xcodebuild -parallel-testing-worker-countrun:watchdetected each parallel-testing clone as it booted and targeted it for the no-reboot slim.simslim on.Tests
xcruntest: a booted device is slimmed exactly once across repeated scans, a shutdown device is never slimmed.make checkgreen (go test ./...,go vet, swift-format lint, build-app.sh).Builds on #42
watchreusesEnableSlimNoRebootfrom #42 (now merged). Rebased ontomain, so this PR is a single commit with no dependency.