mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-18 13:57:38 +00:00
k8s.io/client-go/tools/cache/test: wrap the LW with toListWatcherWithUnSupportedWatchListSemantics
This commit is contained in:
@@ -363,7 +363,7 @@ func TestUpdate(t *testing.T) {
|
||||
// everything we've added has been deleted.
|
||||
watchCh := make(chan struct{})
|
||||
_, controller := NewInformer(
|
||||
&ListWatch{
|
||||
toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
watch, err := source.Watch(options)
|
||||
close(watchCh)
|
||||
@@ -372,7 +372,7 @@ func TestUpdate(t *testing.T) {
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
return source.List(options)
|
||||
},
|
||||
},
|
||||
}),
|
||||
&v1.Pod{},
|
||||
0,
|
||||
ResourceEventHandlerFuncs{
|
||||
@@ -733,3 +733,17 @@ func TestDeletionHandlingObjectToName(t *testing.T) {
|
||||
t.Errorf("Expected %#v, got %#v", expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
type listWatchWithUnSupportedWatchListSemanticsWrapper struct {
|
||||
*ListWatch
|
||||
}
|
||||
|
||||
func (lw listWatchWithUnSupportedWatchListSemanticsWrapper) IsWatchListSemanticsUnSupported() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func toListWatcherWithUnSupportedWatchListSemantics(lw *ListWatch) ListerWatcher {
|
||||
return listWatchWithUnSupportedWatchListSemanticsWrapper{
|
||||
lw,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,14 +29,14 @@ import (
|
||||
|
||||
func TestMutationDetector(t *testing.T) {
|
||||
fakeWatch := watch.NewFake()
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
return fakeWatch, nil
|
||||
},
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
return &v1.PodList{}, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
pod := &v1.Pod{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "anything",
|
||||
|
||||
@@ -686,7 +686,7 @@ func TestReflectorListAndWatchWithErrors(t *testing.T) {
|
||||
watchRet, watchErr := item.events, item.watchErr
|
||||
_, ctx := ktesting.NewTestContext(t)
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
if watchErr != nil {
|
||||
return nil, watchErr
|
||||
@@ -710,7 +710,7 @@ func TestReflectorListAndWatchWithErrors(t *testing.T) {
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
return item.list, item.listErr
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
err := r.ListAndWatchWithContext(ctx)
|
||||
if item.listErr != nil && !errors.Is(err, item.listErr) {
|
||||
@@ -991,7 +991,7 @@ func TestReflectorResync(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
fw := watch.NewFake()
|
||||
return fw, nil
|
||||
@@ -999,7 +999,7 @@ func TestReflectorResync(t *testing.T) {
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
return &v1.PodList{ListMeta: metav1.ListMeta{ResourceVersion: "0"}}, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
resyncPeriod := 1 * time.Millisecond
|
||||
r := NewReflector(lw, &v1.Pod{}, s, resyncPeriod)
|
||||
if err := r.ListAndWatchWithContext(ctx); err != nil {
|
||||
@@ -1016,7 +1016,7 @@ func TestReflectorWatchListPageSize(t *testing.T) {
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1043,7 +1043,7 @@ func TestReflectorWatchListPageSize(t *testing.T) {
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
// Set resource version to test pagination also for not consistent reads.
|
||||
r.setLastSyncResourceVersion("10")
|
||||
@@ -1062,7 +1062,7 @@ func TestReflectorNotPaginatingNotConsistentReads(t *testing.T) {
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1082,7 +1082,7 @@ func TestReflectorNotPaginatingNotConsistentReads(t *testing.T) {
|
||||
}
|
||||
return &v1.PodList{ListMeta: metav1.ListMeta{ResourceVersion: "10"}, Items: pods}, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
r.setLastSyncResourceVersion("10")
|
||||
require.NoError(t, r.ListAndWatchWithContext(ctx))
|
||||
@@ -1098,7 +1098,7 @@ func TestReflectorPaginatingNonConsistentReadsIfWatchCacheDisabled(t *testing.T)
|
||||
var cancel func(error)
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1126,7 +1126,7 @@ func TestReflectorPaginatingNonConsistentReadsIfWatchCacheDisabled(t *testing.T)
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
|
||||
// Initial list should initialize paginatedResult in the reflector.
|
||||
@@ -1155,7 +1155,7 @@ func TestReflectorResyncWithResourceVersion(t *testing.T) {
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
listCallRVs := []string{}
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1178,7 +1178,7 @@ func TestReflectorResyncWithResourceVersion(t *testing.T) {
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
|
||||
// Initial list should use RV=0
|
||||
@@ -1216,7 +1216,7 @@ func TestReflectorExpiredExactResourceVersion(t *testing.T) {
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
listCallRVs := []string{}
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1242,7 +1242,7 @@ func TestReflectorExpiredExactResourceVersion(t *testing.T) {
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
|
||||
// Initial list should use RV=0
|
||||
@@ -1276,7 +1276,7 @@ func TestReflectorFullListIfExpired(t *testing.T) {
|
||||
s := NewStore(MetaNamespaceKeyFunc)
|
||||
listCallRVs := []string{}
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1311,7 +1311,7 @@ func TestReflectorFullListIfExpired(t *testing.T) {
|
||||
return nil, err
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
r.WatchListPageSize = 4
|
||||
|
||||
@@ -1351,7 +1351,7 @@ func TestReflectorFullListIfTooLarge(t *testing.T) {
|
||||
listCallRVs := []string{}
|
||||
version := 30
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
// Stop once the reflector begins watching since we're only interested in the list.
|
||||
cancel(errors.New("done"))
|
||||
@@ -1388,7 +1388,7 @@ func TestReflectorFullListIfTooLarge(t *testing.T) {
|
||||
return nil, fmt.Errorf("unexpected List call: %s", options.ResourceVersion)
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
|
||||
// Initial list should use RV=0
|
||||
@@ -1581,14 +1581,14 @@ func TestReflectorResourceVersionUpdate(t *testing.T) {
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
fw := watch.NewFake()
|
||||
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
return fw, nil
|
||||
},
|
||||
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||
return &v1.PodList{ListMeta: metav1.ListMeta{ResourceVersion: "10"}}, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
r := NewReflector(lw, &v1.Pod{}, s, 0)
|
||||
|
||||
makePod := func(rv string) *v1.Pod {
|
||||
@@ -1997,7 +1997,7 @@ func TestReflectorReplacesStoreOnUnsafeDelete(t *testing.T) {
|
||||
}
|
||||
|
||||
var once sync.Once
|
||||
lw := &ListWatch{
|
||||
lw := toListWatcherWithUnSupportedWatchListSemantics(&ListWatch{
|
||||
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||
fw := watch.NewFake()
|
||||
go func() {
|
||||
@@ -2017,7 +2017,7 @@ func TestReflectorReplacesStoreOnUnsafeDelete(t *testing.T) {
|
||||
}
|
||||
return list, nil
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
r := NewReflector(lw, &v1.Pod{}, store, 0)
|
||||
doneCh, stopCh := make(chan struct{}), make(chan struct{})
|
||||
|
||||
Reference in New Issue
Block a user