diff --git a/go.mod b/go.mod index 14ae353c607..4a131ee0a87 100644 --- a/go.mod +++ b/go.mod @@ -6,10 +6,10 @@ require ( github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20210420163308-c1402a70e2f1 github.com/cert-manager/cert-manager v1.16.3 github.com/cloudevents/conformance v0.4.1 - github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.1 + github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.2 github.com/cloudevents/sdk-go/protocol/mqtt_paho/v2 v2.0.0-20240508060731-1ed9471c98bd github.com/cloudevents/sdk-go/sql/v2 v2.0.0-20240712172937-3ce6b2f1f011 - github.com/cloudevents/sdk-go/v2 v2.16.1 + github.com/cloudevents/sdk-go/v2 v2.16.2 github.com/coreos/go-oidc/v3 v3.9.0 github.com/eclipse/paho.golang v0.12.0 github.com/go-jose/go-jose/v3 v3.0.4 @@ -27,7 +27,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/rickb777/date v1.13.0 github.com/robfig/cron/v3 v3.0.1 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.0 github.com/wavesoftware/go-ensure v1.0.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 @@ -40,7 +40,7 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/net v0.41.0 - golang.org/x/sync v0.15.0 + golang.org/x/sync v0.16.0 k8s.io/api v0.33.3 k8s.io/apiextensions-apiserver v0.33.3 k8s.io/apimachinery v0.33.3 diff --git a/go.sum b/go.sum index 3ffd0af2182..57167174320 100644 --- a/go.sum +++ b/go.sum @@ -102,14 +102,14 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudevents/conformance v0.4.1 h1:MMq+jviOHHNINGWQdvr2yj4g8CdeL59M81ODjEs9M20= github.com/cloudevents/conformance v0.4.1/go.mod h1:bOMTKxs/Aqx4rM/dp+AYvdGTHU6tEa9+R5ORr5cJnqc= -github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.1 h1:bm82HgAOzK9VSrVtC0lWWrrQLJaRYqqAKEIx2jdPQbU= -github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.1/go.mod h1:H46knbku1a1zLw3lAsaWdtVryvG1/QaNZRCRO69elKA= +github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.2 h1:iXVFmEH44Ty0JS0B8NqYqK4joKol+L4axc1+u/35faw= +github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.2/go.mod h1:v1jS/Cp9zkcWZqn1HCQFH0gr/3bETyp44YNYOVLJOBU= github.com/cloudevents/sdk-go/protocol/mqtt_paho/v2 v2.0.0-20240508060731-1ed9471c98bd h1:MGVlnkCz/b0vjfkM5tSVLD+4oaUnYuVEjiW6lAMJ9IM= github.com/cloudevents/sdk-go/protocol/mqtt_paho/v2 v2.0.0-20240508060731-1ed9471c98bd/go.mod h1:s+KZsVZst0bVW6vuKYb8CH49CcSJDO09+ZiIeKzJmqE= github.com/cloudevents/sdk-go/sql/v2 v2.0.0-20240712172937-3ce6b2f1f011 h1:mx6avAROtrV9yTlBBH4Y8IAmspmcz9v44Pkcrjq0tAA= github.com/cloudevents/sdk-go/sql/v2 v2.0.0-20240712172937-3ce6b2f1f011/go.mod h1:oqJ9+L9IXySYb8PN6M/g/K8y/WdVQunmmZhJnlLFcCk= -github.com/cloudevents/sdk-go/v2 v2.16.1 h1:G91iUdqvl88BZ1GYYr9vScTj5zzXSyEuqbfE63gbu9Q= -github.com/cloudevents/sdk-go/v2 v2.16.1/go.mod h1:v/kVOaWjNfbvc6tkhhlkhvLapj8Aa8kvXiH5GiOHCKI= +github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM= +github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -520,8 +520,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8= +github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -735,8 +735,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/openshift/ci-operator/build-image/Dockerfile b/openshift/ci-operator/build-image/Dockerfile index 4ad257e5424..a566455e45c 100755 --- a/openshift/ci-operator/build-image/Dockerfile +++ b/openshift/ci-operator/build-image/Dockerfile @@ -1,17 +1,17 @@ # DO NOT EDIT! Generated Dockerfile. -FROM registry.ci.openshift.org/ocp/4.17:cli-artifacts as tools +FROM registry.ci.openshift.org/ocp/4.19:cli-artifacts as tools # Dockerfile to bootstrap build and test in openshift-ci -FROM registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 as builder +FROM registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 as builder ARG TARGETARCH -COPY --from=tools /usr/share/openshift/linux_$TARGETARCH/oc.rhel8 /usr/bin/oc +COPY --from=tools /usr/share/openshift/linux_$TARGETARCH/oc.rhel9 /usr/bin/oc RUN ln -s /usr/bin/oc /usr/bin/kubectl -RUN yum install -y httpd-tools +RUN dnf install -y httpd-tools RUN wget https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && \ chmod 700 ./get-helm-3 diff --git a/openshift/ci-operator/knative-images/apiserver_receive_adapter/Dockerfile b/openshift/ci-operator/knative-images/apiserver_receive_adapter/Dockerfile index a287b48bb94..3d51fac1d42 100755 --- a/openshift/ci-operator/knative-images/apiserver_receive_adapter/Dockerfile +++ b/openshift/ci-operator/knative-images/apiserver_receive_adapter/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/apiserver_receive_adapter. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-apiserver-receive-adapter-rhel8-container" \ - name="openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-apiserver-receive-adapter-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Apiserver Receive Adapter" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Apiserver Receive Adapter" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Apiserver Receive Adapter" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Apiserver Receive Adapter" \ - io.openshift.tags="apiserver-receive-adapter" + io.openshift.tags="apiserver-receive-adapter" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/apiserver_receive_adapter"] diff --git a/openshift/ci-operator/knative-images/appender/Dockerfile b/openshift/ci-operator/knative-images/appender/Dockerfile index 9746bb9e253..ce568ffb417 100755 --- a/openshift/ci-operator/knative-images/appender/Dockerfile +++ b/openshift/ci-operator/knative-images/appender/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/appender. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-appender-rhel8-container" \ - name="openshift-serverless-1/eventing-appender-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-appender-rhel9-container" \ + name="openshift-serverless-1/eventing-appender-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Appender" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Appender" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Appender" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Appender" \ - io.openshift.tags="appender" + io.openshift.tags="appender" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/appender"] diff --git a/openshift/ci-operator/knative-images/channel_controller/Dockerfile b/openshift/ci-operator/knative-images/channel_controller/Dockerfile index 6a3dcde1afc..57e5b19d4a9 100755 --- a/openshift/ci-operator/knative-images/channel_controller/Dockerfile +++ b/openshift/ci-operator/knative-images/channel_controller/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/in_memory/channel_controller. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-in-memory-channel-controller-rhel8-container" \ - name="openshift-serverless-1/eventing-in-memory-channel-controller-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-in-memory-channel-controller-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-in-memory-channel-controller-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Controller" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Controller" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Controller" \ io.k8s.description="Red Hat OpenShift Serverless Eventing In Memory Channel Controller" \ - io.openshift.tags="in-memory-channel-controller" + io.openshift.tags="in-memory-channel-controller" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/channel_controller"] diff --git a/openshift/ci-operator/knative-images/channel_dispatcher/Dockerfile b/openshift/ci-operator/knative-images/channel_dispatcher/Dockerfile index 56d5c718f47..a222e24b852 100755 --- a/openshift/ci-operator/knative-images/channel_dispatcher/Dockerfile +++ b/openshift/ci-operator/knative-images/channel_dispatcher/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/in_memory/channel_dispatcher. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-in-memory-channel-dispatcher-rhel8-container" \ - name="openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-channel-dispatcher-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-channel-dispatcher-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Dispatcher" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Dispatcher" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing In Memory Channel Dispatcher" \ io.k8s.description="Red Hat OpenShift Serverless Eventing In Memory Channel Dispatcher" \ - io.openshift.tags="in-memory-channel-dispatcher" + io.openshift.tags="in-memory-channel-dispatcher" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/channel_dispatcher"] diff --git a/openshift/ci-operator/knative-images/controller/Dockerfile b/openshift/ci-operator/knative-images/controller/Dockerfile index 8f077efaaed..9053c5b1751 100755 --- a/openshift/ci-operator/knative-images/controller/Dockerfile +++ b/openshift/ci-operator/knative-images/controller/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/controller. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-controller-rhel8-container" \ - name="openshift-serverless-1/eventing-controller-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-controller-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-controller-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Controller" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Controller" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Controller" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Controller" \ - io.openshift.tags="controller" + io.openshift.tags="controller" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/controller"] diff --git a/openshift/ci-operator/knative-images/event_display/Dockerfile b/openshift/ci-operator/knative-images/event_display/Dockerfile index 730f13e32fb..f0ba3ef40c4 100755 --- a/openshift/ci-operator/knative-images/event_display/Dockerfile +++ b/openshift/ci-operator/knative-images/event_display/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/event_display. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-event-display-rhel8-container" \ - name="openshift-serverless-1/eventing-event-display-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-event-display-rhel9-container" \ + name="openshift-serverless-1/eventing-event-display-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Event Display" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Event Display" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Event Display" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Event Display" \ - io.openshift.tags="event-display" + io.openshift.tags="event-display" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/event_display"] diff --git a/openshift/ci-operator/knative-images/filter/Dockerfile b/openshift/ci-operator/knative-images/filter/Dockerfile index a0f92367434..101b9aac705 100755 --- a/openshift/ci-operator/knative-images/filter/Dockerfile +++ b/openshift/ci-operator/knative-images/filter/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/broker/filter. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-broker-filter-rhel8-container" \ - name="openshift-serverless-1/eventing-broker-filter-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-filter-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-filter-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Broker Filter" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Broker Filter" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Broker Filter" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Broker Filter" \ - io.openshift.tags="broker-filter" + io.openshift.tags="broker-filter" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/filter"] diff --git a/openshift/ci-operator/knative-images/heartbeats/Dockerfile b/openshift/ci-operator/knative-images/heartbeats/Dockerfile index 7e128388d9d..b320e4e8775 100755 --- a/openshift/ci-operator/knative-images/heartbeats/Dockerfile +++ b/openshift/ci-operator/knative-images/heartbeats/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/heartbeats. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-heartbeats-rhel8-container" \ - name="openshift-serverless-1/eventing-heartbeats-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-heartbeats-rhel9-container" \ + name="openshift-serverless-1/eventing-heartbeats-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Heartbeats" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Heartbeats" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Heartbeats" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Heartbeats" \ - io.openshift.tags="heartbeats" + io.openshift.tags="heartbeats" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/heartbeats"] diff --git a/openshift/ci-operator/knative-images/heartbeats_receiver/Dockerfile b/openshift/ci-operator/knative-images/heartbeats_receiver/Dockerfile index ace60016646..5f900ebcf67 100755 --- a/openshift/ci-operator/knative-images/heartbeats_receiver/Dockerfile +++ b/openshift/ci-operator/knative-images/heartbeats_receiver/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/heartbeats_receiver. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-heartbeats-receiver-rhel8-container" \ - name="openshift-serverless-1/eventing-heartbeats-receiver-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-heartbeats-receiver-rhel9-container" \ + name="openshift-serverless-1/eventing-heartbeats-receiver-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Heartbeats Receiver" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Heartbeats Receiver" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Heartbeats Receiver" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Heartbeats Receiver" \ - io.openshift.tags="heartbeats-receiver" + io.openshift.tags="heartbeats-receiver" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/heartbeats_receiver"] diff --git a/openshift/ci-operator/knative-images/ingress/Dockerfile b/openshift/ci-operator/knative-images/ingress/Dockerfile index e135a60b003..528cfbf51ef 100755 --- a/openshift/ci-operator/knative-images/ingress/Dockerfile +++ b/openshift/ci-operator/knative-images/ingress/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/broker/ingress. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-broker-ingress-rhel8-container" \ - name="openshift-serverless-1/eventing-broker-ingress-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-ingress-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-ingress-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Broker Ingress" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Broker Ingress" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Broker Ingress" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Broker Ingress" \ - io.openshift.tags="broker-ingress" + io.openshift.tags="broker-ingress" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/ingress"] diff --git a/openshift/ci-operator/knative-images/jobsink/Dockerfile b/openshift/ci-operator/knative-images/jobsink/Dockerfile index 77c98e3daa0..6a26759b8ea 100755 --- a/openshift/ci-operator/knative-images/jobsink/Dockerfile +++ b/openshift/ci-operator/knative-images/jobsink/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/jobsink. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-jobsink-rhel8-container" \ - name="openshift-serverless-1/eventing-jobsink-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-jobsink-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-jobsink-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Jobsink" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Jobsink" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Jobsink" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Jobsink" \ - io.openshift.tags="jobsink" + io.openshift.tags="jobsink" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/jobsink"] diff --git a/openshift/ci-operator/knative-images/migrate/Dockerfile b/openshift/ci-operator/knative-images/migrate/Dockerfile index 2717bccddd7..f71ef0c4a32 100755 --- a/openshift/ci-operator/knative-images/migrate/Dockerfile +++ b/openshift/ci-operator/knative-images/migrate/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for vendor/knative.dev/pkg/apiextensions/storageversion/cmd/migrate. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-migrate-rhel8-container" \ - name="openshift-serverless-1/eventing-migrate-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-migrate-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-migrate-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Migrate" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Migrate" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Migrate" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Migrate" \ - io.openshift.tags="migrate" + io.openshift.tags="migrate" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/migrate"] diff --git a/openshift/ci-operator/knative-images/mqttsource/Dockerfile b/openshift/ci-operator/knative-images/mqttsource/Dockerfile index 14759eb84c9..e03a8407063 100755 --- a/openshift/ci-operator/knative-images/mqttsource/Dockerfile +++ b/openshift/ci-operator/knative-images/mqttsource/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/mqttsource. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-mqttsource-rhel8-container" \ - name="openshift-serverless-1/eventing-mqttsource-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-mqttsource-rhel9-container" \ + name="openshift-serverless-1/eventing-mqttsource-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Mqttsource" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Mqttsource" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Mqttsource" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Mqttsource" \ - io.openshift.tags="mqttsource" + io.openshift.tags="mqttsource" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/mqttsource"] diff --git a/openshift/ci-operator/knative-images/mtchannel_broker/Dockerfile b/openshift/ci-operator/knative-images/mtchannel_broker/Dockerfile index 660396e31b3..ef90691e53c 100755 --- a/openshift/ci-operator/knative-images/mtchannel_broker/Dockerfile +++ b/openshift/ci-operator/knative-images/mtchannel_broker/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/mtchannel_broker. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-mtchannel-broker-rhel8-container" \ - name="openshift-serverless-1/eventing-mtchannel-broker-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-mtchannel-broker-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-mtchannel-broker-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Mtchannel Broker" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Mtchannel Broker" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Mtchannel Broker" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Mtchannel Broker" \ - io.openshift.tags="mtchannel-broker" + io.openshift.tags="mtchannel-broker" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/mtchannel_broker"] diff --git a/openshift/ci-operator/knative-images/mtping/Dockerfile b/openshift/ci-operator/knative-images/mtping/Dockerfile index 2ac101a1ad1..0000dff1dde 100755 --- a/openshift/ci-operator/knative-images/mtping/Dockerfile +++ b/openshift/ci-operator/knative-images/mtping/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/mtping. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-mtping-rhel8-container" \ - name="openshift-serverless-1/eventing-mtping-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-mtping-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-mtping-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Mtping" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Mtping" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Mtping" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Mtping" \ - io.openshift.tags="mtping" + io.openshift.tags="mtping" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/mtping"] diff --git a/openshift/ci-operator/knative-images/pong/Dockerfile b/openshift/ci-operator/knative-images/pong/Dockerfile index 67450bcd641..f2c0201dc03 100755 --- a/openshift/ci-operator/knative-images/pong/Dockerfile +++ b/openshift/ci-operator/knative-images/pong/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/pong. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-pong-rhel8-container" \ - name="openshift-serverless-1/eventing-pong-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-pong-rhel9-container" \ + name="openshift-serverless-1/eventing-pong-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Pong" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Pong" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Pong" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Pong" \ - io.openshift.tags="pong" + io.openshift.tags="pong" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/pong"] diff --git a/openshift/ci-operator/knative-images/schema/Dockerfile b/openshift/ci-operator/knative-images/schema/Dockerfile index 8a5ec94b49f..2a1b52dd25d 100755 --- a/openshift/ci-operator/knative-images/schema/Dockerfile +++ b/openshift/ci-operator/knative-images/schema/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/schema. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-schema-rhel8-container" \ - name="openshift-serverless-1/eventing-schema-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-schema-rhel9-container" \ + name="openshift-serverless-1/eventing-schema-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Schema" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Schema" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Schema" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Schema" \ - io.openshift.tags="schema" + io.openshift.tags="schema" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/schema"] diff --git a/openshift/ci-operator/knative-images/webhook/Dockerfile b/openshift/ci-operator/knative-images/webhook/Dockerfile index d4c67356657..d79b0fd9feb 100755 --- a/openshift/ci-operator/knative-images/webhook/Dockerfile +++ b/openshift/ci-operator/knative-images/webhook/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/webhook. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-webhook-rhel8-container" \ - name="openshift-serverless-1/eventing-webhook-rhel8" \ + com.redhat.component="openshift-serverless-1-kn-eventing-webhook-rhel9-container" \ + name="openshift-serverless-1/kn-eventing-webhook-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Webhook" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Webhook" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Webhook" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Webhook" \ - io.openshift.tags="webhook" + io.openshift.tags="webhook" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/webhook"] diff --git a/openshift/ci-operator/knative-images/websocketsource/Dockerfile b/openshift/ci-operator/knative-images/websocketsource/Dockerfile index c5c559b9677..cf0d96034d7 100755 --- a/openshift/ci-operator/knative-images/websocketsource/Dockerfile +++ b/openshift/ci-operator/knative-images/websocketsource/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for cmd/websocketsource. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-websocketsource-rhel8-container" \ - name="openshift-serverless-1/eventing-websocketsource-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-websocketsource-rhel9-container" \ + name="openshift-serverless-1/eventing-websocketsource-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Websocketsource" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Websocketsource" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Websocketsource" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Websocketsource" \ - io.openshift.tags="websocketsource" + io.openshift.tags="websocketsource" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/websocketsource"] diff --git a/openshift/ci-operator/knative-test-images/event-sender/Dockerfile b/openshift/ci-operator/knative-test-images/event-sender/Dockerfile index 68d06bb3ac7..488fa82c228 100755 --- a/openshift/ci-operator/knative-test-images/event-sender/Dockerfile +++ b/openshift/ci-operator/knative-test-images/event-sender/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/event-sender. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-event-sender-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-event-sender-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-event-sender-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-event-sender-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Event Sender" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Event Sender" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Event Sender" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Event Sender" \ - io.openshift.tags="test-test-images-event-sender" + io.openshift.tags="test-test-images-event-sender" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/event-sender"] diff --git a/openshift/ci-operator/knative-test-images/eventshub/Dockerfile b/openshift/ci-operator/knative-test-images/eventshub/Dockerfile index 1345b4e8dc2..91939f92e38 100755 --- a/openshift/ci-operator/knative-test-images/eventshub/Dockerfile +++ b/openshift/ci-operator/knative-test-images/eventshub/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for vendor/knative.dev/reconciler-test/cmd/eventshub. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-eventshub-rhel8-container" \ - name="openshift-serverless-1/eventing-eventshub-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-eventshub-rhel9-container" \ + name="openshift-serverless-1/eventing-eventshub-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Eventshub" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Eventshub" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Eventshub" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Eventshub" \ - io.openshift.tags="eventshub" + io.openshift.tags="eventshub" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/eventshub"] diff --git a/openshift/ci-operator/knative-test-images/print/Dockerfile b/openshift/ci-operator/knative-test-images/print/Dockerfile index 368e6377191..0e33d0a54de 100755 --- a/openshift/ci-operator/knative-test-images/print/Dockerfile +++ b/openshift/ci-operator/knative-test-images/print/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/print. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-print-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-print-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-print-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-print-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Print" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Print" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Print" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Print" \ - io.openshift.tags="test-test-images-print" + io.openshift.tags="test-test-images-print" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/print"] diff --git a/openshift/ci-operator/knative-test-images/recordevents/Dockerfile b/openshift/ci-operator/knative-test-images/recordevents/Dockerfile index 76298def7aa..91c48d0124f 100755 --- a/openshift/ci-operator/knative-test-images/recordevents/Dockerfile +++ b/openshift/ci-operator/knative-test-images/recordevents/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/recordevents. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-recordevents-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-recordevents-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-recordevents-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-recordevents-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Recordevents" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Recordevents" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Recordevents" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Recordevents" \ - io.openshift.tags="test-test-images-recordevents" + io.openshift.tags="test-test-images-recordevents" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/recordevents"] diff --git a/openshift/ci-operator/knative-test-images/request-sender/Dockerfile b/openshift/ci-operator/knative-test-images/request-sender/Dockerfile index f76a660bd06..670edc69880 100755 --- a/openshift/ci-operator/knative-test-images/request-sender/Dockerfile +++ b/openshift/ci-operator/knative-test-images/request-sender/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/request-sender. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-request-sender-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-request-sender-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-request-sender-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-request-sender-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Request Sender" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Request Sender" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Request Sender" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Request Sender" \ - io.openshift.tags="test-test-images-request-sender" + io.openshift.tags="test-test-images-request-sender" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/request-sender"] diff --git a/openshift/ci-operator/knative-test-images/wathola-fetcher/Dockerfile b/openshift/ci-operator/knative-test-images/wathola-fetcher/Dockerfile index 804143f8f40..a8578cf2b7b 100755 --- a/openshift/ci-operator/knative-test-images/wathola-fetcher/Dockerfile +++ b/openshift/ci-operator/knative-test-images/wathola-fetcher/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/wathola-fetcher. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-fetcher-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-wathola-fetcher-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-fetcher-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-wathola-fetcher-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Fetcher" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Fetcher" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Fetcher" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Wathola Fetcher" \ - io.openshift.tags="test-test-images-wathola-fetcher" + io.openshift.tags="test-test-images-wathola-fetcher" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/wathola-fetcher"] diff --git a/openshift/ci-operator/knative-test-images/wathola-forwarder/Dockerfile b/openshift/ci-operator/knative-test-images/wathola-forwarder/Dockerfile index 9a6ffb9b326..7369ef51780 100755 --- a/openshift/ci-operator/knative-test-images/wathola-forwarder/Dockerfile +++ b/openshift/ci-operator/knative-test-images/wathola-forwarder/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/wathola-forwarder. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-forwarder-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-wathola-forwarder-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-forwarder-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-wathola-forwarder-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Forwarder" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Forwarder" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Forwarder" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Wathola Forwarder" \ - io.openshift.tags="test-test-images-wathola-forwarder" + io.openshift.tags="test-test-images-wathola-forwarder" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/wathola-forwarder"] diff --git a/openshift/ci-operator/knative-test-images/wathola-receiver/Dockerfile b/openshift/ci-operator/knative-test-images/wathola-receiver/Dockerfile index 30ffb874e41..3321c023d38 100755 --- a/openshift/ci-operator/knative-test-images/wathola-receiver/Dockerfile +++ b/openshift/ci-operator/knative-test-images/wathola-receiver/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/wathola-receiver. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-receiver-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-wathola-receiver-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-receiver-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-wathola-receiver-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Receiver" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Receiver" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Receiver" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Wathola Receiver" \ - io.openshift.tags="test-test-images-wathola-receiver" + io.openshift.tags="test-test-images-wathola-receiver" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/wathola-receiver"] diff --git a/openshift/ci-operator/knative-test-images/wathola-sender/Dockerfile b/openshift/ci-operator/knative-test-images/wathola-sender/Dockerfile index 6fcb2d7776d..3a1aca6ac2d 100755 --- a/openshift/ci-operator/knative-test-images/wathola-sender/Dockerfile +++ b/openshift/ci-operator/knative-test-images/wathola-sender/Dockerfile @@ -1,6 +1,6 @@ # DO NOT EDIT! Generated Dockerfile for test/test_images/wathola-sender. -ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.24-openshift-4.20 -ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal +ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal FROM $GO_BUILDER as builder @@ -23,14 +23,17 @@ COPY LICENSE /licenses/ USER 65532 LABEL \ - com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-sender-rhel8-container" \ - name="openshift-serverless-1/eventing-test-test-images-wathola-sender-rhel8" \ + com.redhat.component="openshift-serverless-1-eventing-test-test-images-wathola-sender-rhel9-container" \ + name="openshift-serverless-1/eventing-test-test-images-wathola-sender-rhel9" \ version=$VERSION \ summary="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Sender" \ maintainer="serverless-support@redhat.com" \ description="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Sender" \ io.k8s.display-name="Red Hat OpenShift Serverless 1 Eventing Test Test Images Wathola Sender" \ io.k8s.description="Red Hat OpenShift Serverless Eventing Test Test Images Wathola Sender" \ - io.openshift.tags="test-test-images-wathola-sender" + io.openshift.tags="test-test-images-wathola-sender" \ + vendor="Red Hat, Inc." \ + release=$VERSION \ + cpe="cpe:/a:redhat:openshift_serverless:1.39::el9" ENTRYPOINT ["/usr/bin/wathola-sender"] diff --git a/rpms.lock.yaml b/rpms.lock.yaml index 0fbc0ec3337..26319cac2d7 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -4,225 +4,329 @@ lockfileVendor: redhat arches: - arch: aarch64 packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/appstream/os/Packages/s/socat-1.7.4.1-2.el8_10.aarch64.rpm - repoid: ubi-8-for-aarch64-appstream-rpms - size: 324648 - checksum: sha256:d1cfd41584d8a3ccb3b497178354f76d678c14214f30e867f7d55feb8bf6f35c + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/s/socat-1.7.4.1-8.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-appstream-rpms + size: 307483 + checksum: sha256:4c98bfb9ce0f972e133e7f1ec547e0f87dd901f5213b7e59eafd9befed843884 name: socat - evr: 1.7.4.1-2.el8_10 - sourcerpm: socat-1.7.4.1-2.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/os/Packages/r/rsync-3.1.3-23.el8_10.aarch64.rpm - repoid: ubi-8-for-aarch64-baseos-rpms - size: 412260 - checksum: sha256:9f0b9250f1c22a3869fe244c88a92ca4df4ebf53da95992408282d3243d1a6a0 + evr: 1.7.4.1-8.el9 + sourcerpm: socat-1.7.4.1-8.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/r/rsync-3.2.5-3.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 416293 + checksum: sha256:99235a7555f6454898ebbcdcf927ebed68e3a60599c9226b9d1d60578d292878 name: rsync - evr: 3.1.3-23.el8_10 - sourcerpm: rsync-3.1.3-23.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/os/Packages/t/tar-1.30-10.el8_10.aarch64.rpm - repoid: ubi-8-for-aarch64-baseos-rpms - size: 850208 - checksum: sha256:faa096f95002ea8d8b07b7456fc7bc6cb096d998b5cc5930a01534dc15e02abb + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/t/tar-1.34-7.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 900197 + checksum: sha256:44552dea889d350403c3074a33d7cb274b3f57553e47db998745df13f931b458 name: tar - evr: 2:1.30-10.el8_10 - sourcerpm: tar-1.30-10.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/os/Packages/t/tzdata-2025b-1.el8.noarch.rpm - repoid: ubi-8-for-aarch64-baseos-rpms - size: 488428 - checksum: sha256:338539f7f0cd2770694153af81e2e65121b050a1bb555ad66a6fb6f562732602 + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/t/tzdata-2025b-2.el9.noarch.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 922567 + checksum: sha256:a1f5f4835bbc277c81e5a2bd0f1639bbb522c6d7029ad707955a0ebe66c41fe6 name: tzdata - evr: 2025b-1.el8 - sourcerpm: tzdata-2025b-1.el8.src.rpm + evr: 2025b-2.el9 + sourcerpm: tzdata-2025b-2.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/unzip-6.0-59.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 182284 + checksum: sha256:dc0b3bbb5e028ae1473afac598705038bb166bf848a3b80e632950746c111ba0 + name: unzip + evr: 6.0-59.el9 + sourcerpm: unzip-6.0-59.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/z/zip-3.0-35.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 269791 + checksum: sha256:4dfc9b2afc08b96cba0a8c7f06be5691ec26f2104d9c1a100aa0432e30aac3cd + name: zip + evr: 3.0-35.el9 + sourcerpm: zip-3.0-35.el9.src.rpm source: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-2.el8_10.src.rpm - repoid: ubi-8-for-aarch64-appstream-source-rpms - size: 667200 - checksum: sha256:785c6b46c00a71d7e711dd1d60c64c1a6e3d80b395e459a3beaf780a3b489120 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-8.el9.src.rpm + repoid: ubi-9-for-aarch64-appstream-source-rpms + size: 664676 + checksum: sha256:4d83732bbf754e00d15133e15673230f41fbdae4a1cc27fba1cfb84744d0bf83 name: socat - evr: 1.7.4.1-2.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/source/SRPMS/Packages/r/rsync-3.1.3-23.el8_10.src.rpm - repoid: ubi-8-for-aarch64-baseos-source-rpms - size: 1154148 - checksum: sha256:f21aa8abbea6df3016d82d6db3e8b9abce2a068de40373d5ad6fa0926f0ca24a + evr: 1.7.4.1-8.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 name: rsync - evr: 3.1.3-23.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/source/SRPMS/Packages/t/tar-1.30-10.el8_10.src.rpm - repoid: ubi-8-for-aarch64-baseos-source-rpms - size: 2172709 - checksum: sha256:bf8f8a0c5c47b1a35b732c9e2b9afbd45171a70355f0b93526deb654ed55b566 + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 name: tar - evr: 2:1.30-10.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/aarch64/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el8.src.rpm - repoid: ubi-8-for-aarch64-baseos-source-rpms - size: 946701 - checksum: sha256:2f0ba51d371713287a690d9d1635b534113258aa2571862603d52870c1c8b60d + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/t/tzdata-2025b-2.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 900065 + checksum: sha256:9324e3b4fa3223e9c42a0185a873c670566b3c656f8492f19d3d5d605a9b921f name: tzdata - evr: 2025b-1.el8 + evr: 2025b-2.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/u/unzip-6.0-59.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 1433595 + checksum: sha256:299d7451195ccb37d8eb90f1870e00eb5ff4c12716c933d4c1657949f0d6aaf8 + name: unzip + evr: 6.0-59.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/z/zip-3.0-35.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 1137410 + checksum: sha256:416b6957a4365204cfb2ba9e5b9b9f21075b615114c6afe46c83166de258bb5d + name: zip + evr: 3.0-35.el9 module_metadata: [] - arch: ppc64le packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/appstream/os/Packages/s/socat-1.7.4.1-2.el8_10.ppc64le.rpm - repoid: ubi-8-for-ppc64le-appstream-rpms - size: 337688 - checksum: sha256:c4dc39953e219de149c771fbdc37fd8d5988c1036978679b76b22832fcb63321 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/s/socat-1.7.4.1-8.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-appstream-rpms + size: 319998 + checksum: sha256:224f47b0e5a9757cc7df97d56910d3bbe9580bbedf7e1d20dd965cabdc5c7b58 name: socat - evr: 1.7.4.1-2.el8_10 - sourcerpm: socat-1.7.4.1-2.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/os/Packages/r/rsync-3.1.3-23.el8_10.ppc64le.rpm - repoid: ubi-8-for-ppc64le-baseos-rpms - size: 445088 - checksum: sha256:c08cc764bf0474035c25b862d67c2a83c92da7b4d93f6a7b739b42bf64a863c9 + evr: 1.7.4.1-8.el9 + sourcerpm: socat-1.7.4.1-8.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/r/rsync-3.2.5-3.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 449938 + checksum: sha256:1fd8762ad73a60556c9808a5bf2a9d964965adec91c026ef27058266dc75e1f0 name: rsync - evr: 3.1.3-23.el8_10 - sourcerpm: rsync-3.1.3-23.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/os/Packages/t/tar-1.30-10.el8_10.ppc64le.rpm - repoid: ubi-8-for-ppc64le-baseos-rpms - size: 879004 - checksum: sha256:759b26009945a72d4d5813efcaf17d9ff2494f1031bcd57220acff067a33853e + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/t/tar-1.34-7.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 937724 + checksum: sha256:f2cc206dfacc9981fad6cf33600ad28bcd1c573f16d8c18523dc9df52ca90660 name: tar - evr: 2:1.30-10.el8_10 - sourcerpm: tar-1.30-10.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/os/Packages/t/tzdata-2025b-1.el8.noarch.rpm - repoid: ubi-8-for-ppc64le-baseos-rpms - size: 488428 - checksum: sha256:338539f7f0cd2770694153af81e2e65121b050a1bb555ad66a6fb6f562732602 + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/t/tzdata-2025b-2.el9.noarch.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 922567 + checksum: sha256:a1f5f4835bbc277c81e5a2bd0f1639bbb522c6d7029ad707955a0ebe66c41fe6 name: tzdata - evr: 2025b-1.el8 - sourcerpm: tzdata-2025b-1.el8.src.rpm + evr: 2025b-2.el9 + sourcerpm: tzdata-2025b-2.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/u/unzip-6.0-59.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 190400 + checksum: sha256:08da7102308f1ad028360ccdf78d0de9c3ff16c9cdb2aab71d7182f600f933be + name: unzip + evr: 6.0-59.el9 + sourcerpm: unzip-6.0-59.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/z/zip-3.0-35.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 282944 + checksum: sha256:9af29cefba99330a06abd6ace7eb1f3ea77d1b2d50a2cd6d4e3fade1e603f26f + name: zip + evr: 3.0-35.el9 + sourcerpm: zip-3.0-35.el9.src.rpm source: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-2.el8_10.src.rpm - repoid: ubi-8-for-ppc64le-appstream-source-rpms - size: 667200 - checksum: sha256:785c6b46c00a71d7e711dd1d60c64c1a6e3d80b395e459a3beaf780a3b489120 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-8.el9.src.rpm + repoid: ubi-9-for-ppc64le-appstream-source-rpms + size: 664676 + checksum: sha256:4d83732bbf754e00d15133e15673230f41fbdae4a1cc27fba1cfb84744d0bf83 name: socat - evr: 1.7.4.1-2.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/source/SRPMS/Packages/r/rsync-3.1.3-23.el8_10.src.rpm - repoid: ubi-8-for-ppc64le-baseos-source-rpms - size: 1154148 - checksum: sha256:f21aa8abbea6df3016d82d6db3e8b9abce2a068de40373d5ad6fa0926f0ca24a + evr: 1.7.4.1-8.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 name: rsync - evr: 3.1.3-23.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/source/SRPMS/Packages/t/tar-1.30-10.el8_10.src.rpm - repoid: ubi-8-for-ppc64le-baseos-source-rpms - size: 2172709 - checksum: sha256:bf8f8a0c5c47b1a35b732c9e2b9afbd45171a70355f0b93526deb654ed55b566 + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 name: tar - evr: 2:1.30-10.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/ppc64le/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el8.src.rpm - repoid: ubi-8-for-ppc64le-baseos-source-rpms - size: 946701 - checksum: sha256:2f0ba51d371713287a690d9d1635b534113258aa2571862603d52870c1c8b60d + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/t/tzdata-2025b-2.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 900065 + checksum: sha256:9324e3b4fa3223e9c42a0185a873c670566b3c656f8492f19d3d5d605a9b921f name: tzdata - evr: 2025b-1.el8 + evr: 2025b-2.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/u/unzip-6.0-59.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 1433595 + checksum: sha256:299d7451195ccb37d8eb90f1870e00eb5ff4c12716c933d4c1657949f0d6aaf8 + name: unzip + evr: 6.0-59.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/z/zip-3.0-35.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 1137410 + checksum: sha256:416b6957a4365204cfb2ba9e5b9b9f21075b615114c6afe46c83166de258bb5d + name: zip + evr: 3.0-35.el9 module_metadata: [] - arch: s390x packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/appstream/os/Packages/s/socat-1.7.4.1-2.el8_10.s390x.rpm - repoid: ubi-8-for-s390x-appstream-rpms - size: 320648 - checksum: sha256:0a2ef4ac2be93e4979b538ea7662e8331d29fb67fdabd3e42fd0803cf4b16562 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/s/socat-1.7.4.1-8.el9.s390x.rpm + repoid: ubi-9-for-s390x-appstream-rpms + size: 304464 + checksum: sha256:78b7afbffcd7072e7389cfa8a42131da19beaaac1c19af264c7d8a0150ae5077 name: socat - evr: 1.7.4.1-2.el8_10 - sourcerpm: socat-1.7.4.1-2.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/os/Packages/r/rsync-3.1.3-23.el8_10.s390x.rpm - repoid: ubi-8-for-s390x-baseos-rpms - size: 415624 - checksum: sha256:46d31bfa61f4ddf7d214645e101009807aa14d164879780cea4668aaee5f4cee + evr: 1.7.4.1-8.el9 + sourcerpm: socat-1.7.4.1-8.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/r/rsync-3.2.5-3.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 418877 + checksum: sha256:2d1a87e86fb23bc665b7c7ce8775c73d500ef6e152f15c78493b95638dfb7925 name: rsync - evr: 3.1.3-23.el8_10 - sourcerpm: rsync-3.1.3-23.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/os/Packages/t/tar-1.30-10.el8_10.s390x.rpm - repoid: ubi-8-for-s390x-baseos-rpms - size: 853692 - checksum: sha256:783728be13c9e911d2d899b49b8b9be51723359078e8593c7475aeb506b350af + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/t/tar-1.34-7.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 902370 + checksum: sha256:fa8758bac6a56830de66ad1ab623c87768065bcc6f8242faa42ac4198260d456 name: tar - evr: 2:1.30-10.el8_10 - sourcerpm: tar-1.30-10.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/os/Packages/t/tzdata-2025b-1.el8.noarch.rpm - repoid: ubi-8-for-s390x-baseos-rpms - size: 488428 - checksum: sha256:338539f7f0cd2770694153af81e2e65121b050a1bb555ad66a6fb6f562732602 + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/t/tzdata-2025b-2.el9.noarch.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 922567 + checksum: sha256:a1f5f4835bbc277c81e5a2bd0f1639bbb522c6d7029ad707955a0ebe66c41fe6 name: tzdata - evr: 2025b-1.el8 - sourcerpm: tzdata-2025b-1.el8.src.rpm + evr: 2025b-2.el9 + sourcerpm: tzdata-2025b-2.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/u/unzip-6.0-59.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 180857 + checksum: sha256:0c4ec86b4b30a4309f6c8649ab3f23d8a351ea82d301e036e27b8dbb08349c13 + name: unzip + evr: 6.0-59.el9 + sourcerpm: unzip-6.0-59.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/z/zip-3.0-35.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 276776 + checksum: sha256:ac9f81e15ac141940073706ed38e3efd1d2278642d80dbd2945b28f0e6ffae62 + name: zip + evr: 3.0-35.el9 + sourcerpm: zip-3.0-35.el9.src.rpm source: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-2.el8_10.src.rpm - repoid: ubi-8-for-s390x-appstream-source-rpms - size: 667200 - checksum: sha256:785c6b46c00a71d7e711dd1d60c64c1a6e3d80b395e459a3beaf780a3b489120 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-8.el9.src.rpm + repoid: ubi-9-for-s390x-appstream-source-rpms + size: 664676 + checksum: sha256:4d83732bbf754e00d15133e15673230f41fbdae4a1cc27fba1cfb84744d0bf83 name: socat - evr: 1.7.4.1-2.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/source/SRPMS/Packages/r/rsync-3.1.3-23.el8_10.src.rpm - repoid: ubi-8-for-s390x-baseos-source-rpms - size: 1154148 - checksum: sha256:f21aa8abbea6df3016d82d6db3e8b9abce2a068de40373d5ad6fa0926f0ca24a + evr: 1.7.4.1-8.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 name: rsync - evr: 3.1.3-23.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/source/SRPMS/Packages/t/tar-1.30-10.el8_10.src.rpm - repoid: ubi-8-for-s390x-baseos-source-rpms - size: 2172709 - checksum: sha256:bf8f8a0c5c47b1a35b732c9e2b9afbd45171a70355f0b93526deb654ed55b566 + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 name: tar - evr: 2:1.30-10.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/s390x/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el8.src.rpm - repoid: ubi-8-for-s390x-baseos-source-rpms - size: 946701 - checksum: sha256:2f0ba51d371713287a690d9d1635b534113258aa2571862603d52870c1c8b60d + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/t/tzdata-2025b-2.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 900065 + checksum: sha256:9324e3b4fa3223e9c42a0185a873c670566b3c656f8492f19d3d5d605a9b921f name: tzdata - evr: 2025b-1.el8 + evr: 2025b-2.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/u/unzip-6.0-59.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 1433595 + checksum: sha256:299d7451195ccb37d8eb90f1870e00eb5ff4c12716c933d4c1657949f0d6aaf8 + name: unzip + evr: 6.0-59.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/z/zip-3.0-35.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 1137410 + checksum: sha256:416b6957a4365204cfb2ba9e5b9b9f21075b615114c6afe46c83166de258bb5d + name: zip + evr: 3.0-35.el9 module_metadata: [] - arch: x86_64 packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/appstream/os/Packages/s/socat-1.7.4.1-2.el8_10.x86_64.rpm - repoid: ubi-8-for-x86_64-appstream-rpms - size: 331072 - checksum: sha256:2a52879b3f75ace60cbf347c3c883776ac18f2847aa0e2baa6f7a58499479e09 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/s/socat-1.7.4.1-8.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-appstream-rpms + size: 310557 + checksum: sha256:eca1948f706239e3716f721ec077f94afb733c42976fba6e475924a4e3b603aa name: socat - evr: 1.7.4.1-2.el8_10 - sourcerpm: socat-1.7.4.1-2.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/os/Packages/r/rsync-3.1.3-23.el8_10.x86_64.rpm - repoid: ubi-8-for-x86_64-baseos-rpms - size: 422216 - checksum: sha256:3fd7508ce30e4b78b5785bb2dbb5291c3553aa30f4e6023daeb4e9ebb1e51ab8 + evr: 1.7.4.1-8.el9 + sourcerpm: socat-1.7.4.1-8.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/r/rsync-3.2.5-3.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 421930 + checksum: sha256:b1d90c38b613f2d66dfe0c7c3d067a3ce429f7b2ec5224e560f326fc2fd8d1e5 name: rsync - evr: 3.1.3-23.el8_10 - sourcerpm: rsync-3.1.3-23.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/os/Packages/t/tar-1.30-10.el8_10.x86_64.rpm - repoid: ubi-8-for-x86_64-baseos-rpms - size: 859244 - checksum: sha256:471485af8599f7176f357867dc952e587cffb223dec3455f97d8e40a854515ac + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/t/tar-1.34-7.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 910235 + checksum: sha256:17f2e592a2c04c050b690afeb9042e02521a0b5ee3288dad837463f4acf542c3 name: tar - evr: 2:1.30-10.el8_10 - sourcerpm: tar-1.30-10.el8_10.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/os/Packages/t/tzdata-2025b-1.el8.noarch.rpm - repoid: ubi-8-for-x86_64-baseos-rpms - size: 488428 - checksum: sha256:338539f7f0cd2770694153af81e2e65121b050a1bb555ad66a6fb6f562732602 + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/t/tzdata-2025b-2.el9.noarch.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 922567 + checksum: sha256:a1f5f4835bbc277c81e5a2bd0f1639bbb522c6d7029ad707955a0ebe66c41fe6 name: tzdata - evr: 2025b-1.el8 - sourcerpm: tzdata-2025b-1.el8.src.rpm + evr: 2025b-2.el9 + sourcerpm: tzdata-2025b-2.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/unzip-6.0-59.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 186130 + checksum: sha256:1142b2ba41dc0a6d919052337e6c82c07ee1021fa2ed93c7b5e87f986eef41d8 + name: unzip + evr: 6.0-59.el9 + sourcerpm: unzip-6.0-59.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/z/zip-3.0-35.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 276200 + checksum: sha256:ef28011ba191f53260cebb1e42b0148ae65d9029940146699e802f501dba009c + name: zip + evr: 3.0-35.el9 + sourcerpm: zip-3.0-35.el9.src.rpm source: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-2.el8_10.src.rpm - repoid: ubi-8-for-x86_64-appstream-source-rpms - size: 667200 - checksum: sha256:785c6b46c00a71d7e711dd1d60c64c1a6e3d80b395e459a3beaf780a3b489120 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-8.el9.src.rpm + repoid: ubi-9-for-x86_64-appstream-source-rpms + size: 664676 + checksum: sha256:4d83732bbf754e00d15133e15673230f41fbdae4a1cc27fba1cfb84744d0bf83 name: socat - evr: 1.7.4.1-2.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/source/SRPMS/Packages/r/rsync-3.1.3-23.el8_10.src.rpm - repoid: ubi-8-for-x86_64-baseos-source-rpms - size: 1154148 - checksum: sha256:f21aa8abbea6df3016d82d6db3e8b9abce2a068de40373d5ad6fa0926f0ca24a + evr: 1.7.4.1-8.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 name: rsync - evr: 3.1.3-23.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/source/SRPMS/Packages/t/tar-1.30-10.el8_10.src.rpm - repoid: ubi-8-for-x86_64-baseos-source-rpms - size: 2172709 - checksum: sha256:bf8f8a0c5c47b1a35b732c9e2b9afbd45171a70355f0b93526deb654ed55b566 + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 name: tar - evr: 2:1.30-10.el8_10 - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi8/8/x86_64/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el8.src.rpm - repoid: ubi-8-for-x86_64-baseos-source-rpms - size: 946701 - checksum: sha256:2f0ba51d371713287a690d9d1635b534113258aa2571862603d52870c1c8b60d + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/t/tzdata-2025b-2.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 900065 + checksum: sha256:9324e3b4fa3223e9c42a0185a873c670566b3c656f8492f19d3d5d605a9b921f name: tzdata - evr: 2025b-1.el8 + evr: 2025b-2.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/u/unzip-6.0-59.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 1433595 + checksum: sha256:299d7451195ccb37d8eb90f1870e00eb5ff4c12716c933d4c1657949f0d6aaf8 + name: unzip + evr: 6.0-59.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/z/zip-3.0-35.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 1137410 + checksum: sha256:416b6957a4365204cfb2ba9e5b9b9f21075b615114c6afe46c83166de258bb5d + name: zip + evr: 3.0-35.el9 module_metadata: [] diff --git a/vendor/github.com/stretchr/testify/assert/assertion_compare.go b/vendor/github.com/stretchr/testify/assert/assertion_compare.go index 7e19eba0904..ffb24e8e313 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_compare.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_compare.go @@ -390,7 +390,8 @@ func Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface if h, ok := t.(tHelper); ok { h.Helper() } - return compareTwoValues(t, e1, e2, []compareResult{compareGreater}, "\"%v\" is not greater than \"%v\"", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not greater than \"%v\"", e1, e2) + return compareTwoValues(t, e1, e2, []compareResult{compareGreater}, failMessage, msgAndArgs...) } // GreaterOrEqual asserts that the first element is greater than or equal to the second @@ -403,7 +404,8 @@ func GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...in if h, ok := t.(tHelper); ok { h.Helper() } - return compareTwoValues(t, e1, e2, []compareResult{compareGreater, compareEqual}, "\"%v\" is not greater than or equal to \"%v\"", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not greater than or equal to \"%v\"", e1, e2) + return compareTwoValues(t, e1, e2, []compareResult{compareGreater, compareEqual}, failMessage, msgAndArgs...) } // Less asserts that the first element is less than the second @@ -415,7 +417,8 @@ func Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) if h, ok := t.(tHelper); ok { h.Helper() } - return compareTwoValues(t, e1, e2, []compareResult{compareLess}, "\"%v\" is not less than \"%v\"", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not less than \"%v\"", e1, e2) + return compareTwoValues(t, e1, e2, []compareResult{compareLess}, failMessage, msgAndArgs...) } // LessOrEqual asserts that the first element is less than or equal to the second @@ -428,7 +431,8 @@ func LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...inter if h, ok := t.(tHelper); ok { h.Helper() } - return compareTwoValues(t, e1, e2, []compareResult{compareLess, compareEqual}, "\"%v\" is not less than or equal to \"%v\"", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not less than or equal to \"%v\"", e1, e2) + return compareTwoValues(t, e1, e2, []compareResult{compareLess, compareEqual}, failMessage, msgAndArgs...) } // Positive asserts that the specified element is positive @@ -440,7 +444,8 @@ func Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { h.Helper() } zero := reflect.Zero(reflect.TypeOf(e)) - return compareTwoValues(t, e, zero.Interface(), []compareResult{compareGreater}, "\"%v\" is not positive", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not positive", e) + return compareTwoValues(t, e, zero.Interface(), []compareResult{compareGreater}, failMessage, msgAndArgs...) } // Negative asserts that the specified element is negative @@ -452,7 +457,8 @@ func Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool { h.Helper() } zero := reflect.Zero(reflect.TypeOf(e)) - return compareTwoValues(t, e, zero.Interface(), []compareResult{compareLess}, "\"%v\" is not negative", msgAndArgs...) + failMessage := fmt.Sprintf("\"%v\" is not negative", e) + return compareTwoValues(t, e, zero.Interface(), []compareResult{compareLess}, failMessage, msgAndArgs...) } func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []compareResult, failMessage string, msgAndArgs ...interface{}) bool { @@ -468,11 +474,11 @@ func compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedCompare compareResult, isComparable := compare(e1, e2, e1Kind) if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\"", reflect.TypeOf(e1)), msgAndArgs...) + return Fail(t, fmt.Sprintf(`Can not compare type "%T"`, e1), msgAndArgs...) } if !containsValue(allowedComparesResults, compareResult) { - return Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...) + return Fail(t, failMessage, msgAndArgs...) } return true diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go b/vendor/github.com/stretchr/testify/assert/assertion_format.go index 19063416577..c592f6ad5fb 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_format.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_format.go @@ -50,10 +50,19 @@ func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string return ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) } -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Emptyf asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // assert.Emptyf(t, obj, "error message %s", "formatted") +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -117,10 +126,8 @@ func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg stri // Errorf asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if assert.Errorf(t, err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } +// actualObj, err := SomeFunction() +// assert.Errorf(t, err, "error message %s", "formatted") func Errorf(t TestingT, err error, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -438,7 +445,19 @@ func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interf return IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...) } +// IsNotTypef asserts that the specified objects are not of the same type. +// +// assert.IsNotTypef(t, &NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") +func IsNotTypef(t TestingT, theType interface{}, object interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return IsNotType(t, theType, object, append([]interface{}{msg}, args...)...) +} + // IsTypef asserts that the specified objects are of the same type. +// +// assert.IsTypef(t, &MyStruct{}, &MyStruct{}, "error message %s", "formatted") func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -585,8 +604,7 @@ func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg str return NotElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...) } -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmptyf asserts that the specified object is NOT [Empty]. // // if assert.NotEmptyf(t, obj, "error message %s", "formatted") { // assert.Equal(t, "two", obj[1]) @@ -693,12 +711,15 @@ func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, return NotSame(t, expected, actual, append([]interface{}{msg}, args...)...) } -// NotSubsetf asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // assert.NotSubsetf(t, [1, 3, 4], [1, 2], "error message %s", "formatted") // assert.NotSubsetf(t, {"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") +// assert.NotSubsetf(t, [1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") +// assert.NotSubsetf(t, {"x": 1, "y": 2}, ["z"], "error message %s", "formatted") func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -782,11 +803,15 @@ func Samef(t TestingT, expected interface{}, actual interface{}, msg string, arg return Same(t, expected, actual, append([]interface{}{msg}, args...)...) } -// Subsetf asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subsetf asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // assert.Subsetf(t, [1, 2, 3], [1, 2], "error message %s", "formatted") // assert.Subsetf(t, {"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") +// assert.Subsetf(t, [1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") +// assert.Subsetf(t, {"x": 1, "y": 2}, ["x"], "error message %s", "formatted") func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/vendor/github.com/stretchr/testify/assert/assertion_forward.go index 21629087baf..58db928450d 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_forward.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_forward.go @@ -92,10 +92,19 @@ func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg st return ElementsMatchf(a.t, listA, listB, msg, args...) } -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Empty asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // a.Empty(obj) +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -103,10 +112,19 @@ func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { return Empty(a.t, object, msgAndArgs...) } -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Emptyf asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // a.Emptyf(obj, "error message %s", "formatted") +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -224,10 +242,8 @@ func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string // Error asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if a.Error(err) { -// assert.Equal(t, expectedError, err) -// } +// actualObj, err := SomeFunction() +// a.Error(err) func (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -297,10 +313,8 @@ func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...inter // Errorf asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if a.Errorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } +// actualObj, err := SomeFunction() +// a.Errorf(err, "error message %s", "formatted") func (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -868,7 +882,29 @@ func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...in return IsNonIncreasingf(a.t, object, msg, args...) } +// IsNotType asserts that the specified objects are not of the same type. +// +// a.IsNotType(&NotMyStruct{}, &MyStruct{}) +func (a *Assertions) IsNotType(theType interface{}, object interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNotType(a.t, theType, object, msgAndArgs...) +} + +// IsNotTypef asserts that the specified objects are not of the same type. +// +// a.IsNotTypef(&NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") +func (a *Assertions) IsNotTypef(theType interface{}, object interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return IsNotTypef(a.t, theType, object, msg, args...) +} + // IsType asserts that the specified objects are of the same type. +// +// a.IsType(&MyStruct{}, &MyStruct{}) func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -877,6 +913,8 @@ func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAnd } // IsTypef asserts that the specified objects are of the same type. +// +// a.IsTypef(&MyStruct{}, &MyStruct{}, "error message %s", "formatted") func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1162,8 +1200,7 @@ func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg return NotElementsMatchf(a.t, listA, listB, msg, args...) } -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmpty asserts that the specified object is NOT [Empty]. // // if a.NotEmpty(obj) { // assert.Equal(t, "two", obj[1]) @@ -1175,8 +1212,7 @@ func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) boo return NotEmpty(a.t, object, msgAndArgs...) } -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmptyf asserts that the specified object is NOT [Empty]. // // if a.NotEmptyf(obj, "error message %s", "formatted") { // assert.Equal(t, "two", obj[1]) @@ -1378,12 +1414,15 @@ func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg stri return NotSamef(a.t, expected, actual, msg, args...) } -// NotSubset asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubset asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.NotSubset([1, 3, 4], [1, 2]) // a.NotSubset({"x": 1, "y": 2}, {"z": 3}) +// a.NotSubset([1, 3, 4], {1: "one", 2: "two"}) +// a.NotSubset({"x": 1, "y": 2}, ["z"]) func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1391,12 +1430,15 @@ func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs return NotSubset(a.t, list, subset, msgAndArgs...) } -// NotSubsetf asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.NotSubsetf([1, 3, 4], [1, 2], "error message %s", "formatted") // a.NotSubsetf({"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") +// a.NotSubsetf([1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") +// a.NotSubsetf({"x": 1, "y": 2}, ["z"], "error message %s", "formatted") func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1556,11 +1598,15 @@ func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, return Samef(a.t, expected, actual, msg, args...) } -// Subset asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subset asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.Subset([1, 2, 3], [1, 2]) // a.Subset({"x": 1, "y": 2}, {"x": 1}) +// a.Subset([1, 2, 3], {1: "one", 2: "two"}) +// a.Subset({"x": 1, "y": 2}, ["x"]) func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1568,11 +1614,15 @@ func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ... return Subset(a.t, list, subset, msgAndArgs...) } -// Subsetf asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subsetf asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.Subsetf([1, 2, 3], [1, 2], "error message %s", "formatted") // a.Subsetf({"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") +// a.Subsetf([1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") +// a.Subsetf({"x": 1, "y": 2}, ["x"], "error message %s", "formatted") func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() diff --git a/vendor/github.com/stretchr/testify/assert/assertion_order.go b/vendor/github.com/stretchr/testify/assert/assertion_order.go index 1d2f71824aa..2fdf80fdd30 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_order.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_order.go @@ -33,7 +33,7 @@ func isOrdered(t TestingT, object interface{}, allowedComparesResults []compareR compareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind) if !isComparable { - return Fail(t, fmt.Sprintf("Can not compare type \"%s\" and \"%s\"", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...) + return Fail(t, fmt.Sprintf(`Can not compare type "%T" and "%T"`, value, prevValue), msgAndArgs...) } if !containsValue(allowedComparesResults, compareResult) { diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go index 4e91332bb51..de8de0cb6c4 100644 --- a/vendor/github.com/stretchr/testify/assert/assertions.go +++ b/vendor/github.com/stretchr/testify/assert/assertions.go @@ -210,59 +210,77 @@ the problem actually occurred in calling code.*/ // of each stack frame leading from the current test to the assert call that // failed. func CallerInfo() []string { - var pc uintptr - var ok bool var file string var line int var name string + const stackFrameBufferSize = 10 + pcs := make([]uintptr, stackFrameBufferSize) + callers := []string{} - for i := 0; ; i++ { - pc, file, line, ok = runtime.Caller(i) - if !ok { - // The breaks below failed to terminate the loop, and we ran off the - // end of the call stack. - break - } + offset := 1 - // This is a huge edge case, but it will panic if this is the case, see #180 - if file == "" { - break - } + for { + n := runtime.Callers(offset, pcs) - f := runtime.FuncForPC(pc) - if f == nil { - break - } - name = f.Name() - - // testing.tRunner is the standard library function that calls - // tests. Subtests are called directly by tRunner, without going through - // the Test/Benchmark/Example function that contains the t.Run calls, so - // with subtests we should break when we hit tRunner, without adding it - // to the list of callers. - if name == "testing.tRunner" { + if n == 0 { break } - parts := strings.Split(file, "/") - if len(parts) > 1 { - filename := parts[len(parts)-1] - dir := parts[len(parts)-2] - if (dir != "assert" && dir != "mock" && dir != "require") || filename == "mock_test.go" { - callers = append(callers, fmt.Sprintf("%s:%d", file, line)) + frames := runtime.CallersFrames(pcs[:n]) + + for { + frame, more := frames.Next() + pc = frame.PC + file = frame.File + line = frame.Line + + // This is a huge edge case, but it will panic if this is the case, see #180 + if file == "" { + break } - } - // Drop the package - segments := strings.Split(name, ".") - name = segments[len(segments)-1] - if isTest(name, "Test") || - isTest(name, "Benchmark") || - isTest(name, "Example") { - break + f := runtime.FuncForPC(pc) + if f == nil { + break + } + name = f.Name() + + // testing.tRunner is the standard library function that calls + // tests. Subtests are called directly by tRunner, without going through + // the Test/Benchmark/Example function that contains the t.Run calls, so + // with subtests we should break when we hit tRunner, without adding it + // to the list of callers. + if name == "testing.tRunner" { + break + } + + parts := strings.Split(file, "/") + if len(parts) > 1 { + filename := parts[len(parts)-1] + dir := parts[len(parts)-2] + if (dir != "assert" && dir != "mock" && dir != "require") || filename == "mock_test.go" { + callers = append(callers, fmt.Sprintf("%s:%d", file, line)) + } + } + + // Drop the package + dotPos := strings.LastIndexByte(name, '.') + name = name[dotPos+1:] + if isTest(name, "Test") || + isTest(name, "Benchmark") || + isTest(name, "Example") { + break + } + + if !more { + break + } } + + // Next batch + offset += cap(pcs) } return callers @@ -437,17 +455,34 @@ func NotImplements(t TestingT, interfaceObject interface{}, object interface{}, return true } +func isType(expectedType, object interface{}) bool { + return ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) +} + // IsType asserts that the specified objects are of the same type. -func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool { +// +// assert.IsType(t, &MyStruct{}, &MyStruct{}) +func IsType(t TestingT, expectedType, object interface{}, msgAndArgs ...interface{}) bool { + if isType(expectedType, object) { + return true + } if h, ok := t.(tHelper); ok { h.Helper() } + return Fail(t, fmt.Sprintf("Object expected to be of type %T, but was %T", expectedType, object), msgAndArgs...) +} - if !ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) { - return Fail(t, fmt.Sprintf("Object expected to be of type %v, but was %v", reflect.TypeOf(expectedType), reflect.TypeOf(object)), msgAndArgs...) +// IsNotType asserts that the specified objects are not of the same type. +// +// assert.IsNotType(t, &NotMyStruct{}, &MyStruct{}) +func IsNotType(t TestingT, theType, object interface{}, msgAndArgs ...interface{}) bool { + if !isType(theType, object) { + return true } - - return true + if h, ok := t.(tHelper); ok { + h.Helper() + } + return Fail(t, fmt.Sprintf("Object type expected to be different than %T", theType), msgAndArgs...) } // Equal asserts that two objects are equal. @@ -475,7 +510,6 @@ func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) } return true - } // validateEqualArgs checks whether provided arguments can be safely used in the @@ -510,8 +544,9 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b if !same { // both are pointers but not the same type & pointing to the same address return Fail(t, fmt.Sprintf("Not same: \n"+ - "expected: %p %#v\n"+ - "actual : %p %#v", expected, expected, actual, actual), msgAndArgs...) + "expected: %p %#[1]v\n"+ + "actual : %p %#[2]v", + expected, actual), msgAndArgs...) } return true @@ -530,14 +565,14 @@ func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} same, ok := samePointers(expected, actual) if !ok { - //fails when the arguments are not pointers + // fails when the arguments are not pointers return !(Fail(t, "Both arguments must be pointers", msgAndArgs...)) } if same { return Fail(t, fmt.Sprintf( - "Expected and actual point to the same object: %p %#v", - expected, expected), msgAndArgs...) + "Expected and actual point to the same object: %p %#[1]v", + expected), msgAndArgs...) } return true } @@ -549,7 +584,7 @@ func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} func samePointers(first, second interface{}) (same bool, ok bool) { firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { - return false, false //not both are pointers + return false, false // not both are pointers } firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) @@ -610,7 +645,6 @@ func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interfa } return true - } // EqualExportedValues asserts that the types of two objects are equal and their public @@ -665,7 +699,6 @@ func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} } return Equal(t, expected, actual, msgAndArgs...) - } // NotNil asserts that the specified object is not nil. @@ -715,37 +748,45 @@ func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { // isEmpty gets whether the specified object is considered empty or not. func isEmpty(object interface{}) bool { - // get nil case out of the way if object == nil { return true } - objValue := reflect.ValueOf(object) + return isEmptyValue(reflect.ValueOf(object)) +} +// isEmptyValue gets whether the specified reflect.Value is considered empty or not. +func isEmptyValue(objValue reflect.Value) bool { + if objValue.IsZero() { + return true + } + // Special cases of non-zero values that we consider empty switch objValue.Kind() { // collection types are empty when they have no element + // Note: array types are empty when they match their zero-initialized state. case reflect.Chan, reflect.Map, reflect.Slice: return objValue.Len() == 0 - // pointers are empty if nil or if the value they point to is empty + // non-nil pointers are empty if the value they point to is empty case reflect.Ptr: - if objValue.IsNil() { - return true - } - deref := objValue.Elem().Interface() - return isEmpty(deref) - // for all other types, compare against the zero value - // array types are empty when they match their zero-initialized state - default: - zero := reflect.Zero(objValue.Type()) - return reflect.DeepEqual(object, zero.Interface()) + return isEmptyValue(objValue.Elem()) } + return false } -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Empty asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // assert.Empty(t, obj) +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { pass := isEmpty(object) if !pass { @@ -756,11 +797,9 @@ func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { } return pass - } -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmpty asserts that the specified object is NOT [Empty]. // // if assert.NotEmpty(t, obj) { // assert.Equal(t, "two", obj[1]) @@ -775,7 +814,6 @@ func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { } return pass - } // getLen tries to get the length of an object. @@ -819,7 +857,6 @@ func True(t TestingT, value bool, msgAndArgs ...interface{}) bool { } return true - } // False asserts that the specified value is false. @@ -834,7 +871,6 @@ func False(t TestingT, value bool, msgAndArgs ...interface{}) bool { } return true - } // NotEqual asserts that the specified values are NOT equal. @@ -857,7 +893,6 @@ func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{ } return true - } // NotEqualValues asserts that two objects are not equal even when converted to the same type @@ -880,7 +915,6 @@ func NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...inte // return (true, false) if element was not found. // return (true, true) if element was found. func containsElement(list interface{}, element interface{}) (ok, found bool) { - listValue := reflect.ValueOf(list) listType := reflect.TypeOf(list) if listType == nil { @@ -915,7 +949,6 @@ func containsElement(list interface{}, element interface{}) (ok, found bool) { } } return true, false - } // Contains asserts that the specified string, list(array, slice...) or map contains the @@ -938,7 +971,6 @@ func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bo } return true - } // NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the @@ -961,14 +993,17 @@ func NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) } return true - } -// Subset asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subset asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // assert.Subset(t, [1, 2, 3], [1, 2]) // assert.Subset(t, {"x": 1, "y": 2}, {"x": 1}) +// assert.Subset(t, [1, 2, 3], {1: "one", 2: "two"}) +// assert.Subset(t, {"x": 1, "y": 2}, ["x"]) func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { if h, ok := t.(tHelper); ok { h.Helper() @@ -983,7 +1018,7 @@ func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok } subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map { + if subsetKind != reflect.Array && subsetKind != reflect.Slice && subsetKind != reflect.Map { return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) } @@ -1007,6 +1042,13 @@ func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok } subsetList := reflect.ValueOf(subset) + if subsetKind == reflect.Map { + keys := make([]interface{}, subsetList.Len()) + for idx, key := range subsetList.MapKeys() { + keys[idx] = key.Interface() + } + subsetList = reflect.ValueOf(keys) + } for i := 0; i < subsetList.Len(); i++ { element := subsetList.Index(i).Interface() ok, found := containsElement(list, element) @@ -1021,12 +1063,15 @@ func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok return true } -// NotSubset asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubset asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // assert.NotSubset(t, [1, 3, 4], [1, 2]) // assert.NotSubset(t, {"x": 1, "y": 2}, {"z": 3}) +// assert.NotSubset(t, [1, 3, 4], {1: "one", 2: "two"}) +// assert.NotSubset(t, {"x": 1, "y": 2}, ["z"]) func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1041,7 +1086,7 @@ func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) } subsetKind := reflect.TypeOf(subset).Kind() - if subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map { + if subsetKind != reflect.Array && subsetKind != reflect.Slice && subsetKind != reflect.Map { return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...) } @@ -1065,11 +1110,18 @@ func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) } subsetList := reflect.ValueOf(subset) + if subsetKind == reflect.Map { + keys := make([]interface{}, subsetList.Len()) + for idx, key := range subsetList.MapKeys() { + keys[idx] = key.Interface() + } + subsetList = reflect.ValueOf(keys) + } for i := 0; i < subsetList.Len(); i++ { element := subsetList.Index(i).Interface() ok, found := containsElement(list, element) if !ok { - return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", list), msgAndArgs...) + return Fail(t, fmt.Sprintf("%q could not be applied builtin len()", list), msgAndArgs...) } if !found { return true @@ -1591,10 +1643,8 @@ func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { // Error asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if assert.Error(t, err) { -// assert.Equal(t, expectedError, err) -// } +// actualObj, err := SomeFunction() +// assert.Error(t, err) func Error(t TestingT, err error, msgAndArgs ...interface{}) bool { if err == nil { if h, ok := t.(tHelper); ok { @@ -1667,7 +1717,6 @@ func matchRegexp(rx interface{}, str interface{}) bool { default: return r.MatchString(fmt.Sprint(v)) } - } // Regexp asserts that a specified regexp matches a string. @@ -1703,7 +1752,6 @@ func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interf } return !match - } // Zero asserts that i is the zero value for its type. @@ -1814,6 +1862,11 @@ func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{ return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid json.\nJSON parsing error: '%s'", expected, err.Error()), msgAndArgs...) } + // Shortcut if same bytes + if actual == expected { + return true + } + if err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil { return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid json.\nJSON parsing error: '%s'", actual, err.Error()), msgAndArgs...) } @@ -1832,6 +1885,11 @@ func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{ return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid yaml.\nYAML parsing error: '%s'", expected, err.Error()), msgAndArgs...) } + // Shortcut if same bytes + if actual == expected { + return true + } + if err := yaml.Unmarshal([]byte(actual), &actualYAMLAsInterface); err != nil { return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid yaml.\nYAML error: '%s'", actual, err.Error()), msgAndArgs...) } @@ -1933,6 +1991,7 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t } ch := make(chan bool, 1) + checkCond := func() { ch <- condition() } timer := time.NewTimer(waitFor) defer timer.Stop() @@ -1940,18 +1999,23 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t ticker := time.NewTicker(tick) defer ticker.Stop() - for tick := ticker.C; ; { + var tickC <-chan time.Time + + // Check the condition once first on the initial call. + go checkCond() + + for { select { case <-timer.C: return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tick: - tick = nil - go func() { ch <- condition() }() + case <-tickC: + tickC = nil + go checkCond() case v := <-ch: if v { return true } - tick = ticker.C + tickC = ticker.C } } } @@ -1964,6 +2028,9 @@ type CollectT struct { errors []error } +// Helper is like [testing.T.Helper] but does nothing. +func (CollectT) Helper() {} + // Errorf collects the error. func (c *CollectT) Errorf(format string, args ...interface{}) { c.errors = append(c.errors, fmt.Errorf(format, args...)) @@ -2021,35 +2088,42 @@ func EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time var lastFinishedTickErrs []error ch := make(chan *CollectT, 1) + checkCond := func() { + collect := new(CollectT) + defer func() { + ch <- collect + }() + condition(collect) + } + timer := time.NewTimer(waitFor) defer timer.Stop() ticker := time.NewTicker(tick) defer ticker.Stop() - for tick := ticker.C; ; { + var tickC <-chan time.Time + + // Check the condition once first on the initial call. + go checkCond() + + for { select { case <-timer.C: for _, err := range lastFinishedTickErrs { t.Errorf("%v", err) } return Fail(t, "Condition never satisfied", msgAndArgs...) - case <-tick: - tick = nil - go func() { - collect := new(CollectT) - defer func() { - ch <- collect - }() - condition(collect) - }() + case <-tickC: + tickC = nil + go checkCond() case collect := <-ch: if !collect.failed() { return true } // Keep the errors from the last ended condition, so that they can be copied to t if timeout is reached. lastFinishedTickErrs = collect.errors - tick = ticker.C + tickC = ticker.C } } } @@ -2064,6 +2138,7 @@ func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.D } ch := make(chan bool, 1) + checkCond := func() { ch <- condition() } timer := time.NewTimer(waitFor) defer timer.Stop() @@ -2071,18 +2146,23 @@ func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.D ticker := time.NewTicker(tick) defer ticker.Stop() - for tick := ticker.C; ; { + var tickC <-chan time.Time + + // Check the condition once first on the initial call. + go checkCond() + + for { select { case <-timer.C: return true - case <-tick: - tick = nil - go func() { ch <- condition() }() + case <-tickC: + tickC = nil + go checkCond() case v := <-ch: if v { return Fail(t, "Condition satisfied", msgAndArgs...) } - tick = ticker.C + tickC = ticker.C } } } @@ -2100,9 +2180,12 @@ func ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { var expectedText string if target != nil { expectedText = target.Error() + if err == nil { + return Fail(t, fmt.Sprintf("Expected error with %q in chain but got nil.", expectedText), msgAndArgs...) + } } - chain := buildErrorChainString(err) + chain := buildErrorChainString(err, false) return Fail(t, fmt.Sprintf("Target error should be in err chain:\n"+ "expected: %q\n"+ @@ -2125,7 +2208,7 @@ func NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool { expectedText = target.Error() } - chain := buildErrorChainString(err) + chain := buildErrorChainString(err, false) return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ "found: %q\n"+ @@ -2143,11 +2226,17 @@ func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{ return true } - chain := buildErrorChainString(err) + expectedType := reflect.TypeOf(target).Elem().String() + if err == nil { + return Fail(t, fmt.Sprintf("An error is expected but got nil.\n"+ + "expected: %s", expectedType), msgAndArgs...) + } + + chain := buildErrorChainString(err, true) return Fail(t, fmt.Sprintf("Should be in error chain:\n"+ - "expected: %q\n"+ - "in chain: %s", target, chain, + "expected: %s\n"+ + "in chain: %s", expectedType, chain, ), msgAndArgs...) } @@ -2161,24 +2250,46 @@ func NotErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interfa return true } - chain := buildErrorChainString(err) + chain := buildErrorChainString(err, true) return Fail(t, fmt.Sprintf("Target error should not be in err chain:\n"+ - "found: %q\n"+ - "in chain: %s", target, chain, + "found: %s\n"+ + "in chain: %s", reflect.TypeOf(target).Elem().String(), chain, ), msgAndArgs...) } -func buildErrorChainString(err error) string { +func unwrapAll(err error) (errs []error) { + errs = append(errs, err) + switch x := err.(type) { + case interface{ Unwrap() error }: + err = x.Unwrap() + if err == nil { + return + } + errs = append(errs, unwrapAll(err)...) + case interface{ Unwrap() []error }: + for _, err := range x.Unwrap() { + errs = append(errs, unwrapAll(err)...) + } + } + return +} + +func buildErrorChainString(err error, withType bool) string { if err == nil { return "" } - e := errors.Unwrap(err) - chain := fmt.Sprintf("%q", err.Error()) - for e != nil { - chain += fmt.Sprintf("\n\t%q", e.Error()) - e = errors.Unwrap(e) + var chain string + errs := unwrapAll(err) + for i := range errs { + if i != 0 { + chain += "\n\t" + } + chain += fmt.Sprintf("%q", errs[i].Error()) + if withType { + chain += fmt.Sprintf(" (%T)", errs[i]) + } } return chain } diff --git a/vendor/github.com/stretchr/testify/assert/doc.go b/vendor/github.com/stretchr/testify/assert/doc.go index 4953981d387..a0b953aa5cf 100644 --- a/vendor/github.com/stretchr/testify/assert/doc.go +++ b/vendor/github.com/stretchr/testify/assert/doc.go @@ -1,5 +1,9 @@ // Package assert provides a set of comprehensive testing tools for use with the normal Go testing system. // +// # Note +// +// All functions in this package return a bool value indicating whether the assertion has passed. +// // # Example Usage // // The following is a complete example using assert in a standard test function: diff --git a/vendor/github.com/stretchr/testify/assert/http_assertions.go b/vendor/github.com/stretchr/testify/assert/http_assertions.go index 861ed4b7ced..5a6bb75f2cf 100644 --- a/vendor/github.com/stretchr/testify/assert/http_assertions.go +++ b/vendor/github.com/stretchr/testify/assert/http_assertions.go @@ -138,7 +138,7 @@ func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, contains := strings.Contains(body, fmt.Sprint(str)) if !contains { - Fail(t, fmt.Sprintf("Expected response body for \"%s\" to contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body), msgAndArgs...) + Fail(t, fmt.Sprintf("Expected response body for %q to contain %q but found %q", url+"?"+values.Encode(), str, body), msgAndArgs...) } return contains @@ -158,7 +158,7 @@ func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url strin contains := strings.Contains(body, fmt.Sprint(str)) if contains { - Fail(t, fmt.Sprintf("Expected response body for \"%s\" to NOT contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body), msgAndArgs...) + Fail(t, fmt.Sprintf("Expected response body for %q to NOT contain %q but found %q", url+"?"+values.Encode(), str, body), msgAndArgs...) } return !contains diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go index baa0cc7d7fc..5a74c4f4d5b 100644 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go +++ b/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go @@ -1,5 +1,4 @@ //go:build testify_yaml_custom && !testify_yaml_fail && !testify_yaml_default -// +build testify_yaml_custom,!testify_yaml_fail,!testify_yaml_default // Package yaml is an implementation of YAML functions that calls a pluggable implementation. // diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go index b83c6cf64c2..0bae80e34a3 100644 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go +++ b/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go @@ -1,5 +1,4 @@ //go:build !testify_yaml_fail && !testify_yaml_custom -// +build !testify_yaml_fail,!testify_yaml_custom // Package yaml is just an indirection to handle YAML deserialization. // diff --git a/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go b/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go index e78f7dfe69a..8041803fd2f 100644 --- a/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go +++ b/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go @@ -1,5 +1,4 @@ //go:build testify_yaml_fail && !testify_yaml_custom && !testify_yaml_default -// +build testify_yaml_fail,!testify_yaml_custom,!testify_yaml_default // Package yaml is an implementation of YAML functions that always fail. // diff --git a/vendor/github.com/stretchr/testify/require/doc.go b/vendor/github.com/stretchr/testify/require/doc.go index 96843472455..c8e3f94a803 100644 --- a/vendor/github.com/stretchr/testify/require/doc.go +++ b/vendor/github.com/stretchr/testify/require/doc.go @@ -23,6 +23,8 @@ // // The `require` package have same global functions as in the `assert` package, // but instead of returning a boolean result they call `t.FailNow()`. +// A consequence of this is that it must be called from the goroutine running +// the test function, not from other goroutines created during the test. // // Every assertion function also takes an optional string message as the final argument, // allowing custom error messages to be appended to the message the assertion method outputs. diff --git a/vendor/github.com/stretchr/testify/require/require.go b/vendor/github.com/stretchr/testify/require/require.go index d8921950d7b..2d02f9bcef1 100644 --- a/vendor/github.com/stretchr/testify/require/require.go +++ b/vendor/github.com/stretchr/testify/require/require.go @@ -117,10 +117,19 @@ func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string t.FailNow() } -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Empty asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // require.Empty(t, obj) +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -131,10 +140,19 @@ func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) { t.FailNow() } -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Emptyf asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // require.Emptyf(t, obj, "error message %s", "formatted") +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -279,10 +297,8 @@ func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, ar // Error asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if require.Error(t, err) { -// require.Equal(t, expectedError, err) -// } +// actualObj, err := SomeFunction() +// require.Error(t, err) func Error(t TestingT, err error, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -373,10 +389,8 @@ func ErrorIsf(t TestingT, err error, target error, msg string, args ...interface // Errorf asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if require.Errorf(t, err, "error message %s", "formatted") { -// require.Equal(t, expectedErrorf, err) -// } +// actualObj, err := SomeFunction() +// require.Errorf(t, err, "error message %s", "formatted") func Errorf(t TestingT, err error, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1097,7 +1111,35 @@ func IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interf t.FailNow() } +// IsNotType asserts that the specified objects are not of the same type. +// +// require.IsNotType(t, &NotMyStruct{}, &MyStruct{}) +func IsNotType(t TestingT, theType interface{}, object interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNotType(t, theType, object, msgAndArgs...) { + return + } + t.FailNow() +} + +// IsNotTypef asserts that the specified objects are not of the same type. +// +// require.IsNotTypef(t, &NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") +func IsNotTypef(t TestingT, theType interface{}, object interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.IsNotTypef(t, theType, object, msg, args...) { + return + } + t.FailNow() +} + // IsType asserts that the specified objects are of the same type. +// +// require.IsType(t, &MyStruct{}, &MyStruct{}) func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1109,6 +1151,8 @@ func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs } // IsTypef asserts that the specified objects are of the same type. +// +// require.IsTypef(t, &MyStruct{}, &MyStruct{}, "error message %s", "formatted") func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1469,8 +1513,7 @@ func NotElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg str t.FailNow() } -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmpty asserts that the specified object is NOT [Empty]. // // if require.NotEmpty(t, obj) { // require.Equal(t, "two", obj[1]) @@ -1485,8 +1528,7 @@ func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) { t.FailNow() } -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmptyf asserts that the specified object is NOT [Empty]. // // if require.NotEmptyf(t, obj, "error message %s", "formatted") { // require.Equal(t, "two", obj[1]) @@ -1745,12 +1787,15 @@ func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, t.FailNow() } -// NotSubset asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubset asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // require.NotSubset(t, [1, 3, 4], [1, 2]) // require.NotSubset(t, {"x": 1, "y": 2}, {"z": 3}) +// require.NotSubset(t, [1, 3, 4], {1: "one", 2: "two"}) +// require.NotSubset(t, {"x": 1, "y": 2}, ["z"]) func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1761,12 +1806,15 @@ func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...i t.FailNow() } -// NotSubsetf asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // require.NotSubsetf(t, [1, 3, 4], [1, 2], "error message %s", "formatted") // require.NotSubsetf(t, {"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") +// require.NotSubsetf(t, [1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") +// require.NotSubsetf(t, {"x": 1, "y": 2}, ["z"], "error message %s", "formatted") func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1971,11 +2019,15 @@ func Samef(t TestingT, expected interface{}, actual interface{}, msg string, arg t.FailNow() } -// Subset asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subset asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // require.Subset(t, [1, 2, 3], [1, 2]) // require.Subset(t, {"x": 1, "y": 2}, {"x": 1}) +// require.Subset(t, [1, 2, 3], {1: "one", 2: "two"}) +// require.Subset(t, {"x": 1, "y": 2}, ["x"]) func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -1986,11 +2038,15 @@ func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...inte t.FailNow() } -// Subsetf asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subsetf asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // require.Subsetf(t, [1, 2, 3], [1, 2], "error message %s", "formatted") // require.Subsetf(t, {"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") +// require.Subsetf(t, [1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") +// require.Subsetf(t, {"x": 1, "y": 2}, ["x"], "error message %s", "formatted") func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go b/vendor/github.com/stretchr/testify/require/require_forward.go index 1bd87304f43..e6f7e944684 100644 --- a/vendor/github.com/stretchr/testify/require/require_forward.go +++ b/vendor/github.com/stretchr/testify/require/require_forward.go @@ -93,10 +93,19 @@ func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg st ElementsMatchf(a.t, listA, listB, msg, args...) } -// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Empty asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // a.Empty(obj) +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -104,10 +113,19 @@ func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) { Empty(a.t, object, msgAndArgs...) } -// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either -// a slice or a channel with len == 0. +// Emptyf asserts that the given value is "empty". +// +// [Zero values] are "empty". +// +// Arrays are "empty" if every element is the zero value of the type (stricter than "empty"). +// +// Slices, maps and channels with zero length are "empty". +// +// Pointer values are "empty" if the pointer is nil or if the pointed value is "empty". // // a.Emptyf(obj, "error message %s", "formatted") +// +// [Zero values]: https://go.dev/ref/spec#The_zero_value func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -225,10 +243,8 @@ func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string // Error asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if a.Error(err) { -// assert.Equal(t, expectedError, err) -// } +// actualObj, err := SomeFunction() +// a.Error(err) func (a *Assertions) Error(err error, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -298,10 +314,8 @@ func (a *Assertions) ErrorIsf(err error, target error, msg string, args ...inter // Errorf asserts that a function returned an error (i.e. not `nil`). // -// actualObj, err := SomeFunction() -// if a.Errorf(err, "error message %s", "formatted") { -// assert.Equal(t, expectedErrorf, err) -// } +// actualObj, err := SomeFunction() +// a.Errorf(err, "error message %s", "formatted") func (a *Assertions) Errorf(err error, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -869,7 +883,29 @@ func (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...in IsNonIncreasingf(a.t, object, msg, args...) } +// IsNotType asserts that the specified objects are not of the same type. +// +// a.IsNotType(&NotMyStruct{}, &MyStruct{}) +func (a *Assertions) IsNotType(theType interface{}, object interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNotType(a.t, theType, object, msgAndArgs...) +} + +// IsNotTypef asserts that the specified objects are not of the same type. +// +// a.IsNotTypef(&NotMyStruct{}, &MyStruct{}, "error message %s", "formatted") +func (a *Assertions) IsNotTypef(theType interface{}, object interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + IsNotTypef(a.t, theType, object, msg, args...) +} + // IsType asserts that the specified objects are of the same type. +// +// a.IsType(&MyStruct{}, &MyStruct{}) func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -878,6 +914,8 @@ func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAnd } // IsTypef asserts that the specified objects are of the same type. +// +// a.IsTypef(&MyStruct{}, &MyStruct{}, "error message %s", "formatted") func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1163,8 +1201,7 @@ func (a *Assertions) NotElementsMatchf(listA interface{}, listB interface{}, msg NotElementsMatchf(a.t, listA, listB, msg, args...) } -// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmpty asserts that the specified object is NOT [Empty]. // // if a.NotEmpty(obj) { // assert.Equal(t, "two", obj[1]) @@ -1176,8 +1213,7 @@ func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) { NotEmpty(a.t, object, msgAndArgs...) } -// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either -// a slice or a channel with len == 0. +// NotEmptyf asserts that the specified object is NOT [Empty]. // // if a.NotEmptyf(obj, "error message %s", "formatted") { // assert.Equal(t, "two", obj[1]) @@ -1379,12 +1415,15 @@ func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg stri NotSamef(a.t, expected, actual, msg, args...) } -// NotSubset asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubset asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.NotSubset([1, 3, 4], [1, 2]) // a.NotSubset({"x": 1, "y": 2}, {"z": 3}) +// a.NotSubset([1, 3, 4], {1: "one", 2: "two"}) +// a.NotSubset({"x": 1, "y": 2}, ["z"]) func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1392,12 +1431,15 @@ func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs NotSubset(a.t, list, subset, msgAndArgs...) } -// NotSubsetf asserts that the specified list(array, slice...) or map does NOT -// contain all elements given in the specified subset list(array, slice...) or -// map. +// NotSubsetf asserts that the list (array, slice, or map) does NOT contain all +// elements given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.NotSubsetf([1, 3, 4], [1, 2], "error message %s", "formatted") // a.NotSubsetf({"x": 1, "y": 2}, {"z": 3}, "error message %s", "formatted") +// a.NotSubsetf([1, 3, 4], {1: "one", 2: "two"}, "error message %s", "formatted") +// a.NotSubsetf({"x": 1, "y": 2}, ["z"], "error message %s", "formatted") func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1557,11 +1599,15 @@ func (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, Samef(a.t, expected, actual, msg, args...) } -// Subset asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subset asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.Subset([1, 2, 3], [1, 2]) // a.Subset({"x": 1, "y": 2}, {"x": 1}) +// a.Subset([1, 2, 3], {1: "one", 2: "two"}) +// a.Subset({"x": 1, "y": 2}, ["x"]) func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -1569,11 +1615,15 @@ func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ... Subset(a.t, list, subset, msgAndArgs...) } -// Subsetf asserts that the specified list(array, slice...) or map contains all -// elements given in the specified subset list(array, slice...) or map. +// Subsetf asserts that the list (array, slice, or map) contains all elements +// given in the subset (array, slice, or map). +// Map elements are key-value pairs unless compared with an array or slice where +// only the map key is evaluated. // // a.Subsetf([1, 2, 3], [1, 2], "error message %s", "formatted") // a.Subsetf({"x": 1, "y": 2}, {"x": 1}, "error message %s", "formatted") +// a.Subsetf([1, 2, 3], {1: "one", 2: "two"}, "error message %s", "formatted") +// a.Subsetf({"x": 1, "y": 2}, ["x"], "error message %s", "formatted") func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go index cb6bb9ad3ba..1d8cffae8cf 100644 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -12,8 +12,6 @@ package errgroup import ( "context" "fmt" - "runtime" - "runtime/debug" "sync" ) @@ -33,10 +31,6 @@ type Group struct { errOnce sync.Once err error - - mu sync.Mutex - panicValue any // = PanicError | PanicValue; non-nil if some Group.Go goroutine panicked. - abnormal bool // some Group.Go goroutine terminated abnormally (panic or goexit). } func (g *Group) done() { @@ -56,22 +50,13 @@ func WithContext(ctx context.Context) (*Group, context.Context) { return &Group{cancel: cancel}, ctx } -// Wait blocks until all function calls from the Go method have returned -// normally, then returns the first non-nil error (if any) from them. -// -// If any of the calls panics, Wait panics with a [PanicValue]; -// and if any of them calls [runtime.Goexit], Wait calls runtime.Goexit. +// Wait blocks until all function calls from the Go method have returned, then +// returns the first non-nil error (if any) from them. func (g *Group) Wait() error { g.wg.Wait() if g.cancel != nil { g.cancel(g.err) } - if g.panicValue != nil { - panic(g.panicValue) - } - if g.abnormal { - runtime.Goexit() - } return g.err } @@ -81,53 +66,31 @@ func (g *Group) Wait() error { // It blocks until the new goroutine can be added without the number of // goroutines in the group exceeding the configured limit. // -// The first goroutine in the group that returns a non-nil error, panics, or -// invokes [runtime.Goexit] will cancel the associated Context, if any. +// The first goroutine in the group that returns a non-nil error will +// cancel the associated Context, if any. The error will be returned +// by Wait. func (g *Group) Go(f func() error) { if g.sem != nil { g.sem <- token{} } - g.add(f) -} - -func (g *Group) add(f func() error) { g.wg.Add(1) go func() { defer g.done() - normalReturn := false - defer func() { - if normalReturn { - return - } - v := recover() - g.mu.Lock() - defer g.mu.Unlock() - if !g.abnormal { - if g.cancel != nil { - g.cancel(g.err) - } - g.abnormal = true - } - if v != nil && g.panicValue == nil { - switch v := v.(type) { - case error: - g.panicValue = PanicError{ - Recovered: v, - Stack: debug.Stack(), - } - default: - g.panicValue = PanicValue{ - Recovered: v, - Stack: debug.Stack(), - } - } - } - }() - err := f() - normalReturn = true - if err != nil { + // It is tempting to propagate panics from f() + // up to the goroutine that calls Wait, but + // it creates more problems than it solves: + // - it delays panics arbitrarily, + // making bugs harder to detect; + // - it turns f's panic stack into a mere value, + // hiding it from crash-monitoring tools; + // - it risks deadlocks that hide the panic entirely, + // if f's panic leaves the program in a state + // that prevents the Wait call from being reached. + // See #53757, #74275, #74304, #74306. + + if err := f(); err != nil { g.errOnce.Do(func() { g.err = err if g.cancel != nil { @@ -152,7 +115,19 @@ func (g *Group) TryGo(f func() error) bool { } } - g.add(f) + g.wg.Add(1) + go func() { + defer g.done() + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel(g.err) + } + }) + } + }() return true } @@ -174,34 +149,3 @@ func (g *Group) SetLimit(n int) { } g.sem = make(chan token, n) } - -// PanicError wraps an error recovered from an unhandled panic -// when calling a function passed to Go or TryGo. -type PanicError struct { - Recovered error - Stack []byte // result of call to [debug.Stack] -} - -func (p PanicError) Error() string { - if len(p.Stack) > 0 { - return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", p.Recovered, p.Stack) - } - return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered) -} - -func (p PanicError) Unwrap() error { return p.Recovered } - -// PanicValue wraps a value that does not implement the error interface, -// recovered from an unhandled panic when calling a function passed to Go or -// TryGo. -type PanicValue struct { - Recovered any - Stack []byte // result of call to [debug.Stack] -} - -func (p PanicValue) String() string { - if len(p.Stack) > 0 { - return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", p.Recovered, p.Stack) - } - return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 577a5862fcc..ceccdd60a7c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -50,7 +50,7 @@ github.com/cespare/xxhash/v2 ## explicit; go 1.16 github.com/cloudevents/conformance/pkg/event github.com/cloudevents/conformance/pkg/http -# github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.1 +# github.com/cloudevents/sdk-go/observability/opentelemetry/v2 v2.16.2 ## explicit; go 1.23.0 github.com/cloudevents/sdk-go/observability/opentelemetry/v2/client github.com/cloudevents/sdk-go/observability/opentelemetry/v2/http @@ -67,7 +67,7 @@ github.com/cloudevents/sdk-go/sql/v2/gen github.com/cloudevents/sdk-go/sql/v2/parser github.com/cloudevents/sdk-go/sql/v2/runtime github.com/cloudevents/sdk-go/sql/v2/utils -# github.com/cloudevents/sdk-go/v2 v2.16.1 +# github.com/cloudevents/sdk-go/v2 v2.16.2 ## explicit; go 1.23.0 github.com/cloudevents/sdk-go/v2 github.com/cloudevents/sdk-go/v2/binding @@ -276,7 +276,7 @@ github.com/spf13/cobra # github.com/spf13/pflag v1.0.6 ## explicit; go 1.12 github.com/spf13/pflag -# github.com/stretchr/testify v1.10.0 +# github.com/stretchr/testify v1.11.0 ## explicit; go 1.17 github.com/stretchr/testify/assert github.com/stretchr/testify/assert/yaml @@ -470,7 +470,7 @@ golang.org/x/net/trace ## explicit; go 1.23.0 golang.org/x/oauth2 golang.org/x/oauth2/internal -# golang.org/x/sync v0.15.0 +# golang.org/x/sync v0.16.0 ## explicit; go 1.23.0 golang.org/x/sync/errgroup golang.org/x/sync/semaphore