| // Copyright 2010 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package net_test |
| |
| import ( |
| "io" |
| "net" |
| "testing" |
| "time" |
| |
| "golang.org/x/net/nettest" |
| ) |
| |
| func TestPipe(t *testing.T) { |
| nettest.TestConn(t, func() (c1, c2 net.Conn, stop func(), err error) { |
| c1, c2 = net.Pipe() |
| stop = func() { |
| c1.Close() |
| c2.Close() |
| } |
| return |
| }) |
| } |
| |
| func TestPipeCloseError(t *testing.T) { |
| c1, c2 := net.Pipe() |
| c1.Close() |
| |
| if _, err := c1.Read(nil); err != io.ErrClosedPipe { |
| t.Errorf("c1.Read() = %v, want io.ErrClosedPipe", err) |
| } |
| if _, err := c1.Write(nil); err != io.ErrClosedPipe { |
| t.Errorf("c1.Write() = %v, want io.ErrClosedPipe", err) |
| } |
| if err := c1.SetDeadline(time.Time{}); err != io.ErrClosedPipe { |
| t.Errorf("c1.SetDeadline() = %v, want io.ErrClosedPipe", err) |
| } |
| if _, err := c2.Read(nil); err != io.EOF { |
| t.Errorf("c2.Read() = %v, want io.EOF", err) |
| } |
| if _, err := c2.Write(nil); err != io.ErrClosedPipe { |
| t.Errorf("c2.Write() = %v, want io.ErrClosedPipe", err) |
| } |
| if err := c2.SetDeadline(time.Time{}); err != io.ErrClosedPipe { |
| t.Errorf("c2.SetDeadline() = %v, want io.ErrClosedPipe", err) |
| } |
| } |