Skip to content

Conversation

@DariuszPorowski
Copy link
Member

Description

  1. Bounded Package Parallelism in test.mk:

    • Added -p to all functional test targets.
    • Cloud suites (ucp-cloud, corerp-cloud) and Kubernetes/Upgrade suites are capped at -p 1 to prevent rate-limiting and cluster contention.
    • Lighter suites (ucp-noncloud, cli-noncloud, samples-noncloud, etc.) are capped at -p 2 to allow some parallelism without overloading the cluster.
  2. Replaced time.Sleep(3 * time.Second) with require.Eventually polling loops that check helm status to confirm the release is actually gone. This makes the tests faster.

Type of change

  • This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Radius (issue link optional).

Contributor checklist

Please verify that the PR meets the following requirements, where applicable:

  • An overview of proposed schema changes is included in a linked GitHub issue.
    • Yes
    • Not applicable
  • A design document PR is created in the design-notes repository, if new APIs are being introduced.
    • Yes
    • Not applicable
  • The design document has been reviewed and approved by Radius maintainers/approvers.
    • Yes
    • Not applicable
  • A PR for the samples repository is created, if existing samples are affected by the changes in this PR.
    • Yes
    • Not applicable
  • A PR for the documentation repository is created, if the changes in this PR affect the documentation or any user facing updates are made.
    • Yes
    • Not applicable
  • A PR for the recipes repository is created, if existing recipes are affected by the changes in this PR.
    • Yes
    • Not applicable

@codecov
Copy link

codecov bot commented Dec 12, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 50.43%. Comparing base (fe6800a) to head (ed4bc3f).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10934      +/-   ##
==========================================
- Coverage   50.46%   50.43%   -0.03%     
==========================================
  Files         672      672              
  Lines       42063    42063              
==========================================
- Hits        21228    21216      -12     
- Misses      18784    18790       +6     
- Partials     2051     2057       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR improves functional test parallelism by introducing bounded package-level parallelism controls and replacing fixed sleep delays with dynamic polling loops.

Key changes include:

  • Adding -p flags to all functional test targets in the Makefile to control package-level parallelism (how many test packages run simultaneously)
  • Replacing time.Sleep(3 * time.Second) with require.Eventually polling loops that actively check Helm release status
  • Minor whitespace cleanup (trailing spaces removed)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
build/test.mk Added -p flags to control package-level parallelism: -p 1 for cloud/Kubernetes/upgrade suites to prevent rate-limiting and cluster contention; -p 2 for lighter noncloud suites to enable some parallelism; whitespace cleanup
test/functional-portable/upgrade/upgrade_test.go Replaced fixed 3-second sleep delays with require.Eventually polling loops that check helm status to confirm release uninstallation, making tests faster and more reliable

build/test.mk Outdated
.PHONY: test-functional-corerp-noncloud
test-functional-corerp-noncloud: ## Runs corerp functional tests that do not require cloud resources
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/corerp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 10 $(GOTEST_OPTS)
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/corerp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 10 -p 1 $(GOTEST_OPTS)
Copy link

Copilot AI Dec 12, 2025

Choose a reason for hiding this comment

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

The -p flag controls the number of test packages that can be built and run in parallel. However, corerp-noncloud is configured with -parallel 10 (allowing up to 10 tests within a package to run concurrently) but -p 1 (only one package at a time). This seems inconsistent with the stated goal of allowing "some parallelism" for lighter suites. Consider whether -p 2 would be more appropriate here to match other noncloud suites, unless there's a specific reason for this constraint.

Suggested change
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/corerp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 10 -p 1 $(GOTEST_OPTS)
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/corerp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 10 -p 2 $(GOTEST_OPTS)

Copilot uses AI. Check for mistakes.
build/test.mk Outdated
.PHONY: test-functional-daprrp-noncloud
test-functional-daprrp-noncloud: ## Runs Dapr RP functional tests that do not require cloud resources
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/daprrp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 3 $(GOTEST_OPTS)
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/daprrp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 3 -p 1 $(GOTEST_OPTS)
Copy link

Copilot AI Dec 12, 2025

Choose a reason for hiding this comment

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

The -p flag controls package-level parallelism (how many test packages run simultaneously), while -parallel controls within-package parallelism (how many tests within a single package run concurrently). The daprrp-noncloud suite has -parallel 3 with -p 1, which seems inconsistent with the PR description stating lighter suites are "capped at -p 2 to allow some parallelism." Consider whether -p 2 would be more appropriate here.

Suggested change
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/daprrp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 3 -p 1 $(GOTEST_OPTS)
CGO_ENABLED=1 $(GOTEST_TOOL) ./test/functional-portable/daprrp/noncloud/... -timeout ${TEST_TIMEOUT} -v -parallel 3 -p 2 $(GOTEST_OPTS)

Copilot uses AI. Check for mistakes.
@radius-functional-tests
Copy link

radius-functional-tests bot commented Dec 12, 2025

Radius functional test overview

🔍 Go to test action run

Click here to see the test run details
Name Value
Repository DariuszPorowski/radius-radius
Commit ref ed4bc3f
Unique ID func206ab603f6
Image tag pr-func206ab603f6
  • gotestsum 1.13.0
  • KinD: v0.29.0
  • Dapr: 1.14.4
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func206ab603f6
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func206ab603f6
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func206ab603f6
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func206ab603f6
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func206ab603f6
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting corerp-cloud functional tests...
⌛ Starting ucp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
❌ corerp-cloud functional test failed. Please check the logs for more details

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