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  }