From 514b93d7e13d0dee0050d02f66e5fdfbc9294855 Mon Sep 17 00:00:00 2001 From: yongruilin Date: Thu, 9 Oct 2025 07:36:37 +0000 Subject: [PATCH] test: add validation test for duplicate DeviceClaimConfiguration requests --- .../resourceclaim/declarative_validation_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/registry/resource/resourceclaim/declarative_validation_test.go b/pkg/registry/resource/resourceclaim/declarative_validation_test.go index eb736af2496..d5a222855f7 100644 --- a/pkg/registry/resource/resourceclaim/declarative_validation_test.go +++ b/pkg/registry/resource/resourceclaim/declarative_validation_test.go @@ -144,6 +144,12 @@ func testDeclarativeValidate(t *testing.T, apiVersion string) { field.Duplicate(field.NewPath("spec", "devices", "constraints").Index(0).Child("requests").Index(1), "req-0"), }, }, + "invalid config requests, duplicate name": { + input: mkValidResourceClaim(tweakDuplicateConfigRequest("req-0")), + expectedErrs: field.ErrorList{ + field.Duplicate(field.NewPath("spec", "devices", "config").Index(0).Child("requests").Index(1), "req-0"), + }, + }, "valid firstAvailable, max allowed": { input: mkValidResourceClaim(tweakFirstAvailable(8)), }, @@ -321,6 +327,15 @@ func tweakDuplicateConstraintRequest(name string) func(*resource.ResourceClaim) } } +func tweakDuplicateConfigRequest(name string) func(*resource.ResourceClaim) { + return func(rc *resource.ResourceClaim) { + if len(rc.Spec.Devices.Config) == 0 { + rc.Spec.Devices.Config = append(rc.Spec.Devices.Config, mkDeviceClaimConfiguration()) + } + rc.Spec.Devices.Config[0].Requests = append(rc.Spec.Devices.Config[0].Requests, name) + } +} + func tweakFirstAvailable(items int) func(*resource.ResourceClaim) { return func(rc *resource.ResourceClaim) { rc.Spec.Devices.Requests[0].Exactly = nil