Skip to content

Commit a724ba4

Browse files
committed
Test truncated frames at all positions
1 parent ae46df1 commit a724ba4

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

conn_test.go

+27-19
Original file line numberDiff line numberDiff line change
@@ -175,29 +175,37 @@ func TestCloseBeforeFinalFrame(t *testing.T) {
175175
}
176176

177177
func TestEOFWithinFrame(t *testing.T) {
178-
const bufSize = 512
178+
const bufSize = 64
179179

180-
var b bytes.Buffer
181-
wc := newConn(fakeNetConn{Reader: nil, Writer: &b}, false, 1024, 1024)
182-
rc := newConn(fakeNetConn{Reader: &b, Writer: nil}, true, 1024, 1024)
180+
for n := 0; ; n++ {
181+
var b bytes.Buffer
182+
wc := newConn(fakeNetConn{Reader: nil, Writer: &b}, false, 1024, 1024)
183+
rc := newConn(fakeNetConn{Reader: &b, Writer: nil}, true, 1024, 1024)
183184

184-
w, _ := wc.NextWriter(BinaryMessage)
185-
w.Write(make([]byte, bufSize))
186-
w.Close()
185+
w, _ := wc.NextWriter(BinaryMessage)
186+
w.Write(make([]byte, bufSize))
187+
w.Close()
187188

188-
b.Truncate(bufSize / 2)
189+
if n >= b.Len() {
190+
break
191+
}
192+
b.Truncate(n)
189193

190-
op, r, err := rc.NextReader()
191-
if op != BinaryMessage || err != nil {
192-
t.Fatalf("NextReader() returned %d, %v", op, err)
193-
}
194-
_, err = io.Copy(ioutil.Discard, r)
195-
if err != errUnexpectedEOF {
196-
t.Fatalf("io.Copy() returned %v, want %v", err, errUnexpectedEOF)
197-
}
198-
_, _, err = rc.NextReader()
199-
if err != errUnexpectedEOF {
200-
t.Fatalf("NextReader() returned %v, want %v", err, errUnexpectedEOF)
194+
op, r, err := rc.NextReader()
195+
if err == errUnexpectedEOF {
196+
continue
197+
}
198+
if op != BinaryMessage || err != nil {
199+
t.Fatalf("%d: NextReader() returned %d, %v", n, op, err)
200+
}
201+
_, err = io.Copy(ioutil.Discard, r)
202+
if err != errUnexpectedEOF {
203+
t.Fatalf("%d: io.Copy() returned %v, want %v", n, err, errUnexpectedEOF)
204+
}
205+
_, _, err = rc.NextReader()
206+
if err != errUnexpectedEOF {
207+
t.Fatalf("%d: NextReader() returned %v, want %v", n, err, errUnexpectedEOF)
208+
}
201209
}
202210
}
203211

0 commit comments

Comments
 (0)