From 1bc95675b19c68807ed3ae45a24701fc5c2fb935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Tyczy=C5=84ski?= Date: Fri, 4 Nov 2022 15:37:47 +0100 Subject: [PATCH] Fix naming in storage test setup --- .../pkg/storage/testing/store_tests.go | 120 +++++++++--------- .../apiserver/pkg/storage/testing/utils.go | 6 +- 2 files changed, 65 insertions(+), 61 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/testing/store_tests.go b/staging/src/k8s.io/apiserver/pkg/storage/testing/store_tests.go index 8594b2031b6..cb8387d7f64 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/testing/store_tests.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/testing/store_tests.go @@ -482,7 +482,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { t.Errorf("Unexpected error: %v", err) } continueRV, _ := strconv.Atoi(list.ResourceVersion) - secondContinuation, err := storage.EncodeContinue("/two-level/2", "/two-level/", int64(continueRV)) + secondContinuation, err := storage.EncodeContinue("/two-level/foo", "/two-level/", int64(continueRV)) if err != nil { t.Fatal(err) } @@ -533,20 +533,20 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, }, { name: "test List on existing key with resource version set to 0", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: "0", }, { name: "test List on existing key with resource version set before first write, match=Exact", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{}, rv: initialRV, @@ -555,7 +555,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set to 0, match=NotOlderThan", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: "0", @@ -563,7 +563,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set to 0, match=Invalid", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, rv: "0", rvMatch: "Invalid", @@ -571,7 +571,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set before first write, match=NotOlderThan", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: initialRV, @@ -579,7 +579,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set before first write, match=Invalid", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, rv: initialRV, rvMatch: "Invalid", @@ -587,14 +587,14 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set to current resource version", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: list.ResourceVersion, }, { name: "test List on existing key with resource version set to current resource version, match=Exact", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: list.ResourceVersion, @@ -603,7 +603,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List on existing key with resource version set to current resource version, match=NotOlderThan", - prefix: "/one-level/", + prefix: "/first/", pred: storage.Everything, expectedOut: []*example.Pod{preset[0]}, rv: list.ResourceVersion, @@ -617,16 +617,16 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with pod name matching", - prefix: "/one-level/", + prefix: "/first/", pred: storage.SelectionPredicate{ Label: labels.Everything(), - Field: fields.ParseSelectorOrDie("metadata.name!=foo"), + Field: fields.ParseSelectorOrDie("metadata.name!=bar"), }, expectedOut: nil, }, { name: "test List with limit", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -638,7 +638,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with limit at current resource version", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -652,7 +652,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with limit at current resource version and match=Exact", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -667,7 +667,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with limit at resource version 0", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -681,7 +681,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with limit at resource version 0 match=NotOlderThan", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -696,7 +696,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with limit at resource version before first write and match=Exact", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -710,7 +710,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with pregenerated continue token", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -721,7 +721,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "ignores resource version 0 for List with pregenerated continue token", - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -733,7 +733,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { }, { name: "test List with multiple levels of directories and expect flattened result", - prefix: "/two-level/", + prefix: "/second/", pred: storage.Everything, expectedOut: []*example.Pod{preset[1], preset[2]}, }, @@ -741,7 +741,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "test List with filter returning only one item, ensure only a single page returned", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "fourth"), + Field: fields.OneTermEqualSelector("metadata.name", "barfoo"), Label: labels.Everything(), Limit: 1, }, @@ -752,7 +752,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "test List with filter returning only one item, covers the entire list", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "fourth"), + Field: fields.OneTermEqualSelector("metadata.name", "barfoo"), Label: labels.Everything(), Limit: 2, }, @@ -763,7 +763,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "test List with filter returning only one item, covers the entire list, with resource version 0", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "fourth"), + Field: fields.OneTermEqualSelector("metadata.name", "barfoo"), Label: labels.Everything(), Limit: 2, }, @@ -775,7 +775,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "test List with filter returning two items, more pages possible", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "foo"), + Field: fields.OneTermEqualSelector("metadata.name", "bar"), Label: labels.Everything(), Limit: 2, }, @@ -786,7 +786,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns two items split across multiple pages", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "bar"), + Field: fields.OneTermEqualSelector("metadata.name", "foo"), Label: labels.Everything(), Limit: 2, }, @@ -796,10 +796,10 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns one item for last page, ends on last item, not full", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "bar"), + Field: fields.OneTermEqualSelector("metadata.name", "foo"), Label: labels.Everything(), Limit: 2, - Continue: encodeContinueOrDie("z-level/3", int64(continueRV)), + Continue: encodeContinueOrDie("third/barfoo", int64(continueRV)), }, expectedOut: []*example.Pod{preset[4]}, }, @@ -807,10 +807,10 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns one item for last page, starts on last item, full", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "bar"), + Field: fields.OneTermEqualSelector("metadata.name", "foo"), Label: labels.Everything(), Limit: 1, - Continue: encodeContinueOrDie("z-level/3/test-2", int64(continueRV)), + Continue: encodeContinueOrDie("third/barfoo", int64(continueRV)), }, expectedOut: []*example.Pod{preset[4]}, }, @@ -818,10 +818,10 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns one item for last page, starts on last item, partial page", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "bar"), + Field: fields.OneTermEqualSelector("metadata.name", "foo"), Label: labels.Everything(), Limit: 2, - Continue: encodeContinueOrDie("z-level/3/test-2", int64(continueRV)), + Continue: encodeContinueOrDie("third/barfoo", int64(continueRV)), }, expectedOut: []*example.Pod{preset[4]}, }, @@ -829,7 +829,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns two items, page size equal to total list size", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "bar"), + Field: fields.OneTermEqualSelector("metadata.name", "foo"), Label: labels.Everything(), Limit: 5, }, @@ -839,7 +839,7 @@ func RunTestList(ctx context.Context, t *testing.T, store storage.Interface) { name: "filter returns one item, page size equal to total list size", prefix: "/", pred: storage.SelectionPredicate{ - Field: fields.OneTermEqualSelector("metadata.name", "fourth"), + Field: fields.OneTermEqualSelector("metadata.name", "barfoo"), Label: labels.Everything(), Limit: 5, }, @@ -934,7 +934,7 @@ func RunTestListWithoutPaging(ctx context.Context, t *testing.T, store storage.I { name: "test List with limit when paging disabled", disablePaging: true, - prefix: "/two-level/", + prefix: "/second/", pred: storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -986,46 +986,46 @@ func RunTestListWithoutPaging(ctx context.Context, t *testing.T, store storage.I func seedMultiLevelData(ctx context.Context, store storage.Interface) (string, []*example.Pod, error) { // Setup storage with the following structure: // / - // - one-level/ - // | - test + // - first/ + // | - bar // | - // - two-level/ - // | - 1/ - // | | - test - // | | - // | - 2/ - // | - test + // - second/ + // | - bar + // | - foo // | - // - z-level/ - // - 3/ - // | - test - // | - // - 3/ - // - test-2 + // - third/ + // | - barfoo + // | - foo + barFirst := &example.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "first", Name: "bar"}} + barSecond := &example.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "second", Name: "bar"}} + fooSecond := &example.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "second", Name: "foo"}} + barfooThird := &example.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "third", Name: "barfoo"}} + fooThird := &example.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "third", Name: "foo"}} + preset := []struct { key string obj *example.Pod storedObj *example.Pod }{ { - key: "/one-level/test", - obj: &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + key: computePodKey(barFirst), + obj: barFirst, }, { - key: "/two-level/1/test", - obj: &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + key: computePodKey(barSecond), + obj: barSecond, }, { - key: "/two-level/2/test", - obj: &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "bar"}}, + key: computePodKey(fooSecond), + obj: fooSecond, }, { - key: "/z-level/3/test", - obj: &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "fourth"}}, + key: computePodKey(barfooThird), + obj: barfooThird, }, { - key: "/z-level/3/test-2", - obj: &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "bar"}}, + key: computePodKey(fooThird), + obj: fooThird, }, } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/testing/utils.go b/staging/src/k8s.io/apiserver/pkg/storage/testing/utils.go index 79f2654d43a..710ffaf208c 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/testing/utils.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/testing/utils.go @@ -77,11 +77,15 @@ func DeepEqualSafePodSpec() example.PodSpec { } } +func computePodKey(obj *example.Pod) string { + return fmt.Sprintf("/%s/%s", obj.Namespace, obj.Name) +} + // testPropagateStore helps propagates store with objects, automates key generation, and returns // keys and stored objects. func testPropagateStore(ctx context.Context, t *testing.T, store storage.Interface, obj *example.Pod) (string, *example.Pod) { // Setup store with a key and grab the output for returning. - key := fmt.Sprintf("/%s/%s", obj.Namespace, obj.Name) + key := computePodKey(obj) // Setup store with the specified key and grab the output for returning. err := store.Delete(ctx, key, &example.Pod{}, nil, storage.ValidateAllObjectFunc, nil)