Fix LifetimeWatcher test using a buffered channel to ensure that we don't miss a renewal notice. (#14298)

This commit is contained in:
Nick Cabatoff
2022-02-28 09:24:19 -05:00
committed by GitHub
parent d60a1fe423
commit 459e13f813

View File

@@ -174,8 +174,10 @@ func TestLifetimeWatcher(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
doneCh := make(chan error, 1)
go func() { go func() {
v.doneCh <- v.doRenewWithOptions(false, false, tc.leaseDurationSeconds, "myleaseID", tc.renew, time.Second) doneCh <- v.doRenewWithOptions(false, false,
tc.leaseDurationSeconds, "myleaseID", tc.renew, time.Second)
}() }()
defer v.Stop() defer v.Stop()
@@ -189,12 +191,15 @@ func TestLifetimeWatcher(t *testing.T) {
if r.Secret != renewedSecret { if r.Secret != renewedSecret {
t.Fatalf("expected secret %v, got %v", renewedSecret, r.Secret) t.Fatalf("expected secret %v, got %v", renewedSecret, r.Secret)
} }
case err := <-v.DoneCh(): case err := <-doneCh:
if tc.expectError != nil && !errors.Is(err, tc.expectError) { if tc.expectError != nil && !errors.Is(err, tc.expectError) {
t.Fatalf("expected error %q, got: %v", tc.expectError, err) t.Fatalf("expected error %q, got: %v", tc.expectError, err)
} }
if tc.expectError == nil && err != nil {
t.Fatalf("expected no error, got: %v", err)
}
if tc.expectRenewal { if tc.expectRenewal {
t.Fatal("expected at least one renewal") t.Fatalf("expected at least one renewal, got donech result: %v", err)
} }
} }
}) })