Skip to content

Commit 20c8459

Browse files
fix: Accidental caching in benchmarks
1 parent d1ac163 commit 20c8459

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

internal/pkg/service/stream/mapping/table/column/renderer_benchmark_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ func BenchmarkColumn_Path(b *testing.B) {
2020

2121
body := `{"key1":[{"key2":"val2"},{"key3":"val3"}]}`
2222
header := http.Header{"Content-Type": []string{"application/json"}}
23-
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{Header: header, Body: io.NopCloser(strings.NewReader(body))})
2423
renderer := column.NewRenderer()
2524

2625
for i := 0; i < b.N; i++ {
26+
// reqCtx needs to be created separately for each request, otherwise the parsed json is cached
27+
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{Header: header, Body: io.NopCloser(strings.NewReader(body))})
2728
val, err := renderer.CSVValue(c, reqCtx)
2829
assert.NoError(b, err)
2930
assert.Equal(b, `"val3"`, val)
@@ -38,10 +39,10 @@ func BenchmarkColumn_Template_Jsonnet(b *testing.B) {
3839

3940
body := `{"key1":[{"key2":"val2"},{"key3":"val3"}]}`
4041
header := http.Header{"Content-Type": []string{"application/json"}}
41-
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{Header: header, Body: io.NopCloser(strings.NewReader(body))})
4242
renderer := column.NewRenderer()
4343

4444
for i := 0; i < b.N; i++ {
45+
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{Header: header, Body: io.NopCloser(strings.NewReader(body))})
4546
val, err := renderer.CSVValue(c, reqCtx)
4647
assert.NoError(b, err)
4748
assert.Equal(b, `"val3"`, val)
@@ -51,10 +52,10 @@ func BenchmarkColumn_Template_Jsonnet(b *testing.B) {
5152
func BenchmarkColumn_UUID(b *testing.B) {
5253
c := column.UUID{}
5354

54-
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{})
5555
renderer := column.NewRenderer()
5656

5757
for i := 0; i < b.N; i++ {
58+
reqCtx := recordctx.FromHTTP(time.Now(), &http.Request{})
5859
val, err := renderer.CSVValue(c, reqCtx)
5960
assert.NoError(b, err)
6061
assert.Len(b, val, 36)

0 commit comments

Comments
 (0)