ref: a6b1eb1e9150aa5c1c86fe7424cc4167d6f59a5a
parent: 27110133ffca05feae2e11a9ff28a9a00f613350
author: Bjørn Erik Pedersen <[email protected]>
date: Sun Aug 5 13:27:16 EDT 2018
transform: Reduce allocation in the benchmark itself
--- a/transform/chain_test.go
+++ b/transform/chain_test.go
@@ -19,6 +19,7 @@
"strings"
"testing"
+ bp "github.com/gohugoio/hugo/bufferpool"
"github.com/gohugoio/hugo/helpers"
"github.com/stretchr/testify/assert"
)
@@ -235,16 +236,24 @@
type errorf func(string, ...interface{})
func applyWithPath(ef errorf, tr chain, tests []test, path string) {
+ out := bp.GetBuffer()
+ defer bp.PutBuffer(out)
+
+ in := bp.GetBuffer()
+ defer bp.PutBuffer(in)
+
for _, test := range tests {
- out := new(bytes.Buffer)
var err error
- err = tr.Apply(out, strings.NewReader(test.content), []byte(path))
+ in.WriteString(test.content)
+ err = tr.Apply(out, in, []byte(path))
if err != nil {
ef("Unexpected error: %s", err)
}
- if test.expected != string(out.Bytes()) {
- ef("Expected:\n%s\nGot:\n%s", test.expected, string(out.Bytes()))
+ if test.expected != out.String() {
+ ef("Expected:\n%s\nGot:\n%s", test.expected, out.String())
}
+ out.Reset()
+ in.Reset()
}
}