From ad633202eab5dcdbc84b32b830d39d312df490f0 Mon Sep 17 00:00:00 2001 From: Christian Schlotter Date: Wed, 26 Apr 2023 23:23:42 +0200 Subject: [PATCH] internal/machine-controller fix flakes in phases test --- .../machine/machine_controller_phases_test.go | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/internal/controllers/machine/machine_controller_phases_test.go b/internal/controllers/machine/machine_controller_phases_test.go index 3366dd70d82d..296c12e92fd5 100644 --- a/internal/controllers/machine/machine_controller_phases_test.go +++ b/internal/controllers/machine/machine_controller_phases_test.go @@ -213,12 +213,12 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(env.Create(ctx, bootstrapConfig)).To(Succeed()) g.Expect(env.Create(ctx, infraMachine)).To(Succeed()) + // We have to subtract 2 seconds, because .status.lastUpdated does not contain miliseconds. + preUpdate := time.Now().Add(-2 * time.Second) g.Expect(env.Create(ctx, machine)).To(Succeed()) // Set the LastUpdated to be able to verify it is updated when the phase changes modifiedMachine := machine.DeepCopy() - lastUpdated := metav1.NewTime(time.Now().Add(-10 * time.Second)) - machine.Status.LastUpdated = &lastUpdated g.Expect(env.Status().Patch(ctx, modifiedMachine, client.MergeFrom(machine))).To(Succeed()) // Set bootstrap ready. @@ -235,7 +235,7 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(machine.Status.GetTypedPhase()).To(Equal(clusterv1.MachinePhaseProvisioning)) // Verify that the LastUpdated timestamp was updated g.Expect(machine.Status.LastUpdated).NotTo(BeNil()) - g.Expect(machine.Status.LastUpdated.After(lastUpdated.Time)).To(BeTrue()) + g.Expect(machine.Status.LastUpdated.After(preUpdate)).To(BeTrue()) return true }, 10*time.Second).Should(BeTrue()) }) @@ -281,14 +281,13 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(env.Create(ctx, bootstrapConfig)).To(Succeed()) g.Expect(env.Create(ctx, infraMachine)).To(Succeed()) + // We have to subtract 2 seconds, because .status.lastUpdated does not contain miliseconds. + preUpdate := time.Now().Add(-2 * time.Second) g.Expect(env.Create(ctx, machine)).To(Succeed()) modifiedMachine := machine.DeepCopy() // Set NodeRef. machine.Status.NodeRef = &corev1.ObjectReference{Kind: "Node", Name: node.Name} - // Set the LastUpdated to be able to verify it is updated when the phase changes - lastUpdated := metav1.NewTime(time.Now().Add(-10 * time.Second)) - machine.Status.LastUpdated = &lastUpdated g.Expect(env.Status().Patch(ctx, modifiedMachine, client.MergeFrom(machine))).To(Succeed()) // Set bootstrap ready. @@ -322,7 +321,7 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(machine.Status.GetTypedPhase()).To(Equal(clusterv1.MachinePhaseRunning)) // Verify that the LastUpdated timestamp was updated g.Expect(machine.Status.LastUpdated).NotTo(BeNil()) - g.Expect(machine.Status.LastUpdated.After(lastUpdated.Time)).To(BeTrue()) + g.Expect(machine.Status.LastUpdated.After(preUpdate)).To(BeTrue()) return true }, 10*time.Second).Should(BeTrue()) }) @@ -441,14 +440,13 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(env.Create(ctx, bootstrapConfig)).To(Succeed()) g.Expect(env.Create(ctx, infraMachine)).To(Succeed()) + // We have to subtract 2 seconds, because .status.lastUpdated does not contain miliseconds. + preUpdate := time.Now().Add(-2 * time.Second) g.Expect(env.Create(ctx, machine)).To(Succeed()) modifiedMachine := machine.DeepCopy() // Set NodeRef. machine.Status.NodeRef = &corev1.ObjectReference{Kind: "Node", Name: node.Name} - // Set the LastUpdated to be able to verify it is updated when the phase changes - lastUpdated := metav1.NewTime(time.Now().Add(-10 * time.Second)) - machine.Status.LastUpdated = &lastUpdated g.Expect(env.Status().Patch(ctx, modifiedMachine, client.MergeFrom(machine))).To(Succeed()) // Set bootstrap ready. @@ -470,7 +468,7 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(machine.Status.GetTypedPhase()).To(Equal(clusterv1.MachinePhaseRunning)) // Verify that the LastUpdated timestamp was updated g.Expect(machine.Status.LastUpdated).NotTo(BeNil()) - g.Expect(machine.Status.LastUpdated.After(lastUpdated.Time)).To(BeTrue()) + g.Expect(machine.Status.LastUpdated.After(preUpdate)).To(BeTrue()) return true }, 10*time.Second).Should(BeTrue()) }) @@ -573,6 +571,8 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(env.Create(ctx, bootstrapConfig)).To(Succeed()) g.Expect(env.Create(ctx, infraMachine)).To(Succeed()) + // We have to subtract 2 seconds, because .status.lastUpdated does not contain miliseconds. + preUpdate := time.Now().Add(-2 * time.Second) g.Expect(env.Create(ctx, machine)).To(Succeed()) // Set bootstrap ready. @@ -597,9 +597,6 @@ func TestReconcileMachinePhases(t *testing.T) { modifiedMachine := machine.DeepCopy() // Set NodeRef. machine.Status.NodeRef = &corev1.ObjectReference{Kind: "Node", Name: node.Name} - // Set the LastUpdated to be able to verify it is updated when the phase changes - lastUpdated := metav1.NewTime(time.Now().Add(-10 * time.Second)) - machine.Status.LastUpdated = &lastUpdated g.Expect(env.Status().Patch(ctx, modifiedMachine, client.MergeFrom(machine))).To(Succeed()) modifiedMachine = machine.DeepCopy() @@ -621,7 +618,7 @@ func TestReconcileMachinePhases(t *testing.T) { g.Expect(nodeHealthyCondition.Reason).To(Equal(clusterv1.DeletingReason)) // Verify that the LastUpdated timestamp was updated g.Expect(machine.Status.LastUpdated).NotTo(BeNil()) - g.Expect(machine.Status.LastUpdated.After(lastUpdated.Time)).To(BeTrue()) + g.Expect(machine.Status.LastUpdated.After(preUpdate)).To(BeTrue()) return true }, 10*time.Second).Should(BeTrue()) })