Skip to content

Conversation

@jglogan
Copy link
Contributor

@jglogan jglogan commented Jan 16, 2026

  • TestCLIRunCommand now run so many tests concurrently that the API server gets swamped and tests randomly time out.
  • The parallelism options on swift test only work for XCTest, not swift-testing.
  • Work around this while retaining some parallelism (good for stress testing) by breaking the tests into two suites.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Motivation and Context

Most PRBs are breaking right now.

Testing

  • Tested locally
  • Added/updated tests
  • Added/updated docs

Makefile Outdated
$(SWIFT) test -c $(BUILD_CONFIGURATION) $(INTEGRATION_CONFIGURATION) $(SWIFT_CONFIGURATION) --filter TestCLIVolumes || exit_code=1 ; \
$(SWIFT) test -c $(BUILD_CONFIGURATION) $(INTEGRATION_CONFIGURATION) $(SWIFT_CONFIGURATION) --filter TestCLIKernelSet || exit_code=1 ; \
$(SWIFT) test -c $(BUILD_CONFIGURATION) $(INTEGRATION_CONFIGURATION) $(SWIFT_CONFIGURATION) --filter TestCLIAnonymousVolumes || exit_code=1 ; \
$(SWIFT) test -c $(BUILD_CONFIGURATION) $(INTEGRATION_CONFIGURATION) $(SWIFT_CONFIGURATION) --filter TestCLINoParallelCases || exit_code=1 ; \
Copy link
Contributor

@iko1 iko1 Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The name suggests these tests should not run in parallel

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are designed to run in parallel, and we do so to stress test the system. Unfortunately it appears that we have a suite that contains so many container run tests that the API server gets overloaded and XPC calls start timing out.

@Test func testImageSingleConcurrentDownload() throws {
// removing this image during parallel tests breaks stuff!
_ = try? run(arguments: ["image", "rm", alpine])
defer { _ = try? run(arguments: ["image", "rm", "--all"]) }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding logging in case of failures

Copy link
Contributor Author

@jglogan jglogan Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a good idea but I think we'd want to build that into our test support code. We put together the integration tests and related support code early on and there's plenty of room for refinement. It's out of scope for this PR as we just need to get tests working again, but consider filing an issue describing the enhancement, and then knock out a PR!

@jglogan jglogan force-pushed the integration-testfix branch from 7db92e6 to 39ef497 Compare January 16, 2026 19:40
- TestCLIRunCommand now run so many tests
  concurrently that the API server gets swamped
  and tests randomly time out.
- The parallelism options on `swift test` only work
  for XCTest, not swift-testing.
- Work around this while retaining some parallelism
  (good for stress testing) by breaking the tests
  into two suites.
@jglogan jglogan force-pushed the integration-testfix branch from ee667ca to fae539c Compare January 16, 2026 21:05
@jglogan jglogan merged commit 3cf2c6a into apple:main Jan 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants