mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 19:23:40 +00:00
k8s.io/apiserver/storage: add some ResourceVersion validation in GetList unit tests
Signed-off-by: Siyuan Zhang <sizhang@google.com>
This commit is contained in:
parent
338c3a0fc7
commit
baac8bb573
@ -1364,6 +1364,19 @@ func RunTestGetListNonRecursive(ctx context.Context, t *testing.T, store storage
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedOut: []example.Pod{},
|
expectedOut: []example.Pod{},
|
||||||
|
}, {
|
||||||
|
name: "existing key, resourceVersion=current, with not matching pod name",
|
||||||
|
key: key,
|
||||||
|
pred: storage.SelectionPredicate{
|
||||||
|
Label: labels.Everything(),
|
||||||
|
Field: fields.ParseSelectorOrDie("metadata.name!=" + storedObj.Name),
|
||||||
|
GetAttrs: func(obj runtime.Object) (labels.Set, fields.Set, error) {
|
||||||
|
pod := obj.(*example.Pod)
|
||||||
|
return nil, fields.Set{"metadata.name": pod.Name}, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectedOut: []example.Pod{},
|
||||||
|
rv: fmt.Sprintf("%d", currentRV),
|
||||||
}}
|
}}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
@ -1443,12 +1456,14 @@ func RunTestListContinuation(ctx context.Context, t *testing.T, store storage.In
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var currentRV string
|
||||||
for i, ps := range preset {
|
for i, ps := range preset {
|
||||||
preset[i].storedObj = &example.Pod{}
|
preset[i].storedObj = &example.Pod{}
|
||||||
err := store.Create(ctx, ps.key, ps.obj, preset[i].storedObj, 0)
|
err := store.Create(ctx, ps.key, ps.obj, preset[i].storedObj, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Set failed: %v", err)
|
t.Fatalf("Set failed: %v", err)
|
||||||
}
|
}
|
||||||
|
currentRV = preset[i].storedObj.ResourceVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
// test continuations
|
// test continuations
|
||||||
@ -1477,6 +1492,9 @@ func RunTestListContinuation(ctx context.Context, t *testing.T, store storage.In
|
|||||||
t.Fatalf("No continuation token set")
|
t.Fatalf("No continuation token set")
|
||||||
}
|
}
|
||||||
expectNoDiff(t, "incorrect first page", []example.Pod{*preset[0].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect first page", []example.Pod{*preset[0].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 1, 1)
|
validation(t, 1, 1)
|
||||||
}
|
}
|
||||||
@ -1499,6 +1517,9 @@ func RunTestListContinuation(ctx context.Context, t *testing.T, store storage.In
|
|||||||
key, rv, err := storage.DecodeContinue(continueFromSecondItem, "/pods")
|
key, rv, err := storage.DecodeContinue(continueFromSecondItem, "/pods")
|
||||||
t.Logf("continue token was %d %s %v", rv, key, err)
|
t.Logf("continue token was %d %s %v", rv, key, err)
|
||||||
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[1].storedObj, *preset[2].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[1].storedObj, *preset[2].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 0, 2)
|
validation(t, 0, 2)
|
||||||
}
|
}
|
||||||
@ -1517,6 +1538,9 @@ func RunTestListContinuation(ctx context.Context, t *testing.T, store storage.In
|
|||||||
t.Fatalf("No continuation token set")
|
t.Fatalf("No continuation token set")
|
||||||
}
|
}
|
||||||
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[1].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[1].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 1, 1)
|
validation(t, 1, 1)
|
||||||
}
|
}
|
||||||
@ -1536,6 +1560,9 @@ func RunTestListContinuation(ctx context.Context, t *testing.T, store storage.In
|
|||||||
t.Fatalf("Unexpected continuation token set")
|
t.Fatalf("Unexpected continuation token set")
|
||||||
}
|
}
|
||||||
expectNoDiff(t, "incorrect third page", []example.Pod{*preset[2].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect third page", []example.Pod{*preset[2].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 1, 1)
|
validation(t, 1, 1)
|
||||||
}
|
}
|
||||||
@ -1610,12 +1637,14 @@ func RunTestListContinuationWithFilter(ctx context.Context, t *testing.T, store
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var currentRV string
|
||||||
for i, ps := range preset {
|
for i, ps := range preset {
|
||||||
preset[i].storedObj = &example.Pod{}
|
preset[i].storedObj = &example.Pod{}
|
||||||
err := store.Create(ctx, ps.key, ps.obj, preset[i].storedObj, 0)
|
err := store.Create(ctx, ps.key, ps.obj, preset[i].storedObj, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Set failed: %v", err)
|
t.Fatalf("Set failed: %v", err)
|
||||||
}
|
}
|
||||||
|
currentRV = preset[i].storedObj.ResourceVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
// the first list call should try to get 2 items from etcd (and only those items should be returned)
|
// the first list call should try to get 2 items from etcd (and only those items should be returned)
|
||||||
@ -1647,6 +1676,9 @@ func RunTestListContinuationWithFilter(ctx context.Context, t *testing.T, store
|
|||||||
t.Errorf("No continuation token set")
|
t.Errorf("No continuation token set")
|
||||||
}
|
}
|
||||||
expectNoDiff(t, "incorrect first page", []example.Pod{*preset[0].storedObj, *preset[2].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect first page", []example.Pod{*preset[0].storedObj, *preset[2].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 2, 3)
|
validation(t, 2, 3)
|
||||||
}
|
}
|
||||||
@ -1674,6 +1706,9 @@ func RunTestListContinuationWithFilter(ctx context.Context, t *testing.T, store
|
|||||||
t.Errorf("Unexpected continuation token set")
|
t.Errorf("Unexpected continuation token set")
|
||||||
}
|
}
|
||||||
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[3].storedObj}, out.Items)
|
expectNoDiff(t, "incorrect second page", []example.Pod{*preset[3].storedObj}, out.Items)
|
||||||
|
if out.ResourceVersion != currentRV {
|
||||||
|
t.Errorf("Expect output.ResourceVersion = %s, but got %s", currentRV, out.ResourceVersion)
|
||||||
|
}
|
||||||
if validation != nil {
|
if validation != nil {
|
||||||
validation(t, 2, 1)
|
validation(t, 2, 1)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user