libgo: Update to Go 1.3.3 release.
[gcc.git] / libgo / go / net / http / httptest / server_test.go
1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package httptest
6
7 import (
8 "io/ioutil"
9 "net/http"
10 "testing"
11 "time"
12 )
13
14 func TestServer(t *testing.T) {
15 ts := NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
16 w.Write([]byte("hello"))
17 }))
18 defer ts.Close()
19 res, err := http.Get(ts.URL)
20 if err != nil {
21 t.Fatal(err)
22 }
23 got, err := ioutil.ReadAll(res.Body)
24 if err != nil {
25 t.Fatal(err)
26 }
27 if string(got) != "hello" {
28 t.Errorf("got %q, want hello", string(got))
29 }
30 }
31
32 func TestIssue7264(t *testing.T) {
33 t.Skip("broken test - removed at tip")
34 for i := 0; i < 1000; i++ {
35 func() {
36 inHandler := make(chan bool, 1)
37 ts := NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
38 inHandler <- true
39 }))
40 defer ts.Close()
41 tr := &http.Transport{
42 ResponseHeaderTimeout: time.Nanosecond,
43 }
44 defer tr.CloseIdleConnections()
45 c := &http.Client{Transport: tr}
46 res, err := c.Get(ts.URL)
47 <-inHandler
48 if err == nil {
49 res.Body.Close()
50 }
51 }()
52 }
53 }