github.com/dannin/go@v0.0.0-20161031215817-d35dfd405eaa/src/runtime/pprof/internal/gzip0/gzip0_test.go (about) 1 // Copyright 2016 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 gzip0 6 7 import ( 8 "bytes" 9 "compress/gzip" 10 "io/ioutil" 11 "testing" 12 ) 13 14 func TestWriter(t *testing.T) { 15 testWriter(t, nil) 16 testWriter(t, []byte("hello world")) 17 testWriter(t, make([]byte, 100000)) 18 testWriter(t, make([]byte, 65536)) 19 testWriter(t, make([]byte, 65535)) 20 } 21 22 func testWriter(t *testing.T, data []byte) { 23 var buf bytes.Buffer 24 w := NewWriter(&buf) 25 n, err := w.Write(data) 26 if n != len(data) || err != nil { 27 t.Fatalf("Write: %d, %v", n, err) 28 } 29 if err := w.Close(); err != nil { 30 t.Fatalf("Close: %v", err) 31 } 32 r, err := gzip.NewReader(&buf) 33 if err != nil { 34 t.Fatalf("NewReader: %v", err) 35 } 36 data1, err := ioutil.ReadAll(r) 37 if err != nil { 38 t.Fatalf("ReadAll: %v", err) 39 } 40 if !bytes.Equal(data, data1) { 41 t.Fatalf("not equal: %q != %q", data, data1) 42 } 43 }