@@ -5,14 +5,14 @@ package websocket_test
55import (
66 "bytes"
77 "context"
8- "crypto/rand"
98 "fmt"
109 "io"
1110 "io/ioutil"
1211 "net/http"
1312 "net/http/httptest"
1413 "os"
1514 "os/exec"
15+ "strings"
1616 "sync"
1717 "testing"
1818 "time"
@@ -379,60 +379,52 @@ func BenchmarkConn(b *testing.B) {
379379 mode websocket.CompressionMode
380380 }{
381381 {
382- name : "compressionDisabled " ,
382+ name : "disabledCompress " ,
383383 mode : websocket .CompressionDisabled ,
384384 },
385385 {
386- name : "compression " ,
386+ name : "compress " ,
387387 mode : websocket .CompressionContextTakeover ,
388388 },
389389 {
390- name : "noContextCompression " ,
390+ name : "compressNoContext " ,
391391 mode : websocket .CompressionNoContextTakeover ,
392392 },
393393 }
394394 for _ , bc := range benchCases {
395395 b .Run (bc .name , func (b * testing.B ) {
396396 bb , c1 , c2 := newConnTest (b , & websocket.DialOptions {
397397 CompressionOptions : & websocket.CompressionOptions {Mode : bc .mode },
398- }, nil )
398+ }, & websocket.AcceptOptions {
399+ CompressionOptions : & websocket.CompressionOptions {Mode : bc .mode },
400+ })
399401 defer bb .cleanup ()
400402
401403 bb .goEchoLoop (c2 )
402404
403- const n = 32768
404- writeBuf := make ([]byte , n )
405- readBuf := make ([]byte , n )
406- writes := make (chan websocket.MessageType )
405+ msg := []byte (strings .Repeat ("1234" , 128 ))
406+ readBuf := make ([]byte , len (msg ))
407+ writes := make (chan struct {})
407408 defer close (writes )
408409 werrs := make (chan error )
409410
410411 go func () {
411- for typ := range writes {
412- werrs <- c1 .Write (bb .ctx , typ , writeBuf )
412+ for range writes {
413+ werrs <- c1 .Write (bb .ctx , websocket . MessageText , msg )
413414 }
414415 }()
415- b .SetBytes (n )
416+ b .SetBytes (int64 ( len ( msg )) )
416417 b .ReportAllocs ()
417418 b .ResetTimer ()
418419 for i := 0 ; i < b .N ; i ++ {
419- _ , err := rand .Reader .Read (writeBuf )
420- if err != nil {
421- b .Fatal (err )
422- }
423-
424- expType := websocket .MessageBinary
425- if writeBuf [0 ]% 2 == 1 {
426- expType = websocket .MessageText
427- }
428- writes <- expType
420+ writes <- struct {}{}
429421
430422 typ , r , err := c1 .Reader (bb .ctx )
431423 if err != nil {
432424 b .Fatal (err )
433425 }
434- if expType != typ {
435- assert .Equal (b , "data type" , expType , typ )
426+ if websocket . MessageText != typ {
427+ assert .Equal (b , "data type" , websocket . MessageText , typ )
436428 }
437429
438430 _ , err = io .ReadFull (r , readBuf )
@@ -448,8 +440,8 @@ func BenchmarkConn(b *testing.B) {
448440 assert .Equal (b , "n2" , 0 , n2 )
449441 }
450442
451- if ! bytes .Equal (writeBuf , readBuf ) {
452- assert .Equal (b , "msg" , writeBuf , readBuf )
443+ if ! bytes .Equal (msg , readBuf ) {
444+ assert .Equal (b , "msg" , msg , readBuf )
453445 }
454446
455447 err = <- werrs
@@ -464,3 +456,8 @@ func BenchmarkConn(b *testing.B) {
464456 })
465457 }
466458}
459+
460+ func TestCompression (t * testing.T ) {
461+ t .Parallel ()
462+
463+ }
0 commit comments