aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/andybalholm/cascadia/benchmark_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/andybalholm/cascadia/benchmark_test.go')
-rw-r--r--vendor/github.com/andybalholm/cascadia/benchmark_test.go53
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
+}