Skip to content

Commit

Permalink
fix k8s event flaky test with new fakerecorder
Browse files Browse the repository at this point in the history
  • Loading branch information
Yongxuanzhang committed Nov 16, 2022
1 parent 38d3511 commit da4e39c
Show file tree
Hide file tree
Showing 14 changed files with 127 additions and 55 deletions.
4 changes: 2 additions & 2 deletions pkg/controller/filter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import (
"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
fakeruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1alpha1/run/fake"
"github.com/tektoncd/pipeline/pkg/controller"
eventstest "github.com/tektoncd/pipeline/test/events"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
rtesting "knative.dev/pkg/reconciler/testing"
)

const (
Expand Down Expand Up @@ -462,7 +462,7 @@ func TestFilterOwnerRunRef(t *testing.T) {
want: false,
}} {
t.Run(c.desc, func(t *testing.T) {
ctx, _ := rtesting.SetupFakeContext(t)
ctx, _ := eventstest.SetupFakeContext(t)
runInformer := fakeruninformer.Get(ctx)
if c.owner != nil {
if err := runInformer.Informer().GetIndexer().Add(c.owner); err != nil {
Expand Down
3 changes: 1 addition & 2 deletions pkg/reconciler/customrun/customrun_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/tools/record"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
cminformer "knative.dev/pkg/configmap/informer"
Expand Down Expand Up @@ -65,7 +64,7 @@ func initializeCustomRunControllerAssets(t *testing.T, d test.Data) (test.Assets
Controller: ctl,
Clients: c,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,11 @@ import (
eventstest "github.com/tektoncd/pipeline/test/events"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/record"
clock "k8s.io/utils/clock/testing"
"knative.dev/pkg/apis"
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
"knative.dev/pkg/controller"
"knative.dev/pkg/logging"
rtesting "knative.dev/pkg/reconciler/testing"
)

var now = time.Date(2022, time.January, 1, 0, 0, 0, 0, time.UTC)
Expand Down Expand Up @@ -622,8 +620,8 @@ func TestSendCloudEventWithRetries(t *testing.T) {
if err := eventstest.CheckEventsUnordered(t, ceClient.Events, tc.name, tc.wantCEvents); err != nil {
t.Fatalf(err.Error())
}
recorder := controller.GetEventRecorder(ctx).(*record.FakeRecorder)
if err := eventstest.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
recorder := controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder)
if err := recorder.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
t.Fatalf(err.Error())
}
})
Expand Down Expand Up @@ -681,7 +679,7 @@ func TestSendCloudEventWithRetriesNoClient(t *testing.T) {

func setupFakeContext(t *testing.T, behaviour FakeClientBehaviour, withClient bool) context.Context {
var ctx context.Context
ctx, _ = rtesting.SetupFakeContext(t)
ctx, _ = eventstest.SetupFakeContext(t)
if withClient {
ctx = WithClient(ctx, &behaviour)
}
Expand Down
22 changes: 10 additions & 12 deletions pkg/reconciler/events/event_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,9 @@ import (
eventstest "github.com/tektoncd/pipeline/test/events"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/record"
"knative.dev/pkg/apis"
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
"knative.dev/pkg/controller"
rtesting "knative.dev/pkg/reconciler/testing"
)

func TestSendKubernetesEvents(t *testing.T) {
Expand Down Expand Up @@ -140,11 +138,11 @@ func TestSendKubernetesEvents(t *testing.T) {
}}

for _, ts := range testcases {
fr := record.NewFakeRecorder(1)
fr := eventstest.NewFakeRecorder(1)
tr := &corev1.Pod{}
sendKubernetesEvents(fr, ts.before, ts.after, tr)

err := eventstest.CheckEventsOrdered(t, fr.Events, ts.name, ts.wantEvents)
err := fr.CheckEventsOrdered(t, fr.Events, ts.name, ts.wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand All @@ -167,11 +165,11 @@ func TestEmitError(t *testing.T) {
}}

for _, ts := range testcases {
fr := record.NewFakeRecorder(1)
fr := eventstest.NewFakeRecorder(1)
tr := &corev1.Pod{}
EmitError(fr, ts.err, tr)

err := eventstest.CheckEventsOrdered(t, fr.Events, ts.name, ts.wantEvents)
err := fr.CheckEventsOrdered(t, fr.Events, ts.name, ts.wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -221,7 +219,7 @@ func TestEmit(t *testing.T) {

for _, tc := range testcases {
// Setup the context and seed test data
ctx, _ := rtesting.SetupFakeContext(t)
ctx, _ := eventstest.SetupFakeContext(t)
ctx = cloudevent.WithClient(ctx, &cloudevent.FakeClientBehaviour{SendSuccessfully: true})
fakeClient := cloudevent.Get(ctx).(cloudevent.FakeClient)

Expand All @@ -234,9 +232,9 @@ func TestEmit(t *testing.T) {
}
ctx = config.ToContext(ctx, cfg)

recorder := controller.GetEventRecorder(ctx).(*record.FakeRecorder)
recorder := controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder)
Emit(ctx, nil, after, object)
if err := eventstest.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
if err := recorder.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
t.Fatalf(err.Error())
}
if err := eventstest.CheckEventsUnordered(t, fakeClient.Events, tc.name, tc.wantCloudEvents); err != nil {
Expand Down Expand Up @@ -277,7 +275,7 @@ func TestEmitCloudEvents(t *testing.T) {

for _, tc := range testcases {
// Setup the context and seed test data
ctx, _ := rtesting.SetupFakeContext(t)
ctx, _ := eventstest.SetupFakeContext(t)
ctx = cloudevent.WithClient(ctx, &cloudevent.FakeClientBehaviour{SendSuccessfully: true})
fakeClient := cloudevent.Get(ctx).(cloudevent.FakeClient)

Expand All @@ -290,9 +288,9 @@ func TestEmitCloudEvents(t *testing.T) {
}
ctx = config.ToContext(ctx, cfg)

recorder := controller.GetEventRecorder(ctx).(*record.FakeRecorder)
recorder := controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder)
EmitCloudEvents(ctx, object)
if err := eventstest.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
if err := recorder.CheckEventsOrdered(t, recorder.Events, tc.name, tc.wantEvents); err != nil {
t.Fatalf(err.Error())
}
if err := eventstest.CheckEventsUnordered(t, fakeClient.Events, tc.name, tc.wantCloudEvents); err != nil {
Expand Down
9 changes: 4 additions & 5 deletions pkg/reconciler/pipelinerun/pipelinerun_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
ktesting "k8s.io/client-go/testing"
"k8s.io/client-go/tools/record"
clock "k8s.io/utils/clock/testing"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
Expand Down Expand Up @@ -152,7 +151,7 @@ func initializePipelineRunControllerAssets(t *testing.T, d test.Data, opts pipel
Clients: c,
Controller: ctl,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down Expand Up @@ -2951,7 +2950,7 @@ spec:
"Normal PipelineRunCouldntCancel PipelineRun \"test-pipeline-fails-to-cancel\" was cancelled but had errors trying to cancel TaskRuns",
"Warning InternalError 1 error occurred",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, prName, wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, prName, wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -3067,7 +3066,7 @@ spec:
"Normal PipelineRunCouldntTimeOut PipelineRun \"test-pipeline-fails-to-timeout\" was timed out but had errors trying to time out TaskRuns and/or Runs",
"Warning InternalError 1 error occurred",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, prName, wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, prName, wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -7082,7 +7081,7 @@ func (prt PipelineRunTest) reconcileRun(namespace, pipelineRunName string, wantE

// Check generated events match what's expected
if len(wantEvents) > 0 {
if err := eventstest.CheckEventsOrdered(prt.Test, prt.TestAssets.Recorder.Events, pipelineRunName, wantEvents); err != nil {
if err := prt.TestAssets.Recorder.CheckEventsOrdered(prt.Test, prt.TestAssets.Recorder.Events, pipelineRunName, wantEvents); err != nil {
prt.Test.Errorf(err.Error())
}
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/reconciler/resolutionrequest/resolutionrequest_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ import (
resolutioncommon "github.com/tektoncd/pipeline/pkg/resolution/common"
"github.com/tektoncd/pipeline/test"
"github.com/tektoncd/pipeline/test/diff"
eventstest "github.com/tektoncd/pipeline/test/events"
"github.com/tektoncd/pipeline/test/names"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/tools/record"
clock "k8s.io/utils/clock/testing"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
Expand Down Expand Up @@ -79,7 +79,7 @@ func initializeResolutionRequestControllerAssets(t *testing.T, d test.Data) (tes
Controller: ctl,
Clients: c,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down
3 changes: 1 addition & 2 deletions pkg/reconciler/run/run_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/tools/record"
"knative.dev/pkg/apis"
cminformer "knative.dev/pkg/configmap/informer"
pkgreconciler "knative.dev/pkg/reconciler"
Expand Down Expand Up @@ -67,7 +66,7 @@ func initializeRunControllerAssets(t *testing.T, d test.Data) (test.Assets, func
Controller: ctl,
Clients: c,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down
26 changes: 13 additions & 13 deletions pkg/reconciler/taskrun/taskrun_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ import (
"k8s.io/apimachinery/pkg/types"
fakekubeclientset "k8s.io/client-go/kubernetes/fake"
ktesting "k8s.io/client-go/testing"
"k8s.io/client-go/tools/record"
clock "k8s.io/utils/clock/testing"
"knative.dev/pkg/apis"
cminformer "knative.dev/pkg/configmap/informer"
Expand Down Expand Up @@ -496,7 +495,7 @@ func initializeTaskRunControllerAssets(t *testing.T, d test.Data, opts pipeline.
Controller: ctl,
Clients: c,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down Expand Up @@ -697,7 +696,8 @@ spec:
"Normal Start",
"Normal Running",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, "reconcile-cloud-events", wantEvents)

err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, "reconcile-cloud-events", wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -1192,7 +1192,7 @@ spec:
t.Fatalf("Expected actions to be logged in the kubeclient, got none")
}

err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -1347,7 +1347,7 @@ spec:
t.Fatalf("Expected actions to be logged in the kubeclient, got none")
}

err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -1686,7 +1686,7 @@ spec:
t.Errorf("expected 2 actions, got %d. Actions: %#v", len(actions), actions)
}

err := eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
err := testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.name, tc.wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -1964,7 +1964,7 @@ status:
"Normal Running Not all Steps",
"Normal Succeeded",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-pod-updateStatus", wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-pod-updateStatus", wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -2063,7 +2063,7 @@ status:
"Normal Started",
"Warning Failed TaskRun \"test-taskrun-run-cancelled\" was cancelled",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-on-cancelled-taskrun", wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-on-cancelled-taskrun", wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -2136,7 +2136,7 @@ status:
"Normal Started",
"Warning Failed TaskRun \"test-taskrun-run-timedout\" was cancelled. TaskRun cancelled as pipeline has been cancelled.",
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-on-timedout-taskrun", wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, "test-reconcile-on-timedout-taskrun", wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -2207,7 +2207,7 @@ status:
if d := cmp.Diff(expectedStatus, condition, ignoreLastTransitionTime); d != "" {
t.Fatalf("Did not get expected condition %s", diff.PrintWantGot(d))
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, taskRun.Name, wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, taskRun.Name, wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -2279,7 +2279,7 @@ status:
if d := cmp.Diff(expectedStatus, condition, ignoreLastTransitionTime); d != "" {
t.Fatalf("Did not get expected condition %s", diff.PrintWantGot(d))
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, taskRun.Name, wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, taskRun.Name, wantEvents)
if err != nil {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -2394,7 +2394,7 @@ status:
if d := cmp.Diff(tc.expectedStatus, condition, ignoreLastTransitionTime); d != "" {
t.Fatalf("Did not get expected condition %s", diff.PrintWantGot(d))
}
err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.taskRun.Name, tc.wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, tc.taskRun.Name, tc.wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down Expand Up @@ -3541,7 +3541,7 @@ spec:
}
}

err = eventstest.CheckEventsOrdered(t, testAssets.Recorder.Events, tt.desc, tt.wantEvents)
err = testAssets.Recorder.CheckEventsOrdered(t, testAssets.Recorder.Events, tt.desc, tt.wantEvents)
if !(err == nil) {
t.Errorf(err.Error())
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/reconciler/testing/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"testing"

"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
eventstest "github.com/tektoncd/pipeline/test/events"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/record"
filteredinformerfactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
"knative.dev/pkg/injection"
logtesting "knative.dev/pkg/logging/testing"
Expand Down Expand Up @@ -52,7 +52,7 @@ func TestLogger(t *testing.T) *zap.SugaredLogger {
// The provided context includes the FilteredInformerFactory LabelKey.
func setupFakeContextWithLabelKey(t zaptest.TestingT) (context.Context, context.CancelFunc, []controller.Informer) {
ctx, c := context.WithCancel(logtesting.TestContextWithLogger(t))
ctx = controller.WithEventRecorder(ctx, record.NewFakeRecorder(1000))
ctx = controller.WithEventRecorder(ctx, eventstest.NewFakeRecorder(1000))
ctx = filteredinformerfactory.WithSelectors(ctx, v1beta1.ManagedByLabelKey)
ctx, is := injection.Fake.SetupInformers(ctx, &rest.Config{})
return ctx, c, is
Expand Down
4 changes: 2 additions & 2 deletions pkg/resolution/resolver/framework/reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ import (
resolutioncommon "github.com/tektoncd/pipeline/pkg/resolution/common"
"github.com/tektoncd/pipeline/test"
"github.com/tektoncd/pipeline/test/diff"
eventstest "github.com/tektoncd/pipeline/test/events"
"github.com/tektoncd/pipeline/test/names"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/tools/record"
clock "k8s.io/utils/clock/testing"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
Expand Down Expand Up @@ -267,7 +267,7 @@ func getResolverFrameworkController(ctx context.Context, t *testing.T, d test.Da
Controller: ctl,
Clients: c,
Informers: informers,
Recorder: controller.GetEventRecorder(ctx).(*record.FakeRecorder),
Recorder: controller.GetEventRecorder(ctx).(*eventstest.FakeRecorder),
Ctx: ctx,
}, cancel
}
Expand Down
Loading

0 comments on commit da4e39c

Please sign in to comment.