mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
20bdc69a47
commit
3becba7a98
1 changed files with 67 additions and 0 deletions
|
@ -23,6 +23,8 @@ import (
|
|||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/afero"
|
||||
|
||||
"github.com/disintegration/gift"
|
||||
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
|
@ -358,6 +360,71 @@ func TestImageExif(t *testing.T) {
|
|||
|
||||
}
|
||||
|
||||
func BenchmarkImageExif(b *testing.B) {
|
||||
|
||||
getImages := func(c *qt.C, b *testing.B, fs afero.Fs) []resource.Image {
|
||||
spec := newTestResourceSpec(specDescriptor{fs: fs, c: c})
|
||||
images := make([]resource.Image, b.N)
|
||||
for i := 0; i < b.N; i++ {
|
||||
images[i] = fetchImageForSpec(spec, c, "sunset.jpg")
|
||||
}
|
||||
return images
|
||||
}
|
||||
|
||||
getAndCheckExif := func(c *qt.C, image resource.Image) {
|
||||
x, err := image.Exif()
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(x, qt.Not(qt.IsNil))
|
||||
c.Assert(x.Long, qt.Equals, float64(-4.50846))
|
||||
|
||||
}
|
||||
|
||||
b.Run("Cold cache", func(b *testing.B) {
|
||||
b.StopTimer()
|
||||
c := qt.New(b)
|
||||
images := getImages(c, b, afero.NewMemMapFs())
|
||||
|
||||
b.StartTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
getAndCheckExif(c, images[i])
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
b.Run("Cold cache, 10", func(b *testing.B) {
|
||||
b.StopTimer()
|
||||
c := qt.New(b)
|
||||
images := getImages(c, b, afero.NewMemMapFs())
|
||||
|
||||
b.StartTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
for j := 0; j < 10; j++ {
|
||||
getAndCheckExif(c, images[i])
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
b.Run("Warm cache", func(b *testing.B) {
|
||||
b.StopTimer()
|
||||
c := qt.New(b)
|
||||
fs := afero.NewMemMapFs()
|
||||
images := getImages(c, b, fs)
|
||||
for i := 0; i < b.N; i++ {
|
||||
getAndCheckExif(c, images[i])
|
||||
}
|
||||
|
||||
images = getImages(c, b, fs)
|
||||
|
||||
b.StartTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
getAndCheckExif(c, images[i])
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func TestImageOperationsGolden(t *testing.T) {
|
||||
c := qt.New(t)
|
||||
c.Parallel()
|
||||
|
|
Loading…
Reference in a new issue