libgo: Merge from revision 18783:00cce3a34d7e of master library.
[official-gcc.git] / libgo / go / net / http / transfer_test.go
blobfb5ef37a0f0e605f7e11d220130709f0a6a37606
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.
5 package http
7 import (
8 "bufio"
9 "strings"
10 "testing"
13 func TestBodyReadBadTrailer(t *testing.T) {
14 b := &body{
15 src: strings.NewReader("foobar"),
16 hdr: true, // force reading the trailer
17 r: bufio.NewReader(strings.NewReader("")),
19 buf := make([]byte, 7)
20 n, err := b.Read(buf[:3])
21 got := string(buf[:n])
22 if got != "foo" || err != nil {
23 t.Fatalf(`first Read = %d (%q), %v; want 3 ("foo")`, n, got, err)
26 n, err = b.Read(buf[:])
27 got = string(buf[:n])
28 if got != "bar" || err != nil {
29 t.Fatalf(`second Read = %d (%q), %v; want 3 ("bar")`, n, got, err)
32 n, err = b.Read(buf[:])
33 got = string(buf[:n])
34 if err == nil {
35 t.Errorf("final Read was successful (%q), expected error from trailer read", got)