From: Benny Siegert Date: Fri, 26 Aug 2011 01:31:59 +0000 (+1000) Subject: image/tiff: add a decode benchmark. X-Git-Tag: weekly.2011-09-01~75 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f172338a15c0d03bd89264ddcad374c76d4d4584;p=gostls13.git image/tiff: add a decode benchmark. R=nigeltao CC=golang-dev https://golang.org/cl/4917049 --- diff --git a/src/pkg/image/tiff/reader_test.go b/src/pkg/image/tiff/reader_test.go index f2122c4403..1eb2bcd76e 100644 --- a/src/pkg/image/tiff/reader_test.go +++ b/src/pkg/image/tiff/reader_test.go @@ -5,10 +5,16 @@ package tiff import ( + "io/ioutil" "os" "testing" ) +// Read makes *buffer implements io.Reader, so that we can pass one to Decode. +func (*buffer) Read([]byte) (int, os.Error) { + panic("unimplemented") +} + // TestNoRPS tries to decode an image that has no RowsPerStrip tag. // The tag is mandatory according to the spec but some software omits // it in the case of a single strip. @@ -23,3 +29,22 @@ func TestNoRPS(t *testing.T) { t.Fatal(err) } } + +const filename = "testdata/video-001-uncompressed.tiff" + +// BenchmarkDecode benchmarks the decoding of an image. +func BenchmarkDecode(b *testing.B) { + b.StopTimer() + contents, err := ioutil.ReadFile(filename) + if err != nil { + panic(err) + } + r := &buffer{buf: contents} + b.StartTimer() + for i := 0; i < b.N; i++ { + _, err := Decode(r) + if err != nil { + panic(err) + } + } +} diff --git a/src/pkg/image/tiff/testdata/video-001-uncompressed.tiff b/src/pkg/image/tiff/testdata/video-001-uncompressed.tiff new file mode 100644 index 0000000000..fad147107b Binary files /dev/null and b/src/pkg/image/tiff/testdata/video-001-uncompressed.tiff differ