From aae7289055a06511ba3fd149b3265ec0df0c3fc8 Mon Sep 17 00:00:00 2001
From: Christoph Petrausch <christoph.petrausch@inovex.de>
Date: Wed, 20 Jun 2018 21:31:18 +0200
Subject: [PATCH] Added benchmark

---
 .../packet/large_community_benchmark_test.go  | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 protocols/bgp/packet/large_community_benchmark_test.go

diff --git a/protocols/bgp/packet/large_community_benchmark_test.go b/protocols/bgp/packet/large_community_benchmark_test.go
new file mode 100644
index 00000000..7e37bcdf
--- /dev/null
+++ b/protocols/bgp/packet/large_community_benchmark_test.go
@@ -0,0 +1,28 @@
+package packet
+
+import (
+	"fmt"
+	"strconv"
+	"strings"
+	"testing"
+)
+
+func BenchmarkParseLargeCommunityString(b *testing.B) {
+	for _, i := range []int{1, 2, 4, 8, 16, 32} {
+		str := getNNumbers(i)
+		input := strings.Join([]string{str, str, str}, ",")
+		b.Run(fmt.Sprintf("BenchmarkParseLargeCommunityString-%d", i), func(b *testing.B) {
+			for n := 0; n < b.N; n++ {
+				ParseLargeCommunityString(input)
+			}
+		})
+	}
+}
+
+func getNNumbers(n int) (ret string) {
+	var numbers string
+	for i := 0; i < n; i++ {
+		numbers += strconv.Itoa(i % 10)
+	}
+	return numbers
+}
-- 
GitLab