123456789101112131415161718192021222324252627282930313233 |
- package utils
- import (
- "bufio"
- "fmt"
- "net"
- "net/http"
- "net/http/httptest"
- "testing"
- "time"
- )
- func TestTimeoutConnRead(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- fmt.Fprintln(w, "hello")
- }))
- defer ts.Close()
- conn, err := net.Dial("tcp", ts.URL[7:])
- if err != nil {
- t.Fatalf("failed to create connection to %q: %v", ts.URL, err)
- }
- tconn := NewTimeoutConn(conn, 1*time.Second)
- if _, err = bufio.NewReader(tconn).ReadString('\n'); err == nil {
- t.Fatalf("expected timeout error, got none")
- }
- if _, err := fmt.Fprintf(tconn, "GET / HTTP/1.0\r\n\r\n"); err != nil {
- t.Errorf("unexpected error: %v", err)
- }
- if _, err = bufio.NewReader(tconn).ReadString('\n'); err != nil {
- t.Errorf("unexpected error: %v", err)
- }
- }
|