fix go get, improve redis test (#2450)

* add pomerium.go to fix go get

* try to make redis test less flaky
This commit is contained in:
Caleb Doxsey 2021-08-06 12:07:20 -06:00 committed by GitHub
parent 33f7e8487a
commit 3f8617cd93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 18 deletions

View file

@ -128,7 +128,7 @@ func TestChangeSignal(t *testing.T) {
ctx, clearTimeout := context.WithTimeout(ctx, time.Second*30) ctx, clearTimeout := context.WithTimeout(ctx, time.Second*30)
defer clearTimeout() defer clearTimeout()
ready := make(chan struct{}) done := make(chan struct{})
var eg errgroup.Group var eg errgroup.Group
eg.Go(func() error { eg.Go(func() error {
backend, err := New(rawURL) backend, err := New(rawURL)
@ -140,24 +140,18 @@ func TestChangeSignal(t *testing.T) {
ch := backend.onChange.Bind() ch := backend.onChange.Bind()
defer backend.onChange.Unbind(ch) defer backend.onChange.Unbind(ch)
// signal the second backend that we're ready to receive a change
close(ready)
select { select {
case <-ch: case <-ch:
case <-ctx.Done(): case <-ctx.Done():
return ctx.Err() return ctx.Err()
} }
// signal the second backend that we've received the change
close(done)
return nil return nil
}) })
eg.Go(func() error { eg.Go(func() error {
// wait for the first backend to be bound to the on change handler
select {
case <-ctx.Done():
return ctx.Err()
case <-ready:
}
backend, err := New(rawURL) backend, err := New(rawURL)
if err != nil { if err != nil {
return err return err
@ -165,6 +159,7 @@ func TestChangeSignal(t *testing.T) {
defer func() { _ = backend.Close() }() defer func() { _ = backend.Close() }()
// put a new value to trigger a change // put a new value to trigger a change
for {
_, err = backend.Put(ctx, &databroker.Record{ _, err = backend.Put(ctx, &databroker.Record{
Type: "TYPE", Type: "TYPE",
Id: "ID", Id: "ID",
@ -172,7 +167,15 @@ func TestChangeSignal(t *testing.T) {
if err != nil { if err != nil {
return err return err
} }
select {
case <-ctx.Done():
return ctx.Err()
case <-done:
return nil return nil
case <-time.After(time.Millisecond * 100):
}
}
}) })
assert.NoError(t, eg.Wait(), "expected signal to be fired when another backend triggers a change") assert.NoError(t, eg.Wait(), "expected signal to be fired when another backend triggers a change")
return nil return nil

2
pomerium.go Normal file
View file

@ -0,0 +1,2 @@
// Package pomerium is the root of the pomerium project.
package pomerium