-
Notifications
You must be signed in to change notification settings - Fork 1k
enhance resource interpreter test framework #6938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @zhzhuang-zju, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly upgrades the resource interpreter test framework. It introduces the capability to define and verify the precise output of resource interpretation rules, moving beyond basic error checking. This enhancement ensures greater accuracy and reliability in resource interpretation logic by allowing for detailed validation of interpreted replicas, components, health, and aggregated status, as demonstrated with expanded FlinkDeployment test cases. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request enhances the resource interpreter test framework by introducing a more flexible way to define and verify test outcomes. Instead of a hardcoded replica check, it uses a desiredResults map, allowing for comprehensive validation of various interpreter operations. The implementation is solid, but I have one suggestion for the new deepEqual function to improve its correctness, performance, and consistency.
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6938 +/- ##
=======================================
Coverage 46.61% 46.61%
=======================================
Files 698 698
Lines 48003 48000 -3
=======================================
+ Hits 22375 22377 +2
+ Misses 23943 23938 -5
Partials 1685 1685
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
7830124 to
7c7fe9e
Compare
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request significantly enhances the resource interpreter test framework by introducing the capability to verify the exact output of interpretation rules, which is a valuable improvement for ensuring correctness. The new documentation is also clear and comprehensive. My review focuses on a regression in testing capabilities for one operation and a couple of opportunities to improve the implementation of the test helpers for better code quality and maintainability.
|
Generally looks good to me. |
There was a problem hiding this 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 enhances the resource interpreter test framework by introducing the ability to verify precise outputs of resource interpretation rules. The framework moves beyond basic error checking to enable detailed validation of interpreted results including replicas, components, health status, and aggregated status.
Key Changes:
- Modified test structure to support expected output validation through
desiredResultsfield - Implemented
deepEqualfunction with type-specific semantic comparison for various resource types - Extended FlinkDeployment test cases with comprehensive output validation for multiple operations
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
pkg/resourceinterpreter/default/thirdparty/thirdparty_test.go |
Enhanced test framework with result validation logic, added deepEqual function for semantic comparison of expected vs actual outputs |
pkg/resourceinterpreter/default/thirdparty/resourcecustomizations/flink.apache.org/v1beta1/FlinkDeployment/customizations_tests.yaml |
Expanded FlinkDeployment test cases with desiredResults fields to validate InterpretReplica, InterpretComponent, InterpretHealth, InterpretStatus, and AggregateStatus operations |
pkg/resourceinterpreter/default/thirdparty/README.md |
Added comprehensive documentation for the test framework including structure, usage, test creation guide, and best practices |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...ty/resourcecustomizations/flink.apache.org/v1beta1/FlinkDeployment/customizations_tests.yaml
Outdated
Show resolved
Hide resolved
0c80377 to
38e108f
Compare
|
/gemini review |
|
It looks like there might be a small typo in your command. Did you mean Review of "enhance resource interpreter test framework"This pull request introduces valuable enhancements to the resource interpreter test framework, moving beyond basic error checking to allow for precise validation of interpretation rule outputs. This is a significant step forward in ensuring the correctness and reliability of custom resource interpretation within Karmada. Overall Observations:
Detailed Review by File:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request is a great enhancement to the resource interpreter test framework, introducing output validation for interpreter rules. The new README.md is very helpful for contributors. The implementation is solid, but I've found a small bug in the new deepEqual test helper function that should be addressed to ensure test reliability. I've also included a couple of minor suggestions to improve the new documentation's formatting.
...customizations/flink.apache.org/v1beta1/FlinkDeployment/testdata/output-flinkdeployment.yaml
Outdated
Show resolved
Hide resolved
691dafa to
01b0148
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
01b0148 to
0e341a2
Compare
|
All done. cc @RainbowMango @XiShanYongYe-Chang $ go test -timeout 30s -run ^TestThirdPartyCustomizationsFile$ github.com/karmada-io/karmada/pkg/resourceinterpreter/default/thirdparty -v 4
=== RUN TestThirdPartyCustomizationsFile
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:AdvancedCronJob_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-advancedcronjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:AdvancedCronJob_with_configmap_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-advancedcronjob
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:BroadcastJob_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:BroadcastJob_with_configmap_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:BroadcastJob_with_failed_phase_should_be_Unhealthy
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:BroadcastJob_with_parallelism_set_to_1
thirdparty_test.go:105: no expected result for replica of declarative-configuration-broadcastjob
thirdparty_test.go:105: no expected result for requires of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:BroadcastJob:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[Retain]:BroadcastJob:_retain_test
thirdparty_test.go:105: no expected result for retained of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[ReviseReplica]:BroadcastJob:_revise_replica_test
thirdparty_test.go:105: no expected result for revised of declarative-configuration-broadcastjob
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:CloneSet_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:CloneSet_with_configmap_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:CloneSet_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:CloneSet_with_replicas_set_to_4
thirdparty_test.go:105: no expected result for replica of declarative-configuration-cloneset
thirdparty_test.go:105: no expected result for requires of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:CloneSet:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[ReviseReplica]:CloneSet:_revise_replica_test
thirdparty_test.go:105: no expected result for revised of declarative-configuration-cloneset
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:DaemonSet_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-daemonset
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:DaemonSet_with_configmap_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-daemonset
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:DaemonSet_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-daemonset
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:DaemonSet:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-daemonset
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:SidecarSet_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-sidecarset
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:SidecarSet_with_configmap_and_secret_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-sidecarset
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:SidecarSet_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-sidecarset
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:SidecarSet_replicas_should_always_be_0
thirdparty_test.go:105: no expected result for replica of declarative-configuration-sidecarset
thirdparty_test.go:105: no expected result for requires of declarative-configuration-sidecarset
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:SidecarSet:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-sidecarset
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:UnitedDeployment_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[InterpretDependency]:UnitedDeployment_with_configmap_and_secret_dependency
thirdparty_test.go:105: no expected result for dependencies of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:UnitedDeployment_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:UnitedDeployment_with_replicas_set_to_3
thirdparty_test.go:105: no expected result for replica of declarative-configuration-uniteddeployment
thirdparty_test.go:105: no expected result for requires of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:UnitedDeployment:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[ReviseReplica]:UnitedDeployment:_revise_replica_test
thirdparty_test.go:105: no expected result for revised of declarative-configuration-uniteddeployment
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:StatefulSet_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-statefulset
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:StatefulSet:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-statefulset
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:Workflow_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-workflow
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:Workflow_with_parallelism_set_to_2
thirdparty_test.go:105: no expected result for replica of declarative-configuration-workflow
thirdparty_test.go:105: no expected result for requires of declarative-configuration-workflow
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:VCJob_with_one_status_item
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-job
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:VCJob:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-job
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:FlinkDeployment_with_nil_status_items
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:FlinkDeployment_with_one_status_item
=== RUN TestThirdPartyCustomizationsFile/[InterpretComponent]:FlinkDeployment_with_taskManager.replicas_set_to_1
=== RUN TestThirdPartyCustomizationsFile/[InterpretComponent]:FlinkDeployment_with_taskManager.replicas_not_set,_use_parallelism/numberOfTaskSlots
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:FlinkDeployment_with_DEPLOYED_state_should_be_Healthy
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:FlinkDeployment_with_taskManager.replicas_set_to_1
=== RUN TestThirdPartyCustomizationsFile/[InterpretReplica]:FlinkDeployment_with_taskManager.replicas_not_set,_use_parallelism/numberOfTaskSlots
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:FlinkDeployment:_interpret_status_test
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmRelease_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-helmrelease
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmRelease:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-helmrelease
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:Notebook_with_one_status_item
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-notebook
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:Notebook:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-notebook
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:PyTorchJob_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-pytorchjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:PyTorchJob_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-pytorchjob
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:TFJob_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-tfjob
=== RUN TestThirdPartyCustomizationsFile/[InterpretHealth]:TFJob_interpreting_health_test
thirdparty_test.go:105: no expected result for healthy of declarative-configuration-tfjob
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:MPIJob_with_three_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-mpijob
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:MPIJob:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-mpijob
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:Kustomization_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-kustomization
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:Kustomization:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-kustomization
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:ClusterPolicy_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-clusterpolicy
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:ClusterPolicy:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-clusterpolicy
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:Policy_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-policy
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:Policy:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-policy
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:GitRepository_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-gitrepository
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:GitRepository:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-gitrepository
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:Bucket_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-bucket
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:Bucket:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-bucket
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmChart_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-helmchart
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmChart:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-helmchart
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmRepository_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-helmrepository
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmRepository:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-helmrepository
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:OCIRepository_with_two_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-ocirepository
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:OCIRepository:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-ocirepository
=== RUN TestThirdPartyCustomizationsFile/[AggregateStatus]:SparkApplication_with_three_status_items
thirdparty_test.go:105: no expected result for aggregatedStatus of declarative-configuration-sparkapplication
=== RUN TestThirdPartyCustomizationsFile/[InterpretStatus]:SparkApplication:_interpret_status_test
thirdparty_test.go:105: no expected result for status of declarative-configuration-sparkapplication
--- PASS: TestThirdPartyCustomizationsFile (0.21s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:AdvancedCronJob_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:AdvancedCronJob_with_configmap_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:BroadcastJob_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:BroadcastJob_with_configmap_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:BroadcastJob_with_failed_phase_should_be_Unhealthy (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:BroadcastJob_with_parallelism_set_to_1 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:BroadcastJob:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[Retain]:BroadcastJob:_retain_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[ReviseReplica]:BroadcastJob:_revise_replica_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:CloneSet_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:CloneSet_with_configmap_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:CloneSet_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:CloneSet_with_replicas_set_to_4 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:CloneSet:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[ReviseReplica]:CloneSet:_revise_replica_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:DaemonSet_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:DaemonSet_with_configmap_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:DaemonSet_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:DaemonSet:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:SidecarSet_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:SidecarSet_with_configmap_and_secret_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:SidecarSet_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:SidecarSet_replicas_should_always_be_0 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:SidecarSet:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:UnitedDeployment_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretDependency]:UnitedDeployment_with_configmap_and_secret_dependency (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:UnitedDeployment_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:UnitedDeployment_with_replicas_set_to_3 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:UnitedDeployment:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[ReviseReplica]:UnitedDeployment:_revise_replica_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:StatefulSet_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:StatefulSet:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:Workflow_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:Workflow_with_parallelism_set_to_2 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:VCJob_with_one_status_item (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:VCJob:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:FlinkDeployment_with_nil_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:FlinkDeployment_with_one_status_item (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretComponent]:FlinkDeployment_with_taskManager.replicas_set_to_1 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretComponent]:FlinkDeployment_with_taskManager.replicas_not_set,_use_parallelism/numberOfTaskSlots (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:FlinkDeployment_with_DEPLOYED_state_should_be_Healthy (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:FlinkDeployment_with_taskManager.replicas_set_to_1 (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretReplica]:FlinkDeployment_with_taskManager.replicas_not_set,_use_parallelism/numberOfTaskSlots (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:FlinkDeployment:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmRelease_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmRelease:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:Notebook_with_one_status_item (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:Notebook:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:PyTorchJob_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:PyTorchJob_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:TFJob_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretHealth]:TFJob_interpreting_health_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:MPIJob_with_three_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:MPIJob:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:Kustomization_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:Kustomization:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:ClusterPolicy_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:ClusterPolicy:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:Policy_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:Policy:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:GitRepository_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:GitRepository:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:Bucket_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:Bucket:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmChart_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmChart:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:HelmRepository_with_two_status_items (0.01s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:HelmRepository:_interpret_status_test (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:OCIRepository_with_two_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:OCIRepository:_interpret_status_test (0.01s)
--- PASS: TestThirdPartyCustomizationsFile/[AggregateStatus]:SparkApplication_with_three_status_items (0.00s)
--- PASS: TestThirdPartyCustomizationsFile/[InterpretStatus]:SparkApplication:_interpret_status_test (0.00s)
PASS
ok github.com/karmada-io/karmada/pkg/resourceinterpreter/default/thirdparty 0.240s |
07eff40 to
7df72e9
Compare
XiShanYongYe-Chang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot~
There are quite a few files involved in the current PR.
Made a small suggestion, other parts LGTM
7df72e9 to
a3e4b4d
Compare
Signed-off-by: zhzhuang-zju <[email protected]>
a3e4b4d to
d6d5357
Compare
|
/retest |
|
Thanks |
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This pull request significantly upgrades the resource interpreter test framework. It introduces the capability to define and verify the precise output of resource interpretation rules, moving beyond basic error checking. This enhancement ensures greater accuracy and reliability in resource interpretation logic by allowing for detailed validation of interpreted replicas, components, health, and aggregated status, as demonstrated with expanded FlinkDeployment test cases.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?: