Skip to content

Commit

Permalink
add a test for the problem
Browse files Browse the repository at this point in the history
  • Loading branch information
whyrusleeping committed May 12, 2016
1 parent ab3b0af commit d274102
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions session_test.go
Expand Up @@ -148,6 +148,47 @@ func TestPing_Timeout(t *testing.T) {
}
}

func TestCloseBeforeAck(t *testing.T) {
cfg := testConf()
cfg.AcceptBacklog = 8
client, server := testClientServerConfig(cfg)

defer client.Close()
defer server.Close()

for i := 0; i < 8; i++ {
s, err := client.OpenStream()
if err != nil {
t.Fatal(err)
}
s.Close()
}

for i := 0; i < 8; i++ {
s, err := server.AcceptStream()
if err != nil {
t.Fatal(err)
}
s.Close()
}

done := make(chan struct{})
go func() {
defer close(done)
s, err := client.OpenStream()
if err != nil {
t.Fatal(err)
}
s.Close()
}()

select {
case <-done:
case <-time.After(time.Second * 5):
t.Fatal("timed out trying to open stream")
}
}

func TestAccept(t *testing.T) {
client, server := testClientServer()
defer client.Close()
Expand Down

0 comments on commit d274102

Please sign in to comment.