diff options
Diffstat (limited to 'src/pkg/io/multi_test.go')
-rw-r--r-- | src/pkg/io/multi_test.go | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/pkg/io/multi_test.go b/src/pkg/io/multi_test.go deleted file mode 100644 index 56c6769a9..000000000 --- a/src/pkg/io/multi_test.go +++ /dev/null @@ -1,115 +0,0 @@ -// 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 io_test - -import ( - "bytes" - "crypto/sha1" - "fmt" - . "io" - "io/ioutil" - "strings" - "testing" -) - -func TestMultiReader(t *testing.T) { - var mr Reader - var buf []byte - nread := 0 - withFooBar := func(tests func()) { - r1 := strings.NewReader("foo ") - r2 := strings.NewReader("") - r3 := strings.NewReader("bar") - mr = MultiReader(r1, r2, r3) - buf = make([]byte, 20) - tests() - } - expectRead := func(size int, expected string, eerr error) { - nread++ - n, gerr := mr.Read(buf[0:size]) - if n != len(expected) { - t.Errorf("#%d, expected %d bytes; got %d", - nread, len(expected), n) - } - got := string(buf[0:n]) - if got != expected { - t.Errorf("#%d, expected %q; got %q", - nread, expected, got) - } - if gerr != eerr { - t.Errorf("#%d, expected error %v; got %v", - nread, eerr, gerr) - } - buf = buf[n:] - } - withFooBar(func() { - expectRead(2, "fo", nil) - expectRead(5, "o ", nil) - expectRead(5, "bar", nil) - expectRead(5, "", EOF) - }) - withFooBar(func() { - expectRead(4, "foo ", nil) - expectRead(1, "b", nil) - expectRead(3, "ar", nil) - expectRead(1, "", EOF) - }) - withFooBar(func() { - expectRead(5, "foo ", nil) - }) -} - -func TestMultiWriter(t *testing.T) { - sha1 := sha1.New() - sink := new(bytes.Buffer) - mw := MultiWriter(sha1, sink) - - sourceString := "My input text." - source := strings.NewReader(sourceString) - written, err := Copy(mw, source) - - if written != int64(len(sourceString)) { - t.Errorf("short write of %d, not %d", written, len(sourceString)) - } - - if err != nil { - t.Errorf("unexpected error: %v", err) - } - - sha1hex := fmt.Sprintf("%x", sha1.Sum(nil)) - if sha1hex != "01cb303fa8c30a64123067c5aa6284ba7ec2d31b" { - t.Error("incorrect sha1 value") - } - - if sink.String() != sourceString { - t.Errorf("expected %q; got %q", sourceString, sink.String()) - } -} - -// Test that MultiReader copies the input slice and is insulated from future modification. -func TestMultiReaderCopy(t *testing.T) { - slice := []Reader{strings.NewReader("hello world")} - r := MultiReader(slice...) - slice[0] = nil - data, err := ioutil.ReadAll(r) - if err != nil || string(data) != "hello world" { - t.Errorf("ReadAll() = %q, %v, want %q, nil", data, err, "hello world") - } -} - -// Test that MultiWriter copies the input slice and is insulated from future modification. -func TestMultiWriterCopy(t *testing.T) { - var buf bytes.Buffer - slice := []Writer{&buf} - w := MultiWriter(slice...) - slice[0] = nil - n, err := w.Write([]byte("hello world")) - if err != nil || n != 11 { - t.Errorf("Write(`hello world`) = %d, %v, want 11, nil", n, err) - } - if buf.String() != "hello world" { - t.Errorf("buf.String() = %q, want %q", buf.String(), "hello world") - } -} |