Skip to content

Commit 13e34bf

Browse files
committed
Benchmarks shouldn't include test code
1 parent 1904e3e commit 13e34bf

File tree

4 files changed

+57
-1
lines changed

4 files changed

+57
-1
lines changed

internal/fixture/state.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,32 @@ func (tc TestCase) Test(parser typed.ParseableType) error {
269269
return tc.TestWithConverter(parser, &dummyConverter{})
270270
}
271271

272+
// Bench runs the test-case using the given parser and a dummy converter, but
273+
// doesn't check exit conditions--see the comment for BenchWithConverter.
274+
func (tc TestCase) Bench(parser typed.ParseableType) error {
275+
return tc.BenchWithConverter(parser, &dummyConverter{})
276+
}
277+
278+
// BenchWithConverter runs the test-case using the given parser and converter,
279+
// but doesn't do any comparison operations aftewards; you should probably run
280+
// TestWithConverter once and reset the benchmark, to make sure the test case
281+
// actually passes..
282+
func (tc TestCase) BenchWithConverter(parser typed.ParseableType, converter merge.Converter) error {
283+
state := State{
284+
Updater: &merge.Updater{Converter: converter},
285+
Parser: parser,
286+
}
287+
// We currently don't have any test that converts, we can take
288+
// care of that later.
289+
for i, ops := range tc.Ops {
290+
err := ops.run(&state)
291+
if err != nil {
292+
return fmt.Errorf("failed operation %d: %v", i, err)
293+
}
294+
}
295+
return nil
296+
}
297+
272298
// TestWithConverter runs the test-case using the given parser and converter.
273299
func (tc TestCase) TestWithConverter(parser typed.ParseableType, converter merge.Converter) error {
274300
state := State{

merge/deduced_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,13 @@ func BenchmarkDeducedSimple(b *testing.B) {
598598
},
599599
}
600600

601+
// Make sure this passes...
602+
if err := test.Test(typed.DeducedParseableType); err != nil {
603+
b.Fatal(err)
604+
}
605+
601606
b.ReportAllocs()
607+
b.ResetTimer()
602608
for n := 0; n < b.N; n++ {
603609
if err := test.Test(typed.DeducedParseableType); err != nil {
604610
b.Fatal(err)
@@ -701,7 +707,13 @@ func BenchmarkDeducedNested(b *testing.B) {
701707
`,
702708
}
703709

710+
// Make sure this passes...
711+
if err := test.Test(typed.DeducedParseableType); err != nil {
712+
b.Fatal(err)
713+
}
714+
704715
b.ReportAllocs()
716+
b.ResetTimer()
705717
for n := 0; n < b.N; n++ {
706718
if err := test.Test(typed.DeducedParseableType); err != nil {
707719
b.Fatal(err)
@@ -804,7 +816,13 @@ func BenchmarkDeducedNestedAcrossVersion(b *testing.B) {
804816
`,
805817
}
806818

819+
// Make sure this passes...
820+
if err := test.Test(typed.DeducedParseableType); err != nil {
821+
b.Fatal(err)
822+
}
823+
807824
b.ReportAllocs()
825+
b.ResetTimer()
808826
for n := 0; n < b.N; n++ {
809827
if err := test.Test(typed.DeducedParseableType); err != nil {
810828
b.Fatal(err)

merge/leaf_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,13 @@ func BenchmarkLeafConflictAcrossVersion(b *testing.B) {
531531
},
532532
}
533533

534+
// Make sure this passes...
535+
if err := test.Test(leafFieldsParser); err != nil {
536+
b.Fatal(err)
537+
}
538+
534539
b.ReportAllocs()
540+
b.ResetTimer()
535541
for n := 0; n < b.N; n++ {
536542
if err := test.Test(leafFieldsParser); err != nil {
537543
b.Fatal(err)

merge/multiple_appliers_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1103,9 +1103,15 @@ func BenchmarkMultipleApplierRecursiveRealConversion(b *testing.B) {
11031103
},
11041104
}
11051105

1106+
// Make sure this passes...
1107+
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1108+
b.Fatal(err)
1109+
}
1110+
11061111
b.ReportAllocs()
1112+
b.ResetTimer()
11071113
for n := 0; n < b.N; n++ {
1108-
if err := test.TestWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
1114+
if err := test.BenchWithConverter(nestedTypeParser, repeatingConverter{nestedTypeParser}); err != nil {
11091115
b.Fatal(err)
11101116
}
11111117
}

0 commit comments

Comments
 (0)