Negative index regression test for json-patch (#122625)

* add testcase with negative index

* exercise successful negative index patching

* use different values for testing

Co-authored-by: Chris Bandy <bandy.chris@gmail.com>

---------

Co-authored-by: Chris Bandy <bandy.chris@gmail.com>

Kubernetes-commit: 83ff8a2f49f820fb355b24c65b8629710dca8a54
This commit is contained in:
Vandit Singh 2024-01-18 13:14:19 +05:30 committed by Kubernetes Publisher
parent 496d7e7b8b
commit ff6a2dc722
3 changed files with 9 additions and 4 deletions

4
go.mod
View File

@ -44,7 +44,7 @@ require (
gopkg.in/square/go-jose.v2 v2.6.0
k8s.io/api v0.0.0-20240114225744-c9c2aecc731b
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d
k8s.io/client-go v0.0.0-20240115212153-b13c4f4b008a
k8s.io/client-go v0.0.0-20240118092131-aa81cb55f079
k8s.io/component-base v0.0.0-20240112172947-d5ddea0e47af
k8s.io/klog/v2 v2.120.0
k8s.io/kms v0.0.0-20231220174908-0e979309a09f
@ -127,7 +127,7 @@ require (
replace (
k8s.io/api => k8s.io/api v0.0.0-20240114225744-c9c2aecc731b
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d
k8s.io/client-go => k8s.io/client-go v0.0.0-20240115212153-b13c4f4b008a
k8s.io/client-go => k8s.io/client-go v0.0.0-20240118092131-aa81cb55f079
k8s.io/component-base => k8s.io/component-base v0.0.0-20240112172947-d5ddea0e47af
k8s.io/kms => k8s.io/kms v0.0.0-20231220174908-0e979309a09f
)

4
go.sum
View File

@ -389,8 +389,8 @@ k8s.io/api v0.0.0-20240114225744-c9c2aecc731b h1:P4NQ7C/VCZXHN3HQh5/Xd5eNqwzh9o2
k8s.io/api v0.0.0-20240114225744-c9c2aecc731b/go.mod h1:gd8eHKGEAgKEJvMyjMHG88jdPdPbUS/GKULUOrS7+EU=
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d h1:3/zPMR6GopaaAWJTZvob/eJ3uujM6vYgB5Hf7y1gg3s=
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d/go.mod h1:TZi5dqCSETF0//y9r5QGBxc7W2udb08uXh6atA++S6Q=
k8s.io/client-go v0.0.0-20240115212153-b13c4f4b008a h1:RBaptHuhamQz3fZpwVBt5784lEqY8NrRLJTeW25WDw4=
k8s.io/client-go v0.0.0-20240115212153-b13c4f4b008a/go.mod h1:RHFbuYYVOW+tqnpm2Bvn3TrprsmyfSrWCkThHfNfMTs=
k8s.io/client-go v0.0.0-20240118092131-aa81cb55f079 h1:OUOuImKaT5CAaXQKtil1TGER6bMwTQW2YhXK/68y0j8=
k8s.io/client-go v0.0.0-20240118092131-aa81cb55f079/go.mod h1:RHFbuYYVOW+tqnpm2Bvn3TrprsmyfSrWCkThHfNfMTs=
k8s.io/component-base v0.0.0-20240112172947-d5ddea0e47af h1:bJSaAg0h8WGd7ikCLu6f3Sk5dCpmdVVJHOpZSSdjnMw=
k8s.io/component-base v0.0.0-20240112172947-d5ddea0e47af/go.mod h1:Thds9qLVzSOQnlg48NUrI852KTAXfgCPELf8JVSjVwE=
k8s.io/klog/v2 v2.120.0 h1:z+q5mfovBj1fKFxiRzsa2DsJLPIVMk/KFL81LMOfK+8=

View File

@ -244,6 +244,10 @@ func TestJSONPatch(t *testing.T) {
expectedError: "the server rejected our request due to an error in our request",
expectedErrorType: metav1.StatusReasonInvalid,
},
{
name: "valid-negative-index-patch",
patch: `[{"op": "test", "value": "foo", "path": "/metadata/finalizers/-1"}]`,
},
} {
p := &patcher{
patchType: types.JSONPatchType,
@ -253,6 +257,7 @@ func TestJSONPatch(t *testing.T) {
codec := codecs.LegacyCodec(examplev1.SchemeGroupVersion)
pod := &examplev1.Pod{}
pod.Name = "podA"
pod.ObjectMeta.Finalizers = []string{"foo"}
versionedJS, err := runtime.Encode(codec, pod)
if err != nil {
t.Errorf("%s: unexpected error: %v", test.name, err)