Skip to content

Commit

Permalink
filters/builtin: introduce benchmark for stripQuery filter
Browse files Browse the repository at this point in the history
This commit introduces a benchmark for the sanitize function in the stripQuery filter.

Signed-off-by: Troy Kohler <troyalekson@gmail.com>
  • Loading branch information
trkohler committed Feb 21, 2024
1 parent 69f2b6a commit 9b76930
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion filters/builtin/stripquery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@
package builtin

import (
"github.com/zalando/skipper/filters/filtertest"
"net/http"
"net/url"
"strings"
"testing"

"github.com/zalando/skipper/filters/filtertest"
)

func TestCreateStripQueryFilter(t *testing.T) {
Expand Down Expand Up @@ -91,3 +92,21 @@ func TestPreserveQuery(t *testing.T) {
}
}
}

func BenchmarkSanitize(b *testing.B) {
piece := "query=cXVlcnkgUGRwKCRjb25maWdTa3U6IElEIS&variables=%7B%0A%20%20%20%20%22beautyColorImageWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20200,%0A%20%20%20%20%22portraitGalleryWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20828,%0A%20%20%20%20%22segmentedBannerHeaderLogoWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%2084,%0A%20%20%20%20%22shouldIncludeCtaTrackingKey%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeFlagInfo%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeHistogramValues%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeOfferSelectionValues%22:%20%20%20%20%20%20%20%20%20%20%20true,%0A%20%20%20%20%22shouldIncludeOmnibusConfigModeChanges%22:%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeOmnibusPriceLabelChanges%22:%20%20%20%20%20%20%20false,&apiEndpoint=https%253A%252F%252Fmodified%252Fsecret%252Fgraphql%252Fsecret&frontendType=secret&zalandoFeature=secret"
q := strings.Repeat(piece, 2)
v, e := url.ParseQuery(q)

if e != nil {
b.Error(e)
}

b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
for k := range v {
sanitize(k)
}
}
}

0 comments on commit 9b76930

Please sign in to comment.