Unverified Commit b10cf5ef authored by Steven Allen's avatar Steven Allen Committed by GitHub

Merge pull request #60 from libp2p/fix/deadlines

add test for deadlines
parents fd72cdc0 50a8f1b4
......@@ -429,6 +429,58 @@ func TestOpenAfterClose(t *testing.T) {
mpb.Close()
}
func TestDeadline(t *testing.T) {
a, b := net.Pipe()
mpa := NewMultiplex(a, false)
mpb := NewMultiplex(b, true)
defer mpa.Close()
defer mpb.Close()
sa, err := mpa.NewStream()
if err != nil {
t.Fatal(err)
}
_, err = mpb.Accept()
if err != nil {
t.Fatal(err)
}
sa.SetDeadline(time.Now().Add(time.Second))
_, err = sa.Read(make([]byte, 1024))
if err != errTimeout {
t.Fatal("expected timeout")
}
}
func TestReadAfterClose(t *testing.T) {
a, b := net.Pipe()
mpa := NewMultiplex(a, false)
mpb := NewMultiplex(b, true)
defer mpa.Close()
defer mpb.Close()
sa, err := mpa.NewStream()
if err != nil {
t.Fatal(err)
}
sb, err := mpb.Accept()
if err != nil {
t.Fatal(err)
}
sa.Close()
_, err = sb.Read(make([]byte, 1024))
if err != io.EOF {
t.Fatal("expected EOF")
}
}
func TestFuzzCloseStream(t *testing.T) {
timer := time.AfterFunc(10*time.Second, func() {
// This is really the *only* reliable way to set a timeout on
......
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