Skip to content

Classify SDK tests for Cloud execution - #3033

Open
THardy98 wants to merge 4 commits into
mainfrom
feat/cloud-test-filtering
Open

Classify SDK tests for Cloud execution#3033
THardy98 wants to merge 4 commits into
mainfrom
feat/cloud-test-filtering

Conversation

@THardy98

@THardy98 THardy98 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

What was changed?

Temporal SDK tests are now eligible for Cloud execution by default. Tests that cannot run in the isolated Cloud namespace use JUnit 4 categories with one of three explicit reasons:

  • require a local server
  • require Cloud resources that CI does not provision
  • require Cloud-specific adaptation

Every exclusion also carries a required CloudTestExclusionNote explaining its concrete limitation.

The new :temporal-sdk:testCloud task excludes that category hierarchy while leaving the normal test task unchanged.

The complementary :temporal-sdk:listCloudExcludedTests task lists concrete excluded test names without executing them and accepts -PcloudTestExclusionReason=<reason> to inspect one reason category.

Ex:

./gradlew :temporal-sdk:listCloudExcludedTests \
      -PcloudTestExclusionReason=NeedsCloudAdaptation

to see all tests that need cloud adaptation.

Straightforward compatibility issues were fixed rather than excluded: secondary clients use the configured namespace and connection, direct external clients preserve envconfig TLS and authentication, and assertions use the active namespace.

Review guide

Commits are split logically, will be much easier to review that way.

Why?

A hand-picked Cloud smoke test does not show which parts of the SDK suite are compatible with Temporal Cloud. Runner-native categories keep eligibility beside each test, make exclusions reviewable, and allow new compatible tests to enter the Cloud lane automatically without maintaining a separate allowlist. Machine-enforced notes preserve reviewer context while keeping reason filtering idiomatic to JUnit.

Breaking changes?

None. The category types and Gradle task are internal test infrastructure, and normal local test execution is unchanged.

Server PR

None.

How was this tested?

CI job runs the integration test suite against cloud now (skips tests that are not ready for cloud)

Documentation

CONTRIBUTING.md documents the Cloud task, excluded-test inventory, default eligibility policy, exclusion reasons, and required note metadata.

@THardy98
THardy98 force-pushed the feat/cloud-test-namespace branch from 80d1c35 to e951a65 Compare August 25, 2026 12:06
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch 4 times, most recently from 63b9ab2 to ed1103c Compare August 25, 2026 14:51
@THardy98
THardy98 force-pushed the feat/cloud-test-namespace branch from e951a65 to 21ae1f4 Compare August 25, 2026 17:00
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch from ed1103c to 5e01735 Compare August 25, 2026 20:17
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch 6 times, most recently from a33de7e to 602d1ec Compare September 3, 2026 12:49
Base automatically changed from feat/cloud-test-namespace to main September 3, 2026 17:26
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch from 602d1ec to e7e7d86 Compare September 3, 2026 17:35
@THardy98
THardy98 marked this pull request as ready for review September 3, 2026 17:39
@THardy98
THardy98 requested a review from a team as a code owner September 3, 2026 17:39
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch from e7e7d86 to a86883f Compare September 3, 2026 18:43
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch 3 times, most recently from 6db5e63 to f6957f4 Compare September 3, 2026 20:35
@THardy98
THardy98 force-pushed the feat/cloud-test-filtering branch from f6957f4 to 561917f Compare September 3, 2026 23:00
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.

1 participant