- package privval
-
- import (
- "net"
- "testing"
- "time"
- )
-
- func TestTCPTimeoutListenerAcceptDeadline(t *testing.T) {
- ln, err := net.Listen("tcp", "127.0.0.1:0")
- if err != nil {
- t.Fatal(err)
- }
-
- ln = newTCPTimeoutListener(ln, time.Millisecond, time.Second, time.Second)
-
- _, err = ln.Accept()
- opErr, ok := err.(*net.OpError)
- if !ok {
- t.Fatalf("have %v, want *net.OpError", err)
- }
-
- if have, want := opErr.Op, "accept"; have != want {
- t.Errorf("have %v, want %v", have, want)
- }
- }
-
- func TestTCPTimeoutListenerConnDeadline(t *testing.T) {
- ln, err := net.Listen("tcp", "127.0.0.1:0")
- if err != nil {
- t.Fatal(err)
- }
-
- ln = newTCPTimeoutListener(ln, time.Second, time.Millisecond, time.Second)
-
- donec := make(chan struct{})
- go func(ln net.Listener) {
- defer close(donec)
-
- c, err := ln.Accept()
- if err != nil {
- t.Fatal(err)
- }
-
- time.Sleep(2 * time.Millisecond)
-
- msg := make([]byte, 200)
- _, err = c.Read(msg)
- opErr, ok := err.(*net.OpError)
- if !ok {
- t.Fatalf("have %v, want *net.OpError", err)
- }
-
- if have, want := opErr.Op, "read"; have != want {
- t.Errorf("have %v, want %v", have, want)
- }
- }(ln)
-
- _, err = net.Dial("tcp", ln.Addr().String())
- if err != nil {
- t.Fatal(err)
- }
-
- <-donec
- }
|