From: Matt Joiner Date: Wed, 18 Mar 2015 07:16:27 +0000 (+1100) Subject: mse: Check that readUntil doesn't read indefinitely while synchronizing X-Git-Tag: v1.0.0~1275 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=0d5c10ef53c3bde2e53d8572fa90a1b9aa2632cb;p=btrtrc.git mse: Check that readUntil doesn't read indefinitely while synchronizing --- diff --git a/mse/mse_test.go b/mse/mse_test.go index 6b5f82c3..bc14c168 100644 --- a/mse/mse_test.go +++ b/mse/mse_test.go @@ -2,7 +2,9 @@ package mse import ( "bytes" + "crypto/rand" "io" + "io/ioutil" "net" "sync" @@ -102,3 +104,19 @@ func BenchmarkHandshake(b *testing.B) { allHandshakeTests(b) } } + +type trackReader struct { + r io.Reader + n int64 +} + +func (me *trackReader) Read(b []byte) (n int, err error) { + n, err = me.r.Read(b) + me.n += int64(n) + return +} + +func TestReceiveRandomData(t *testing.T) { + tr := trackReader{rand.Reader, 0} + ReceiveHandshake(readWriter{&tr, ioutil.Discard}, nil) +}