mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #39968 from samuelkarp/issue-39857
awslogs: fix flaky TestLogBlocking unit test
This commit is contained in:
commit
fd5adece93
1 changed files with 9 additions and 6 deletions
|
@ -24,7 +24,6 @@ import (
|
|||
"github.com/docker/docker/dockerversion"
|
||||
"gotest.tools/assert"
|
||||
is "gotest.tools/assert/cmp"
|
||||
"gotest.tools/skip"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -286,8 +285,10 @@ func TestLogClosed(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// TestLogBlocking tests that the Log method blocks appropriately when
|
||||
// non-blocking behavior is not enabled. Blocking is achieved through an
|
||||
// internal channel that must be drained for Log to return.
|
||||
func TestLogBlocking(t *testing.T) {
|
||||
skip.If(t, runtime.GOOS == "windows", "FIXME: test is flaky on Windows. See #39857")
|
||||
mockClient := newMockClient()
|
||||
stream := &logStream{
|
||||
client: mockClient,
|
||||
|
@ -301,18 +302,20 @@ func TestLogBlocking(t *testing.T) {
|
|||
err := stream.Log(&logger.Message{})
|
||||
errorCh <- err
|
||||
}()
|
||||
// block until the goroutine above has started
|
||||
<-started
|
||||
select {
|
||||
case err := <-errorCh:
|
||||
t.Fatal("Expected stream.Log to block: ", err)
|
||||
default:
|
||||
break
|
||||
}
|
||||
// assuming it is blocked, we can now try to drain the internal channel and
|
||||
// unblock it
|
||||
select {
|
||||
case <-stream.messages:
|
||||
break
|
||||
default:
|
||||
case <-time.After(10 * time.Millisecond):
|
||||
// if we're unable to drain the channel within 10ms, something seems broken
|
||||
t.Fatal("Expected to be able to read from stream.messages but was unable to")
|
||||
case <-stream.messages:
|
||||
}
|
||||
select {
|
||||
case err := <-errorCh:
|
||||
|
|
Loading…
Add table
Reference in a new issue