Commit 47494676 authored by Steven Allen's avatar Steven Allen

add tests for close when reading/writing

parent f772aae9
......@@ -3,12 +3,13 @@ package msgio
import (
"bytes"
"fmt"
randbuf "github.com/jbenet/go-randbuf"
"io"
"math/rand"
"sync"
"testing"
"time"
randbuf "github.com/jbenet/go-randbuf"
)
func TestReadWrite(t *testing.T) {
......@@ -195,3 +196,43 @@ func TestBadSizes(t *testing.T) {
}
_ = msg
}
func TestReadClose(t *testing.T) {
r, w := io.Pipe()
writer := NewWriter(w)
defer writer.Close()
reader := NewReader(r)
buf := [10]byte{}
done := make(chan struct{})
go func() {
defer close(done)
time.Sleep(10 * time.Millisecond)
reader.Close()
}()
n, err := reader.Read(buf[:])
if n != 0 || err == nil {
t.Error("expected to read nothing")
}
<-done
}
func TestWriteClose(t *testing.T) {
r, w := io.Pipe()
writer := NewWriter(w)
reader := NewReader(r)
defer reader.Close()
buf := [10]byte{}
done := make(chan struct{})
go func() {
defer close(done)
time.Sleep(10 * time.Millisecond)
writer.Close()
}()
n, err := writer.Write(buf[:])
if n != 0 || err == nil {
t.Error("expected to read nothing")
}
<-done
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment