Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions test/e2e/cascade_gc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ const (
)

func TestCascadeGC_ExposerUpdatesComponent(t *testing.T) {
t.Parallel()
feature := features.New("exposer-updates-component").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down Expand Up @@ -214,6 +215,7 @@ func TestCascadeGC_ExposerUpdatesComponent(t *testing.T) {
}

func TestCascadeGC_ExposerDeletionCleanup(t *testing.T) {
t.Parallel()
feature := features.New("exposer-deletion-cleanup").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down
3 changes: 3 additions & 0 deletions test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
)

func TestCRDInstallation(t *testing.T) {
t.Parallel()
expectedCRDs := []string{
"scalityuis.ui.scality.com",
"scalityuicomponents.ui.scality.com",
Expand All @@ -54,6 +55,7 @@ func TestCRDInstallation(t *testing.T) {
}

func TestOperatorDeployment(t *testing.T) {
t.Parallel()
if framework.SkipOperatorDeploy() {
t.Skip("Skipping operator deployment test (E2E_SKIP_OPERATOR=true)")
}
Expand Down Expand Up @@ -109,6 +111,7 @@ const (
)

func TestSmokeFullChain(t *testing.T) {
t.Parallel()
// Expected values from mock-server's defaultMicroAppConfig()
const (
expectedPublicPath = "/mock/"
Expand Down
2 changes: 2 additions & 0 deletions test/e2e/multi_namespace_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ const (
)

func TestMultiNamespace_MultipleComponentsAggregation(t *testing.T) {
t.Parallel()
feature := features.New("multi-namespace-components-aggregation").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down Expand Up @@ -304,6 +305,7 @@ func TestMultiNamespace_MultipleComponentsAggregation(t *testing.T) {
}

func TestMultiNamespace_PartialNamespaceDeletion(t *testing.T) {
t.Parallel()
feature := features.New("multi-namespace-partial-deletion").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down
1 change: 1 addition & 0 deletions test/e2e/namespace_deletion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ const (
)

func TestNamespaceDeletion_CascadeCleanup(t *testing.T) {
t.Parallel()
feature := features.New("namespace-deletion-cascade-cleanup").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down
3 changes: 3 additions & 0 deletions test/e2e/pod_lifecycle_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const (
)

func TestPodLifecycle_RollingUpdateOnConfigChange(t *testing.T) {
t.Parallel()
feature := features.New("rolling-update-on-config-change").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
client := cfg.Client()
Expand Down Expand Up @@ -214,6 +215,7 @@ func TestPodLifecycle_RollingUpdateOnConfigChange(t *testing.T) {
}

func TestPodLifecycle_OperatorCrashRecovery(t *testing.T) {
t.Parallel()
Copy link

Copilot AI Jan 30, 2026

Choose a reason for hiding this comment

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

This test deletes the operator pod as part of its execution (see line 294), which affects the entire cluster. Running this test in parallel with TestPodLifecycle_NoSpuriousUpdatesAfterRestart (which also deletes the operator pod at line 469) can cause race conditions and test flakiness. These two tests should not run in parallel because they both manipulate the shared operator deployment. Consider either removing t.Parallel from both these disruptive tests, or implementing a synchronization mechanism (such as a mutex or test label filtering) to ensure they run sequentially.

Suggested change
t.Parallel()

Copilot uses AI. Check for mistakes.
feature := features.New("operator-crash-recovery").
WithLabel("disruptive", "true").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
Expand Down Expand Up @@ -362,6 +364,7 @@ func TestPodLifecycle_OperatorCrashRecovery(t *testing.T) {
}

func TestPodLifecycle_NoSpuriousUpdatesAfterRestart(t *testing.T) {
t.Parallel()
Copy link

Copilot AI Jan 30, 2026

Choose a reason for hiding this comment

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

This test deletes the operator pod as part of its execution (see line 469), which affects the entire cluster. Running this test in parallel with TestPodLifecycle_OperatorCrashRecovery (which also deletes the operator pod at line 294) can cause race conditions and test flakiness. These two tests should not run in parallel because they both manipulate the shared operator deployment. Consider either removing t.Parallel from both these disruptive tests, or implementing a synchronization mechanism (such as a mutex or test label filtering) to ensure they run sequentially.

Copilot uses AI. Check for mistakes.
feature := features.New("no-spurious-updates-after-restart").
WithLabel("disruptive", "true").
Setup(func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
Expand Down
4 changes: 4 additions & 0 deletions test/e2e/real_http_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ type realHTTPContextKey string
const realHTTPNamespaceKey realHTTPContextKey = "real-http-namespace"

func TestRealHTTP_ReconcileStormPrevention(t *testing.T) {
t.Parallel()
const componentName = "storm-test-component"

feature := features.New("reconcile-storm-prevention").
Expand Down Expand Up @@ -133,6 +134,7 @@ func TestRealHTTP_ReconcileStormPrevention(t *testing.T) {
}

func TestRealHTTP_TimeoutHandling(t *testing.T) {
t.Parallel()
const componentName = "timeout-test-component"

feature := features.New("http-timeout-handling").
Expand Down Expand Up @@ -229,6 +231,7 @@ func TestRealHTTP_TimeoutHandling(t *testing.T) {
// TestRealHTTP_RecoveryAfterServerFailure verifies recovery after server failure.
// Strategy: Reset mock server config, then wait for controller's natural retry (RequeueAfter: 30s).
func TestRealHTTP_RecoveryAfterServerFailure(t *testing.T) {
t.Parallel()
const componentName = "recovery-test-component"

feature := features.New("recovery-after-server-failure").
Expand Down Expand Up @@ -392,6 +395,7 @@ func TestRealHTTP_RecoveryAfterServerFailure(t *testing.T) {
// TestRealHTTP_NoFetchWithoutTrigger verifies that after initial success,
// the controller doesn't make new HTTP requests without a trigger (image change or force-refresh).
func TestRealHTTP_NoFetchWithoutTrigger(t *testing.T) {
t.Parallel()
const componentName = "no-fetch-test-component"

feature := features.New("no-fetch-without-trigger").
Expand Down
Loading