diff options
author | Noah Campbell <noahcampbell@gmail.com> | 2013-10-29 20:24:29 -0700 |
---|---|---|
committer | Noah Campbell <noahcampbell@gmail.com> | 2013-11-01 09:59:57 -0700 |
commit | f4cb8e1688b1459472413f3c85cb3b6297397020 (patch) | |
tree | 80bd82a700d4a22037356e7f910581287accabec /transform | |
parent | 789aa6ad76fe2f6c7b911da6042a7f2a697e94ea (diff) |
Adding benchmark for transformation module.
Diffstat (limited to 'transform')
-rw-r--r-- | transform/chain_test.go | 15 | ||||
-rw-r--r-- | transform/nav_test.go | 10 | ||||
-rw-r--r-- | transform/posttrans_test.go | 10 |
3 files changed, 29 insertions, 6 deletions
diff --git a/transform/chain_test.go b/transform/chain_test.go index c7105cdad..b479ac1e3 100644 --- a/transform/chain_test.go +++ b/transform/chain_test.go @@ -16,7 +16,7 @@ func TestChainZeroTransformers(t *testing.T) { func TestChainOneTransformer(t *testing.T) { 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>" @@ -32,5 +32,16 @@ func TestChainTwoTransformer(t *testing.T) { &AbsURL{BaseURL: "http://two"}, &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) + } } diff --git a/transform/nav_test.go b/transform/nav_test.go index 4d578b87a..8ee46f116 100644 --- a/transform/nav_test.go +++ b/transform/nav_test.go @@ -58,3 +58,13 @@ func TestSetNav(t *testing.T) { 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) + } + } +} diff --git a/transform/posttrans_test.go b/transform/posttrans_test.go index fd6bc18b2..103e73a4a 100644 --- a/transform/posttrans_test.go +++ b/transform/posttrans_test.go @@ -21,7 +21,7 @@ func TestAbsUrlify(t *testing.T) { BaseURL: "http://base", } - apply(t, tr, abs_url_tests) + apply(t.Errorf, tr, abs_url_tests) } type test struct { @@ -35,15 +35,17 @@ var abs_url_tests = []test{ {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 { out := new(bytes.Buffer) err := tr.Apply(out, strings.NewReader(test.content)) if err != nil { - t.Errorf("Unexpected error: %s", err) + ef("Unexpected error: %s", err) } 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())) } } } |