mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Adding benchmark for transformation module.
This commit is contained in:
parent
789aa6ad76
commit
f4cb8e1688
4 changed files with 33 additions and 6 deletions
4
baseline.txt
Normal file
4
baseline.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
PASS
|
||||||
|
BenchmarkChain 10000 101219 ns/op 23919 B/op 222 allocs/op
|
||||||
|
BenchmarkTransform 50000 51625 ns/op 11858 B/op 135 allocs/op
|
||||||
|
ok github.com/spf13/hugo/transform 4.172s
|
|
@ -16,7 +16,7 @@ func TestChainZeroTransformers(t *testing.T) {
|
||||||
|
|
||||||
func TestChainOneTransformer(t *testing.T) {
|
func TestChainOneTransformer(t *testing.T) {
|
||||||
tr := NewChain(&AbsURL{BaseURL: "http://base"})
|
tr := NewChain(&AbsURL{BaseURL: "http://base"})
|
||||||
apply(t, tr, abs_url_tests)
|
apply(t.Errorf, tr, abs_url_tests)
|
||||||
}
|
}
|
||||||
|
|
||||||
const H5_JS_CONTENT_ABS_URL_WITH_NAV = "<!DOCTYPE html><html><head><script src=\"/foobar.js\"></script></head><body><nav><ul><li hugo-nav=\"section_0\"></li><li hugo-nav=\"section_1\"></li></ul></nav><article>content <a href=\"/foobar\">foobar</a>. Follow up</article></body></html>"
|
const H5_JS_CONTENT_ABS_URL_WITH_NAV = "<!DOCTYPE html><html><head><script src=\"/foobar.js\"></script></head><body><nav><ul><li hugo-nav=\"section_0\"></li><li hugo-nav=\"section_1\"></li></ul></nav><article>content <a href=\"/foobar\">foobar</a>. Follow up</article></body></html>"
|
||||||
|
@ -32,5 +32,16 @@ func TestChainTwoTransformer(t *testing.T) {
|
||||||
&AbsURL{BaseURL: "http://two"},
|
&AbsURL{BaseURL: "http://two"},
|
||||||
&NavActive{Section: "section_1"},
|
&NavActive{Section: "section_1"},
|
||||||
)
|
)
|
||||||
apply(t, tr, two_chain_tests)
|
apply(t.Errorf, tr, two_chain_tests)
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkChain(b *testing.B) {
|
||||||
|
|
||||||
|
tr := NewChain(
|
||||||
|
&AbsURL{BaseURL: "http://two"},
|
||||||
|
&NavActive{Section: "section_1"},
|
||||||
|
)
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
apply(b.Errorf, tr, two_chain_tests)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,3 +58,13 @@ func TestSetNav(t *testing.T) {
|
||||||
t.Errorf("NavActive.Apply output expected and got:\n%q\n%q", expected, out.String())
|
t.Errorf("NavActive.Apply output expected and got:\n%q\n%q", expected, out.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkTransform(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
tr := &NavActive{Section: "section_2"}
|
||||||
|
out := new(bytes.Buffer)
|
||||||
|
if err := tr.Apply(out, strings.NewReader(HTML_WITH_NAV)); err != nil {
|
||||||
|
b.Errorf("Unexpected error in Apply() for NavActive: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ func TestAbsUrlify(t *testing.T) {
|
||||||
BaseURL: "http://base",
|
BaseURL: "http://base",
|
||||||
}
|
}
|
||||||
|
|
||||||
apply(t, tr, abs_url_tests)
|
apply(t.Errorf, tr, abs_url_tests)
|
||||||
}
|
}
|
||||||
|
|
||||||
type test struct {
|
type test struct {
|
||||||
|
@ -35,15 +35,17 @@ var abs_url_tests = []test{
|
||||||
{H5_JS_CONTENT_ABS_URL, H5_JS_CONTENT_ABS_URL},
|
{H5_JS_CONTENT_ABS_URL, H5_JS_CONTENT_ABS_URL},
|
||||||
}
|
}
|
||||||
|
|
||||||
func apply(t *testing.T, tr Transformer, tests []test) {
|
type errorf func (string, ...interface{})
|
||||||
|
|
||||||
|
func apply(ef errorf, tr Transformer, tests []test) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
out := new(bytes.Buffer)
|
out := new(bytes.Buffer)
|
||||||
err := tr.Apply(out, strings.NewReader(test.content))
|
err := tr.Apply(out, strings.NewReader(test.content))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected error: %s", err)
|
ef("Unexpected error: %s", err)
|
||||||
}
|
}
|
||||||
if test.expected != string(out.Bytes()) {
|
if test.expected != string(out.Bytes()) {
|
||||||
t.Errorf("Expected:\n%s\nGot:\n%s", test.expected, string(out.Bytes()))
|
ef("Expected:\n%s\nGot:\n%s", test.expected, string(out.Bytes()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue