]> Cypherpunks repositories - gostls13.git/commitdiff
image/tiff: add a decode benchmark.
authorBenny Siegert <bsiegert@gmail.com>
Fri, 26 Aug 2011 01:31:59 +0000 (11:31 +1000)
committerNigel Tao <nigeltao@golang.org>
Fri, 26 Aug 2011 01:31:59 +0000 (11:31 +1000)
R=nigeltao
CC=golang-dev
https://golang.org/cl/4917049

src/pkg/image/tiff/reader_test.go
src/pkg/image/tiff/testdata/video-001-uncompressed.tiff [new file with mode: 0644]

index f2122c44038ee21d179ed06bdfda282be6c29fa4..1eb2bcd76e302a1ee055926ed4f09c16e850ac88 100644 (file)
@@ -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 (file)
index 0000000..fad1471
Binary files /dev/null and b/src/pkg/image/tiff/testdata/video-001-uncompressed.tiff differ