1// Copyright 2015, Joe Tsai. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE.md file. 4 5package bzip2 6 7import ( 8 "bytes" 9 "io" 10 "io/ioutil" 11 "testing" 12) 13 14func BenchmarkEncode(b *testing.B) { 15 runBenchmarks(b, func(b *testing.B, data []byte, lvl int) { 16 b.StopTimer() 17 b.ReportAllocs() 18 19 br := new(bytes.Reader) 20 wr, _ := NewWriter(nil, &WriterConfig{Level: lvl}) 21 22 b.SetBytes(int64(len(data))) 23 b.StartTimer() 24 for i := 0; i < b.N; i++ { 25 br.Reset(data) 26 wr.Reset(ioutil.Discard) 27 28 n, err := io.Copy(wr, br) 29 if n != int64(len(data)) || err != nil { 30 b.Fatalf("Copy() = (%d, %v), want (%d, nil)", n, err, len(data)) 31 } 32 if err := wr.Close(); err != nil { 33 b.Fatalf("Close() = %v, want nil", err) 34 } 35 } 36 }) 37} 38