Compare commits

..

4 Commits

Author SHA1 Message Date
Kubernetes Publisher
8e41280530 Merge pull request #83920 from liggitt/automated-cherry-pick-of-#83911-upstream-release-1.14
Automated cherry pick of #83911: Remove check causing informers to miss notifications

Kubernetes-commit: b81661a2bbce5cf16a654232cca91abdc15e78b8
2019-10-28 17:54:44 -07:00
matte21
99beff3c74 Remove check causing informers to miss notifications
Fix DeltaFIFO bug that caused the sync delta created by a relist
for object ID X to be dropped if the DeltaFIFO already stored a
Delete delta for X. This caused SharedIndexInformer to miss create
notifications. Also, add unit test to expose the bug.

Kubernetes-commit: d58bacc840d3f116972d80530354635651fad129
2019-10-14 18:19:05 +02:00
Kubernetes Publisher
01520b8320 Merge pull request #83435 from liggitt/automated-cherry-pick-of-#83261-upstream-release-1.14
[1.14] Automated cherry pick of #83261: bump gopkg.in/yaml.v2 v2.2.4

Kubernetes-commit: bdc7ad2ca2d8f54b59ca076981535b769627834d
2019-10-04 10:29:30 +00:00
Jordan Liggitt
f8c0605848 bump gopkg.in/yaml.v2 v2.2.4
Kubernetes-commit: bbb8be5e548b438d4db49822f6019f11910d17ce
2019-10-02 14:46:08 -04:00
3 changed files with 116 additions and 103 deletions

178
Godeps/Godeps.json generated
View File

@@ -268,359 +268,359 @@
},
{
"ImportPath": "gopkg.in/yaml.v2",
"Rev": "5420a8b6744d3b0345ab293f6fcba19c978f1183"
"Rev": "f221b8435cfb71e54062f6c6e99e9ade30b124d5"
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/auditregistration/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta2",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/coordination/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/coordination/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/events/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/networking/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/node/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/node/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/scheduling/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/scheduling/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/storage/v1alpha1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "e3a6b8045b0b303430f6d0c261fd9e35be50800e"
"Rev": "159aefb8556bb8ed4be7631461d1558546d304db"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/naming",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "a9f1d8a9c10182d101acf19b5145c3d4e9299adb"
"Rev": "c5d2f014d689246b84637774317fa0288dd3129b"
},
{
"ImportPath": "k8s.io/klog",

View File

@@ -295,13 +295,6 @@ func isDeletionDup(a, b *Delta) *Delta {
return b
}
// willObjectBeDeletedLocked returns true only if the last delta for the
// given object is Delete. Caller must lock first.
func (f *DeltaFIFO) willObjectBeDeletedLocked(id string) bool {
deltas := f.items[id]
return len(deltas) > 0 && deltas[len(deltas)-1].Type == Deleted
}
// queueActionLocked appends to the delta list for the object.
// Caller must lock first.
func (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) error {
@@ -310,13 +303,6 @@ func (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) err
return KeyError{obj, err}
}
// If object is supposed to be deleted (last event is Deleted),
// then we should ignore Sync events, because it would result in
// recreation of this object.
if actionType == Sync && f.willObjectBeDeletedLocked(id) {
return nil
}
newDeltas := append(f.items[id], Delta{actionType, obj})
newDeltas = dedupDeltas(newDeltas)

View File

@@ -85,6 +85,33 @@ func TestDeltaFIFO_basic(t *testing.T) {
}
}
// TestDeltaFIFO_replaceWithDeleteDeltaIn tests that a `Sync` delta for an
// object `O` with ID `X` is added when .Replace is called and `O` is among the
// replacement objects even if the DeltaFIFO already stores in terminal position
// a delta of type `Delete` for ID `X`. Not adding the `Sync` delta causes
// SharedIndexInformers to miss `O`'s create notification, see https://github.com/kubernetes/kubernetes/issues/83810
// for more details.
func TestDeltaFIFO_replaceWithDeleteDeltaIn(t *testing.T) {
oldObj := mkFifoObj("foo", 1)
newObj := mkFifoObj("foo", 2)
f := NewDeltaFIFO(testFifoObjectKeyFunc, keyLookupFunc(func() []testFifoObject {
return []testFifoObject{oldObj}
}))
f.Delete(oldObj)
f.Replace([]interface{}{newObj}, "")
actualDeltas := Pop(f)
expectedDeltas := Deltas{
Delta{Type: Deleted, Object: oldObj},
Delta{Type: Sync, Object: newObj},
}
if !reflect.DeepEqual(expectedDeltas, actualDeltas) {
t.Errorf("expected %#v, got %#v", expectedDeltas, actualDeltas)
}
}
func TestDeltaFIFO_requeueOnPop(t *testing.T) {
f := NewDeltaFIFO(testFifoObjectKeyFunc, nil)