Create more test bucket to debug high cpu issues#31377
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: automatic mode |
|
/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview |
WalkthroughThis PR extends the test suite runner in cmd_runsuite.go to identify and separately handle four new test buckets—DRA, InPlace Resize, Probing, and DeploymentConfig—by adding name-based splits, discovery logging, count duplication logic, and dedicated execution scheduling with monitor interval tracking. ChangesTest bucket categorization and execution
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/0c146d90-7bd2-11f1-8628-d6f865f51c18-0 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: xueqzhan The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
pkg/test/ginkgo/cmd_runsuite.go (1)
691-786: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy liftRepeated bucket-execution boilerplate could be extracted into a helper.
The
copyTests → recordTestBucketInterval → q.Execute → EndInterval → log → appendsequence is now duplicated ~14 times in this function (4 new instances added here). Extracting a small helper would reduce duplication and make future bucket additions less error-prone.♻️ Example helper extraction
func executeTestBucket(ctx context.Context, q *parallelTestQueue, recorder monitor.Recorder, name string, tests []*testCase, parallelism int, cfg testOutputConfig, abortFn abortFunc) []*testCase { testsCopy := copyTests(tests) intervalID, startTime := recordTestBucketInterval(recorder, name) q.Execute(ctx, testsCopy, parallelism, cfg, abortFn) recorder.EndInterval(intervalID, time.Now()) logrus.Infof("Completed %s test bucket in %v", name, time.Since(startTime)) return testsCopy }Usage:
- draTestsCopy := copyTests(draTests) - draIntervalID, draStartTime := recordTestBucketInterval(monitorEventRecorder, "DRA") - q.Execute(testCtx, draTestsCopy, parallelism, testOutputConfig, abortFn) - monitorEventRecorder.EndInterval(draIntervalID, time.Now()) - logrus.Infof("Completed DRA test bucket in %v", time.Since(draStartTime)) - tests = append(tests, draTestsCopy...) + tests = append(tests, executeTestBucket(testCtx, q, monitorEventRecorder, "DRA", draTests, parallelism, testOutputConfig, abortFn)...)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@pkg/test/ginkgo/cmd_runsuite.go` around lines 691 - 786, The bucket execution flow in this function is repeated many times and should be extracted into a shared helper. Move the copyTests, recordTestBucketInterval, q.Execute, monitorEventRecorder.EndInterval, logrus.Infof, and append sequence into a reusable helper like executeTestBucket, then replace each bucket block (for example Kubernetes, DRA, InPlaceResize, Probing, Storage, Network, Netpol, Builds, OpenShift, DeploymentConfig, MustGather) with calls to it. Keep the helper responsible for returning the copied tests so the caller can continue appending them to tests.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@pkg/test/ginkgo/cmd_runsuite.go`:
- Around line 691-786: The bucket execution flow in this function is repeated
many times and should be extracted into a shared helper. Move the copyTests,
recordTestBucketInterval, q.Execute, monitorEventRecorder.EndInterval,
logrus.Infof, and append sequence into a reusable helper like executeTestBucket,
then replace each bucket block (for example Kubernetes, DRA, InPlaceResize,
Probing, Storage, Network, Netpol, Builds, OpenShift, DeploymentConfig,
MustGather) with calls to it. Keep the helper responsible for returning the
copied tests so the caller can continue appending them to tests.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 62231f2a-4f19-4df7-9419-d5e1cf9a1f93
📒 Files selected for processing (1)
pkg/test/ginkgo/cmd_runsuite.go
|
/payload-aggregate periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-rhcos9-techpreview 10 |
|
@xueqzhan: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/a8f9bc00-7bd7-11f1-9f83-ccfaed31241a-0 |
|
Scheduling required tests: |
|
@xueqzhan: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
/hold
Summary by CodeRabbit