all repos — grayfriday @ c61b63f42c03b4ab7d30a79fd661c242202cf6d0

blackfriday fork with a few changes

Repeat a run of reference tests under benchmark

Will help with optimizing later on.
Vytautas Ĺ altenis vytas@rtfb.lt
Mon, 25 Jul 2016 19:39:51 +0300
commit

c61b63f42c03b4ab7d30a79fd661c242202cf6d0

parent

a9baf845f1de9a949422834449e8eaaaed7480fc

1 files changed, 52 insertions(+), 1 deletions(-)

jump to
M ref_test.goref_test.go

@@ -13,7 +13,11 @@ //

package blackfriday -import "testing" +import ( + "io/ioutil" + "path/filepath" + "testing" +) func TestReference(t *testing.T) { files := []string{

@@ -70,3 +74,50 @@ "Tidyness",

} doTestsReference(t, files, NoEmptyLineBeforeBlock) } + +// benchResultAnchor is an anchor variable to store the result of a benchmarked +// code so that compiler could never optimize away the call to runMarkdown() +var benchResultAnchor string + +func BenchmarkReference(b *testing.B) { + params := TestParams{Options: Options{Extensions: NoExtensions}} + files := []string{ + "Amps and angle encoding", + "Auto links", + "Backslash escapes", + "Blockquotes with code blocks", + "Code Blocks", + "Code Spans", + "Hard-wrapped paragraphs with list-like lines", + "Horizontal rules", + "Inline HTML (Advanced)", + "Inline HTML (Simple)", + "Inline HTML comments", + "Links, inline style", + "Links, reference style", + "Links, shortcut references", + "Literal quotes in titles", + "Markdown Documentation - Basics", + "Markdown Documentation - Syntax", + "Nested blockquotes", + "Ordered and unordered lists", + "Strong and em together", + "Tabs", + "Tidyness", + } + var tests []string + for _, basename := range files { + filename := filepath.Join("testdata", basename+".text") + inputBytes, err := ioutil.ReadFile(filename) + if err != nil { + b.Errorf("Couldn't open '%s', error: %v\n", filename, err) + continue + } + tests = append(tests, string(inputBytes)) + } + for n := 0; n < b.N; n++ { + for _, test := range tests { + benchResultAnchor = runMarkdown(test, params) + } + } +}