diff options
Diffstat (limited to 'vendor/github.com/andybalholm/cascadia/benchmark_test.go')
-rw-r--r-- | vendor/github.com/andybalholm/cascadia/benchmark_test.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/github.com/andybalholm/cascadia/benchmark_test.go b/vendor/github.com/andybalholm/cascadia/benchmark_test.go new file mode 100644 index 0000000..42bf500 --- /dev/null +++ b/vendor/github.com/andybalholm/cascadia/benchmark_test.go @@ -0,0 +1,53 @@ +package cascadia + +import ( + "strings" + "testing" + + "golang.org/x/net/html" +) + +func MustParseHTML(doc string) *html.Node { + dom, err := html.Parse(strings.NewReader(doc)) + if err != nil { + panic(err) + } + return dom +} + +var selector = MustCompile(`div.matched`) +var doc = `<!DOCTYPE html> +<html> +<body> +<div class="matched"> + <div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + <div class="matched"></div> + </div> +</div> +</body> +</html> +` +var dom = MustParseHTML(doc) + +func BenchmarkMatchAll(b *testing.B) { + var matches []*html.Node + for i := 0; i < b.N; i++ { + matches = selector.MatchAll(dom) + } + _ = matches +} |