diff --git a/conn_test.go b/conn_test.go index 1dc52ec..61ed74e 100644 --- a/conn_test.go +++ b/conn_test.go @@ -148,6 +148,31 @@ func TestFraming(t *testing.T) { } } +func TestConcurrencyWriteControl(t *testing.T) { + const message = "this is a ping/pong messsage" + loop := 10 + workers := 10 + for i := 0; i < loop; i++ { + var connBuf bytes.Buffer + + wg := sync.WaitGroup{} + wc := newTestConn(nil, &connBuf, true) + + for i := 0; i < workers; i++ { + wg.Add(1) + go func() { + defer wg.Done() + if err := wc.WriteControl(PongMessage, []byte(message), time.Now().Add(time.Second)); err != nil { + t.Errorf("concurrently wc.WriteControl() returned %v", err) + } + }() + } + + wg.Wait() + wc.Close() + } +} + func TestControl(t *testing.T) { const message = "this is a ping/pong message" for _, isServer := range []bool{true, false} {